Skip to content

feat(agentcore): Add AWS Agent Registry discovery tools#3164

Open
pymia wants to merge 1 commit intoawslabs:mainfrom
pymia:feat/aws-agent-registry-tools
Open

feat(agentcore): Add AWS Agent Registry discovery tools#3164
pymia wants to merge 1 commit intoawslabs:mainfrom
pymia:feat/aws-agent-registry-tools

Conversation

@pymia
Copy link
Copy Markdown

@pymia pymia commented Apr 15, 2026

Add four registry MCP tools to the amazon-bedrock-agentcore-mcp-server
package for discovering and inspecting AWS Agent Registry resources:

Tool Description
search_registry Semantic search across approved registry records
list_records List all records in a specific registry
get_record Get full details of a specific registry record
list_registries List all registries in the AWS account

Implementation details:

  • New tools/registry.py module with lazy boto3 client initialization
  • Two clients: control plane (CRUD) and data plane (semantic search)
  • Inline JSON parsing for MCP/A2A/custom descriptors
  • Service-enable guard via _is_service_enabled("registry")
  • 21 unit tests covering all tools, error handling, and client init
  • README updated with tool docs and environment variable reference

Fixes N/A

Summary

Changes

Add four AWS Agent Registry MCP tools (search_registry, list_records, get_record, list_registries) to the existing amazon-bedrock-agentcore-mcp-server package. The Registry is a fully managed discovery service within Amazon Bedrock AgentCore that provides a centralized catalog for organizing, curating, and discovering MCP servers, A2A agents, agent skills, and custom resources.

New files:

  • tools/registry.py — Registry tool module with lazy boto3 client initialization (control plane + data plane), inline JSON parsing for MCP/A2A/custom descriptors, and error handling as JSON return values
  • tests/test_registry.py — 21 unit tests covering all four tools, error paths, MCP descriptor parsing, client initialization, and region configuration

Modified files:

  • server.py — Register registry tools behind _is_service_enabled('registry') guard
  • README.md — Added tool documentation, feature listing, and environment variable reference

User experience

Before: Users had no way to discover or inspect AWS Agent Registry resources through the MCP server.

After: Users can:

  • Search registries using natural language queries to find relevant MCP servers, A2A agents, and other resources
  • List all records in a specific registry to see available resources
  • Get full details of a specific registry record including parsed descriptor content
  • List all registries in their AWS account
  • Enable/disable registry tools via AGENTCORE_ENABLE_TOOLS / AGENTCORE_DISABLE_TOOLS environment variables

Checklist

If your change doesn't seem to apply, please leave them unchecked.

  • I have reviewed the contributing guidelines
  • I have performed a self-review of this change
  • Changes have been tested
  • Changes are documented

Is this a breaking change? N

RFC issue number: N/A

Checklist:

  • Migration process documented
  • Implement warnings (if it can live side by side)

Acknowledgment

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the project license.

Add four registry MCP tools to the amazon-bedrock-agentcore-mcp-server
package for discovering and inspecting AgentCore Registry resources:

- search_registry: semantic search across approved registry records
- list_records: list all records in a specific registry
- get_record: get full details of a specific registry record
- list_registries: list all registries in the AWS account

Implementation details:
- New tools/registry.py module with lazy boto3 client initialization
- Two clients: control plane (CRUD) and data plane (semantic search)
- Inline JSON parsing for MCP/A2A/custom descriptors
- Service-enable guard via _is_service_enabled("registry")
- 21 unit tests covering all tools, error handling, and client init
- README updated with tool docs and environment variable reference
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: To triage

Development

Successfully merging this pull request may close these issues.

1 participant