View a markdown version of this page

Utilisation du point de terminaison Registry MCP - Base rocheuse de l'Amazonie AgentCore

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation du point de terminaison Registry MCP

La migration est désormais ouverte

AWS Le registre des agents a été lancé sous le nouvel agent-registry espace de noms. La prise en charge de l'bedrock-agentcoreespace de noms de version préliminaire publique sera interrompue le 17 septembre 2026. Pour obtenir des instructions de migration, consultez le guide complet de migration du registre.

Vue d’ensemble

Chaque registre expose un MCP-compatible point de terminaison conforme à la spécification 2025-11-25 sur le site Web du Model Context Protocol. Le point de terminaison prend en charge la liste des outils et l'appel d'outils pour rechercher des enregistrements de registre.

Exemple
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

Dans l'agent-registryespace de noms, le point de terminaison MCP expose les trois API du plan de données de découverte en tant qu'outils MCP :

  • search_discoverable_registry_records— Recherche en langage naturel pour les enregistrements approuvés.

  • list_discoverable_registry_records— Liste paginée des enregistrements approuvés.

  • batch_get_discoverable_registry_record— Récupération en masse du contenu complet de l'enregistrement par ID d'enregistrement.

Dans l'bedrock-agentcoreespace de noms, seul l'search_registry_recordsoutil est exposé. Les tableaux suivants présentent les définitions des outils :

Exemple
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"}}

Vous pouvez vous connecter au registre à partir d'un client MCP existant, tel que Kiro, Claude, etc.

Connectez-vous au point de terminaison MCP du OAuth-based registre à partir d'un client MCP existant

Permissions

Le point de terminaison MCP l'utilisera CustomJWTAuthorizerConfiguration pour autoriser les demandes entrantes.

Le .well-known/oauth-protected-resource chemin est : 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>/mcppour les registres encore présents dans l'bedrock-agentcoreespace de noms).

Le client peut également découvrir les métadonnées à partir de l'WWW-Authenticateen-tête :

Exemple
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"

Une fois que vous avez obtenu le jeton d'accès, vous pouvez le valider :

Exemple
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 fonction des exigences de sécurité de votre serveur d'autorisation et des exigences de sécurité de votre organisation, vous pouvez choisir l'une des approches suivantes pour configurer votre client MCP :

  1. Jeton porteur : utilisez un processus distinct pour récupérer le jeton porteur et le configurer dans l'en-tête du client MCP

  2. Pre-registered client : créez un client sur votre serveur d'autorisation et autorisez le client dans la configuration du registre.

  3. Enregistrement dynamique des clients : si votre serveur d'autorisation prend en charge l'enregistrement dynamique des clients (DCR), vous pouvez autoriser l'audience dans la configuration du registre.

OAuth-based Configuration du client MCP

Utiliser le jeton du porteur

Dans la plupart des IDE, vous pouvez configurer le jeton porteur d'en-tête d'autorisation dans une configuration mcp. Par exemple, Kiro IDE prend en charge les variables d'environnement à l'aide de cette ${ENV_VAR} syntaxe. Pour plus de détails, consultez la section Sécurisation des connexions MCP sur le site Web de Kiro. Vous pouvez utiliser l'exemple suivant :

Exemple
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}" } } } }

Pre-registered client

Vous pouvez créer un nouveau client en fonction de l'attribution du code d'autorisation sur votre serveur d'autorisation et utiliser le client pour accéder au registre. Par exemple, créez un client dans le groupe d'utilisateurs Cognito.

Une fois que vous avez l'ID client, assurez-vous de l'inscrire dans le registre :

Exemple
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>"] } } }'

Vous pouvez ensuite configurer votre client MCP s'il prend en charge la spécification de l'ID client. Un exemple en code Claude :

Exemple
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>" } } } }
Note

Certains serveurs d'autorisation tels que Auth0 et Cognito ne vous permettent pas de configurer une plage de ports comme URI de redirection autorisés. Vous devez donc en définir un explicitement dans l' redirect/callback URL autorisée du client préenregistré, ainsi que dans le fichier mcp.json.

Enregistrement dynamique des clients

La plupart des applications clientes MCP prennent en charge l'enregistrement dynamique des clients. Dans ce cas, vous ne devez PAS spécifier de allowedClients valeur dans le registre. Au lieu de cela, vous pouvez choisir de définirallowedAudience. La valeur peut être la même que celle de votre registre MCP. Vous devez configurer votre serveur d'autorisation pour émettre JWT avec un aud champ ayant la même valeur que dansallowedAudience.

Exemple
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"] } } }'

Vous pouvez ensuite configurer votre client MCP simplement à l'aide d'une URL :

Exemple
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" } } }

Erreurs courantes lors de la configuration de l'enregistrement dynamique des clients :

  • Vous devez vous assurer que le serveur d'autorisation prend en charge l'enregistrement dynamique des clients.

  • Le serveur d'autorisation doit émettre un aud champ JWT, qui est autorisé dans votre registre. CustomJWTAuthorizerConfiguration

  • Actuellement, le registre ne renvoie pas de défi de portée dans l'en-tête www-authenticate. Certains clients MCP prennent en charge la définition explicite oauthScopes dans la configuration, comme Kiro.

Connectez-vous au point de terminaison MCP du IAM-based registre à partir d'un client MCP existant

Permissions

Pour l'initialisation du MCP et la liste des outils :

Exemple
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/*" }

Pour effectuer une recherche via l'invocation de l'outil MCP, vous devez également :

Exemple
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/*" }

Vous pouvez vérifier l'autorisation à l'aide de la commande :

Exemple
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 Configuration du client MCP

Vous pouvez utiliser mcp-proxy-for-aws sur le GitHub site Web pour vous connecter à un registre. IAM-based Par exemple, dans Kiro mcp.json :

Exemple
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" ] } } }

Développez votre propre client MCP

Pour plus de références de code sur la façon d'invoquer le point de terminaison Registry MCP, y compris à partir d'IDE populaires tels que Kiro ou Claude Code, veuillez consulter des exemples de références de code dans le référentiel de code public.