View a markdown version of this page

Uso del punto final MCP del Registro - Base amazónica AgentCore

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso del punto final MCP del Registro

La migración ya está abierta

AWS El registro de agentes se ha lanzado en el nuevo espacio de agent-registry nombres. La compatibilidad con el espacio de bedrock-agentcore nombres de versión preliminar pública dejará de funcionar el 17 de septiembre de 2026. Para obtener instrucciones sobre la migración, consulta la Guía Guía completa de migración de registros completa de migración del registro.

Descripción general de

Cada registro expone un MCP-compatible punto final que sigue la especificación del 25 de noviembre de 2020 en el sitio web del Model Context Protocol. El punto final admite la lista de herramientas y la invocación de herramientas para buscar registros de registro.

ejemplo
AWS Agent Registry namespace
https://agent-registry.<region>.api.aws/registry/<registryId>/mcp
Amazon Bedrock AgentCore namespace (to be deprecated)
https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp

En el espacio de agent-registry nombres, el punto final del MCP expone las tres API del plano de datos de detección como herramientas del MCP:

  • search_discoverable_registry_records— Búsqueda en lenguaje natural de los registros aprobados.

  • list_discoverable_registry_records— Lista paginada de registros aprobados.

  • batch_get_discoverable_registry_record— Recuperación masiva del contenido completo del registro por ID de registro.

En el espacio de bedrock-agentcore nombres, solo se expone la search_registry_records herramienta. En las tablas siguientes se muestran las definiciones de las herramientas:

ejemplo
AWS Agent Registry namespace
Tool name: search_discoverable_registry_records Description: Searches for approved 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, recordType, recordVersion). Example: {"recordType": {"$eq": "MCP"}} --- Tool name: list_discoverable_registry_records Description: Returns paginated summaries of approved records in the registry. Summaries include record metadata but not descriptor content. Use batch_get_discoverable_registry_record to fetch full descriptors after identifying the records you need. Parameters: - maxResults: integer - Maximum number of results per page (1-100, default 20) - nextToken: string - Pagination token from a previous response. Omit for the first page. - filters: array - Optional list of filter entries in the form {"name": "<field>", "values": ["<value>"]}. Supported filter names: recordType (valid values: AGENT, MCP, SKILL, CUSTOM) and descriptorType (valid values: a2aAgentCard, mcpServer, agentSkillsDefinition, custom). Duplicate filter names are rejected. If you specify multiple values for a single filter, the values are joined by OR. If you specify multiple filters, the filters are joined by AND. --- Tool name: batch_get_discoverable_registry_record Description: Retrieves the full descriptor content for up to 100 approved records in a single call. Common use case: after identifying records with list_discoverable_registry_records or search_discoverable_registry_records, fetch their full descriptors in one call rather than making one call per record. Parameters: - recordIds (required): array - List of 1-100 record ARNs or IDs to retrieve from the registry. The response returns HTTP 200 even on partial failure. Records that could not be retrieved appear in an errors list with an errorCode (RESOURCE_NOT_FOUND, ACCESS_DENIED, or INTERNAL_ERROR) rather than causing the whole call to fail.
Amazon Bedrock AgentCore namespace (to be deprecated)
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"}}

Puede conectarse al registro desde un cliente MCP existente, como Kiro, Claude, etc.

Conéctese al punto final de MCP OAuth-based del registro desde un cliente de MCP existente

Permisos

El punto final del MCP utilizará lo mismo CustomJWTAuthorizerConfiguration para autorizar las solicitudes entrantes.

La .well-known/oauth-protected-resource ruta es: https://agent-registry.<region>.api.aws/.well-known/oauth-protected-resource/registry/<registryId>/mcp (https://bedrock-agentcore.<region>.amazonaws.com/.well-known/oauth-protected-resource/registry/<registryId>/mcppara los registros que aún se encuentran en el espacio de bedrock-agentcore nombres).

El cliente también puede descubrir los metadatos desde el WWW-Authenticate encabezado:

ejemplo
AWS Agent Registry namespace
www-authenticate: Bearer resource_metadata="https://agent-registry.<region>.api.aws/.well-known/oauth-protected-resource/registry/<registryId>/mcp"
Amazon Bedrock AgentCore namespace (to be deprecated)
www-authenticate: Bearer resource_metadata="https://bedrock-agentcore.<region>.amazonaws.com/.well-known/oauth-protected-resource/registry/<registryId>/mcp"

