使用注册表 MCP 端点
即将进行的命名空间迁移
AWS Agent Registry 目前在 bedrock-agentcore 命名空间下处于公开预览状态。从 2026 年 8 月 6 日起,该服务将移至代理注册表命名空间。如果您使用 AWS 代理注册表,则必须更新您的终端节点、IAM 策略、SDK 客户端、CLI 脚本和注册表数据。有关从公共预览版迁移的更多信息,请参阅注册表迁移综合指南。
概述
每个注册表都公开一个符合 2025-11-25
https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp
MCP 包含一个名为 “search_registry_records” 的工具。
Tool name: search_registry_records Description: Searches for registry records using natural language queries. Returns metadata for matching records. Parameters: - searchQuery (required): string - Natural language search query - maxResults: integer - Maximum number of results to return (1-20, default 10) - filter: object - Optional metadata filter using structured JSON operators. Supports field-level operators ($eq, $ne, $in) and logical operators ($and, $or) on filterable fields (name, descriptorType, version). Example: {"descriptorType": {"$eq": "MCP"}}
你可以从现有的 MCP 客户端(例如 Kiro、Claude 等)连接到注册表。
从现有 MCP 客户端连接到 OAuth-based 注册表 MCP 端点
Permissions
MCP 端点将使用相同的端点CustomJWTAuthorizerConfiguration来授权传入的请求。
路.well-known/oauth-protected-resource径是:https://bedrock-agentcore.<region>.amazonaws.com/.well-known/oauth-protected-resource/registry/<registryId>/mcp.
客户端也可以从WWW-Authenticate标题中发现元数据:
www-authenticate: Bearer resource_metadata="https://bedrock-agentcore.<region>.amazonaws.com/.well-known/oauth-protected-resource/registry/<registryId>/mcp"
获得访问令牌后,您可以对其进行验证:
curl -s -X POST "https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp" \ -H "Authorization: Bearer ${ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_registry_records","arguments":{"searchQuery":"weather"}}}'
根据您的授权服务器和组织的安全要求,您可以选择以下方法之一来配置 MCP 客户端:
-
持有者令牌:使用单独的进程获取不记名令牌并在 MCP 客户端标头中对其进行配置
-
Pre-registered 客户端:在您的授权服务器中创建客户端,并在注册表的配置中将该客户端列入许可名单。
-
动态客户端注册:如果您的授权服务器支持动态客户端注册 (DCR),则可以在注册表的配置中将受众列入许可名单。
OAuth-based MCP 客户端设置
使用不记名令牌
在大多数 IDE 中,您可以在 mcp 配置中配置授权标头持有者令牌。例如,Kiro 支持${ENV_VAR}语法的环境变量。你可以使用以下示例:
{ "mcpServers": { "my-registry": { "type": "http", "url": "https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp", "headers": { "Authorization": "Bearer ${ACCESS_TOKEN}" } } } }
Pre-registered 客户端
您可以根据授权服务器中的授权码创建新的客户端,然后使用该客户端访问注册表。例如,在 Cognito 用户池中创建一个客户端。
获得客户端 ID 后,请确保将其列入注册表的许可名单:
aws bedrock-agentcore-control update-registry \ --registry-id <registryId> \ --authorizer-configuration '{ "optionalValue": { "customJWTAuthorizer": { "discoveryUrl": "https://<example-domain>/.well-known/openid-configuration", "allowedClients": ["<client-id>"] } } }'
然后,如果 MCP 客户端支持指定 clientID,则可以对其进行配置。克劳德代码中的一个例子:
{ "mcpServers": { "pre-registered-registry": { "type": "http", "url": "https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp", "oauth": { "clientId": "<client-id>", "callbackPort": "<port-number>" } } } }
注意
某些授权服务器(例如 Auth0 和 Cognito)不允许您将一系列端口配置为允许的重定向 URI,因此您需要在预注册的客户端 redirect/callback 允许的 URL 和 mcp.json 中明确设置一个。
动态客户注册
大多数 MCP 客户端应用程序都支持动态客户端注册。在这种情况下,不应在注册表中指定allowedClients值。相反,您可以选择设置allowedAudience。该值可以与您的 MCP 注册表相同。您应将授权服务器配置为向 JWT 发出与中allowedAudience值相同的aud字段。
aws bedrock-agentcore-control update-registry \ --registry-id <registryId> \ --authorizer-configuration '{ "optionalValue": { "customJWTAuthorizer": { "discoveryUrl": "https://<example-domain>/.well-known/openid-configuration", "allowedAudience": ["https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp"] } } }'
然后,您只需使用网址即可配置您的 MCP 客户端:
{ "mcpServers": { "dcr-registry": { "type": "http", "url": "https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp" } } }
设置动态客户端注册时的常见错误:
-
您必须确保授权服务器支持动态客户端注册。
-
授权服务器必须向 JWT 发出 with
aud字段,您的注册表中允许使用该字段。 CustomJWTAuthorizerConfiguration -
目前,注册表不会在 www-authenticate 标头中返回范围质询。某些 MCP 客户端支持
oauthScopes在配置中明确定义,例如 Kiro。
从现有 MCP 客户端连接到 IAM-based 注册表 MCP 端点
Permissions
有关 MCP 初始化和工具清单:
{ "Effect": "Allow", "Action": "bedrock-agentcore:InvokeRegistryMcp", "Resource": "arn:aws:bedrock-agentcore:*:<account>:registry/*" }
要通过 MCP 工具调用进行搜索,还需要:
{ "Effect": "Allow", "Action": [ "bedrock-agentcore:InvokeRegistryMcp", "bedrock-agentcore:SearchRegistryRecords" ], "Resource": "arn:aws:bedrock-agentcore:*:<account>:registry/*" }
你可以用命令验证权限:
curl -s -X POST "https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp" \ -H "Content-Type: application/json" \ -H "X-Amz-Security-Token: ${AWS_SESSION_TOKEN}" \ --aws-sigv4 "aws:amz:<region>:bedrock-agentcore" \ --user "${AWS_ACCESS_KEY_ID}:${AWS_SECRET_ACCESS_KEY}" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_registry_records","arguments":{"searchQuery":"weather"}}}'
IAM-based MCP 客户端设置
你可以使用 mcp-proxy-for-aws 连接到注册
{ "mcpServers": { "iam-based-registry": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp", "--service", "bedrock-agentcore", "--region", "<region>", "--profile", "my-profile" ] } } }
开发自己的 MCP 客户端
有关如何调用 Registry MCP 端点的更多代码参考,包括来自 Kiro 或 Claude Code 等常用 IDE 的代码参考,请参阅公共代码存储库中的示例代码参考。