Contrat de protocole MCP
Comprenez les exigences relatives à la mise en œuvre du protocole MCP (Model Context Protocol) afin que les agents puissent appeler des outils et des serveurs d'agents.
Pour un exemple de code, voir Déployer des serveurs MCP dans AgentCore Runtime.
Rubriques
Exigences de mise en œuvre du protocole
Votre serveur MCP doit implémenter ces exigences de protocole spécifiques :
-
Transport : Streamable-http le transport est obligatoire. Par défaut, utilisez le mode stateless (
stateless_http=True) pour assurer la compatibilité avec AWS la gestion des sessions et l'équilibrage de charge. -
Gestion de session : La plateforme ajoute automatiquement un
Mcp-Session-Iden-tête pour l'isolation des sessions. En mode apatride, les serveurs doivent prendre en charge le fonctionnement sans état afin de ne pas rejeter l'en-tête généré parMcp-Session-Idla plate-forme.
Astuce
Amazon Bedrock prend AgentCore également en charge les serveurs MCP dynamiques (stateless_http=False) qui permettent des fonctionnalités telles que l'élicitation (interactions utilisateur à plusieurs tours) et l'échantillonnage (contenu). LLM-generated Le mode dynamique est requis lorsque votre serveur MCP doit maintenir le contexte de session pour plusieurs demandes au cours d'un même appel d'outil. Pour plus d'informations et des exemples, consultez la section Fonctionnalités du serveur Stateful MCP.
Gestion des sessions MCP et rigidité des microVM
Le Model Context Protocol (MCP) utilise l'Mcp-Session-Iden-tête pour gérer l'état de session et acheminer les demandes. Pour la spécification MCP, voir MCP Streamable HTTP Transport
MicroVM Stickiness : Amazon Bedrock AgentCore utilise l'Mcp-Session-Iden-tête pour acheminer les demandes vers la même instance de microVM. Les clients doivent saisir le résultat Mcp-Session-Id renvoyé dans la réponse et l'inclure dans toutes les demandes suivantes afin de garantir l'affinité de session. Sans identifiant de session cohérent, chaque demande peut être acheminée vers une nouvelle microVM, ce qui peut entraîner une latence supplémentaire en raison des démarrages à froid.
MCP apatride () stateless_http=True :
-
La plateforme le génère
Mcp-Session-Idet l'inclut dans la demande adressée à votre serveur MCP. -
Votre serveur MCP doit accepter l'ID de session fourni par la plateforme (ne le rejetez pas).
-
La plateforme renvoie la même chose
Mcp-Session-Idau client dans la réponse. -
Le client doit inclure cet ID de session dans toutes les demandes ultérieures d'affinité microVM.
MCP dynamique () stateless_http=False :
-
Le client envoie la demande d'initialisation sans
Mcp-Session-Iden-tête. -
La plateforme renvoie
Mcp-Session-Idla réponse. -
Le client doit l'inclure
Mcp-Session-Iddans toutes les demandes ultérieures concernant à la fois l'état de session et l'affinité microVM.
Pour plus de détails sur la gestion dynamique des sessions MCP, consultez la spécification de gestion des sessions MCP
Note
Dans les deux modes, Amazon Bedrock renvoie AgentCore toujours un Mcp-Session-Id en-tête aux clients. Capturez et réutilisez toujours cet en-tête pour des performances optimales.
Exigences relatives aux contenants
Votre serveur MCP doit être déployé en tant qu'application conteneurisée répondant aux spécifications suivantes :
-
Hôte :
0.0.0.0 -
Port :
8000- Port standard pour les communications avec le serveur MCP (différent du protocole HTTP) -
Plateforme : conteneur ARM64 - Nécessaire pour la compatibilité avec l'environnement d' AWS exécution Amazon Bedrock AgentCore
Exigences relatives au chemin
/mcp - POST
Objectif
Reçoit les messages MCP RPC et les traite grâce aux capacités de l'outil de votre agent, transmission complète de la charge utile de l'InvokeAgentRuntimeAPI avec des messages MCP RPC standard
Format de réponse
JSON-RPC request/response format basé, prenant en charge les deux types application/json et en text/event-stream tant que types de contenu de réponse
Cas d’utilisation
Le /mcp point de terminaison répond à plusieurs objectifs clés :
-
Invocation et gestion des outils
-
Découverte des capacités des agents
-
Accès aux ressources et manipulation
-
Multi-step flux de travail des agents
Réponses d'authentification OAuth
OAuth-configured les agents respectent les normes d'authentification RFC 6749 (OAuth 2.0
401 Accès non autorisé
Renvoyé lorsque l'en-tête d'autorisation est manquant ou vide.
La réponse inclut WWW-Authenticate l'en-tête :
WWW-Authenticate: Bearer resource_metadata="https://bedrock-agentcore.{region}.amazonaws.com/runtimes/{ESCAPED_ARN}/invocations/.well-known/oauth-protected-resource?qualifier={QUALIFIER}"
Note
SigV4-configured les agents renvoient le HTTP 403 avec une ACCESS_DENIED erreur et n'incluent pas les WWW-Authenticate en-têtes.