Una vez que hayas obtenido el token de acceso, puedes validarlo:

ejemplo
AWS Agent Registry namespace
curl -s -X POST "https://agent-registry.<region>.api.aws/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_discoverable_registry_records","arguments":{"searchQuery":"weather"}}}'
Amazon Bedrock AgentCore namespace (to be deprecated)
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"}}}'

En función de su servidor de autorización y de los requisitos de seguridad de la organización, puede elegir uno de los siguientes enfoques para configurar su cliente MCP:

  1. Token portador: utilice un proceso independiente para obtener el token portador y configurarlo en el encabezado del cliente MCP

  2. Pre-registered cliente: cree un cliente en su servidor de autorización y permita incluir al cliente en la configuración del registro.

  3. Registro dinámico de clientes: si su servidor de autorización admite el registro dinámico de clientes (DCR), puede incluir a la audiencia en la configuración del registro.

OAuth-based Configuración del cliente MCP

Utilice el token de portador

En la mayoría de los IDE, puedes configurar el token portador del encabezado de autorización en una configuración mcp. Por ejemplo, el IDE de Kiro admite variables de entorno mediante la sintaxis. ${ENV_VAR} Para obtener más información, consulte Proteger las conexiones MCP en el sitio web de Kiro. Puede usar el siguiente ejemplo:

ejemplo
AWS Agent Registry namespace
{ "mcpServers": { "my-registry": { "type": "http", "url": "https://agent-registry.<region>.api.aws/registry/<registryId>/mcp", "headers": { "Authorization": "Bearer ${ACCESS_TOKEN}" } } } }
Amazon Bedrock AgentCore namespace (to be deprecated)
{ "mcpServers": { "my-registry": { "type": "http", "url": "https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp", "headers": { "Authorization": "Bearer ${ACCESS_TOKEN}" } } } }

Cliente Pre-registered

Puede crear un nuevo cliente basándose en la concesión del código de autorización en su servidor de autorización y utilizar el cliente para acceder al registro. Por ejemplo, cree un cliente en el grupo de usuarios de Cognito.

Una vez que tenga el ID de cliente, asegúrese de incluirlo en la lista de permitidos en el registro:

ejemplo
AWS Agent Registry namespace
aws agent-registry-control update-registry \ --registry-id <registryId> \ --discovery-configuration '{ "authorizerConfiguration": { "optionalValue": { "customJWTAuthorizer": { "discoveryUrl": "https://<example-domain>/.well-known/openid-configuration", "allowedClients": ["<client-id>"] } } } }'
Amazon Bedrock AgentCore namespace (to be deprecated)
aws bedrock-agentcore-control update-registry \ --registry-id <registryId> \ --authorizer-configuration '{ "optionalValue": { "customJWTAuthorizer": { "discoveryUrl": "https://<example-domain>/.well-known/openid-configuration", "allowedClients": ["<client-id>"] } } }'

A continuación, puede configurar su cliente MCP si admite la especificación de un ID de cliente. Un ejemplo en el código de Claude:

ejemplo
AWS Agent Registry namespace
{ "mcpServers": { "pre-registered-registry": { "type": "http", "url": "https://agent-registry.<region>.api.aws/registry/<registryId>/mcp", "oauth": { "clientId": "<client-id>", "callbackPort": "<port-number>" } } } }
Amazon Bedrock AgentCore namespace (to be deprecated)
{ "mcpServers": { "pre-registered-registry": { "type": "http", "url": "https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp", "oauth": { "clientId": "<client-id>", "callbackPort": "<port-number>" } } } }
nota

Algunos servidores de autorización, como Auth0 y Cognito, no permiten configurar un rango de puertos como URI de redireccionamiento permitidos, por lo que debes establecer uno de forma explícita en la redirect/callback URL permitida del cliente prerregistrado, así como en el mcp.json.

Registro dinámico de clientes

La mayoría de las aplicaciones cliente de MCP admiten el registro dinámico de clientes. En este caso, NO debe especificar el allowedClients valor en el registro. En su lugar, puede elegir configurarallowedAudience. El valor puede ser el mismo que el de su registro MCP. Debes configurar tu servidor de autorización para que emita a JWT un aud campo con el mismo valor que en. allowedAudience

