

# 使用注册表 MCP 端点
<a name="registry-mcp-endpoint"></a>

**即将进行的命名空间迁移**  
 AWS Agent Registry 目前在 bedrock-agentcore 命名空间下处于公开预览状态。从 2026 年 8 月 6 日起，该服务将移至代理注册表命名空间。如果您使用 AWS 代理注册表，则必须更新您的终端节点、IAM 策略、SDK 客户端、CLI 脚本和注册表数据。有关从公共预览版迁移的更多信息，请参阅[注册表迁移综合指南](registry-faq.md)。

## 概述
<a name="registry-mcp-overview"></a>

每个注册表都公开一个符合 [2025-11-25](https://modelcontextprotocol.io/specification/2025-11-25) 规范的 MCP-compatible 端点。该端点支持用于搜索注册表记录的工具列表和工具调用。

```
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 端点
<a name="registry-mcp-connect-oauth"></a>

### Permissions
<a name="registry-mcp-permissions-oauth"></a>

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 客户端：

1. 持有者令牌：使用单独的进程获取不记名令牌并在 MCP 客户端标头中对其进行配置

1. Pre-registered 客户端：在您的授权服务器中创建客户端，并在注册表的配置中将该客户端列入许可名单。

1. 动态客户端注册：如果您的授权服务器支持动态客户端注册 (DCR)，则可以在注册表的配置中将受众列入许可名单。

### OAuth-based MCP 客户端设置
<a name="registry-mcp-connect-oauth-setup"></a>

#### 使用不记名令牌
<a name="registry-mcp-connect-oauth-bearer"></a>

在大多数 IDE 中，您可以在 mcp 配置中配置授权标头持有者令牌。例如，[Kiro 支持](https://kiro.dev/blog/introducing-remote-mcp/#securing-mcp-connections)使用`${ENV_VAR}`语法的环境变量。你可以使用以下示例：

```
{
  "mcpServers": {
    "my-registry": {
      "type": "http",
      "url": "https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp",
      "headers": {
        "Authorization": "Bearer ${ACCESS_TOKEN}"
      }
    }
  }
}
```

#### Pre-registered 客户端
<a name="registry-mcp-connect-oauth-preregistered"></a>

您可以根据授权服务器中的授权码创建新的客户端，然后使用该客户端访问注册表。例如，[在 Cognito 用户池中创建一个客户端](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/identity-idp-cognito.html)。

获得客户端 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 中明确设置一个。

#### 动态客户注册
<a name="registry-mcp-connect-oauth-dcr"></a>

大多数 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`在配置中明确定义，例如 [Kir](https://kiro.dev/docs/cli/custom-agents/configuration-reference/#oauth-configuration) o。

## 从现有 MCP 客户端连接到 IAM-based 注册表 MCP 端点
<a name="registry-mcp-connect-iam"></a>

### Permissions
<a name="registry-mcp-permissions-iam"></a>

有关 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 客户端设置
<a name="registry-mcp-connect-iam-setup"></a>

你可以使用 [mcp-proxy-for-aws 连接到注册](https://github.com/aws/mcp-proxy-for-aws)表。 IAM-based 例如，在 Kiro mcp.json 中：

```
{
  "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 客户端
<a name="registry-mcp-develop-client"></a>

有关如何调用 Registry MCP 端点的更多代码参考，包括来自 Kiro 或 Claude Code 等常用 IDE 的代码参考，请参阅公共代码存储库中的示例代码参考。