ejemplo
AWS Agent Registry namespace
aws agent-registry-control update-registry \ --registry-id <registryId> \ --discovery-configuration '{ "authorizerConfiguration": { "optionalValue": { "customJWTAuthorizer": { "discoveryUrl": "https://<example-domain>/.well-known/openid-configuration", "allowedAudience": ["https://agent-registry.<region>.api.aws/registry/<registryId>/mcp"] } } } }'
Amazon Bedrock AgentCore namespace (to be deprecated)
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"] } } }'

Luego puede configurar su cliente MCP simplemente usando una URL:

ejemplo
AWS Agent Registry namespace
{ "mcpServers": { "dcr-registry": { "type": "http", "url": "https://agent-registry.<region>.api.aws/registry/<registryId>/mcp" } } }
Amazon Bedrock AgentCore namespace (to be deprecated)
{ "mcpServers": { "dcr-registry": { "type": "http", "url": "https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp" } } }

Errores comunes al configurar el registro dinámico de clientes:

  • Debe asegurarse de que el servidor de autorización admita el registro dinámico de clientes.

  • El servidor de autorización debe enviar un aud campo a JWT, que está permitido en tu registro. CustomJWTAuthorizerConfiguration

  • Actualmente, el registro no muestra el desafío de alcance en el encabezado www-authenticate. Algunos clientes MCP admiten la definición explícita oauthScopes en la configuración, como Kiro. https://kiro.dev/docs/cli/custom-agents/configuration-reference/#oauth-configuration

Conéctese al punto final de MCP IAM-based del registro desde un cliente MCP existente

Permisos

Para la inicialización de MCP y la lista de herramientas:

ejemplo
AWS Agent Registry namespace
{ "Effect": "Allow", "Action": "agent-registry:InvokeRegistryMcp", "Resource": "arn:aws:agent-registry:*:<account>:registry/*" }
Amazon Bedrock AgentCore namespace (to be deprecated)
{ "Effect": "Allow", "Action": "bedrock-agentcore:InvokeRegistryMcp", "Resource": "arn:aws:bedrock-agentcore:*:<account>:registry/*" }

Para buscar mediante la invocación de la herramienta MCP, también necesita:

ejemplo
AWS Agent Registry namespace
{ "Effect": "Allow", "Action": [ "agent-registry:InvokeRegistryMcp", "agent-registry:SearchDiscoverableRegistryRecords" ], "Resource": "arn:aws:agent-registry:*:<account>:registry/*" }
Amazon Bedrock AgentCore namespace (to be deprecated)
{ "Effect": "Allow", "Action": [ "bedrock-agentcore:InvokeRegistryMcp", "bedrock-agentcore:SearchRegistryRecords" ], "Resource": "arn:aws:bedrock-agentcore:*:<account>:registry/*" }

Puede verificar el permiso con el comando:

ejemplo
AWS Agent Registry namespace
curl -s -X POST "https://agent-registry.<region>.api.aws/registry/<registryId>/mcp" \ -H "Content-Type: application/json" \ -H "X-Amz-Security-Token: ${AWS_SESSION_TOKEN}" \ --aws-sigv4 "aws:amz:<region>:agent-registry" \ --user "${AWS_ACCESS_KEY_ID}:${AWS_SECRET_ACCESS_KEY}" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_discoverable_registry_records","arguments":{"searchQuery":"weather"}}}'
Amazon Bedrock AgentCore namespace (to be deprecated)
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 Configuración del cliente MCP

Puede usar mcp-proxy-for-aws en el sitio web para conectarse a un registro. GitHub IAM-based Por ejemplo, en Kiro mcp.json:

ejemplo
AWS Agent Registry namespace
{ "mcpServers": { "iam-based-registry": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://agent-registry.<region>.api.aws/registry/<registryId>/mcp", "--service", "agent-registry", "--region", "<region>", "--profile", "my-profile" ] } } }
Amazon Bedrock AgentCore namespace (to be deprecated)
{ "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" ] } } }

Desarrolle su propio cliente MCP

Para obtener más referencias de código sobre cómo invocar el punto final del MCP del Registro, incluso desde IDE populares como Kiro o Claude Code, consulte las referencias de código de ejemplo del repositorio de código público.