Contratto di protocollo MCP
Comprendi i requisiti per l'implementazione del Model Context Protocol (MCP) in modo che gli agenti possano chiamare strumenti e server di agenti.
Per un esempio di codice, consulta Distribuire i server MCP in Runtime. AgentCore
Argomenti
Requisiti di implementazione del protocollo
Il server MCP deve implementare questi requisiti di protocollo specifici:
-
Trasporto: il Streamable-http trasporto è obbligatorio. Per impostazione predefinita, utilizza la modalità stateless (
stateless_http=True) per la compatibilità con la gestione delle sessioni e il bilanciamento AWS del carico. -
Gestione della sessione: la piattaforma aggiunge automaticamente l'
Mcp-Session-Idintestazione per l'isolamento della sessione. In modalità stateless, i server devono supportare il funzionamento stateless in modo da non rifiutare l'header generato dalla piattaforma.Mcp-Session-Id
Suggerimento
Amazon Bedrock supporta AgentCore anche server MCP stateful (stateless_http=False) che abilitano funzionalità come l'elicitazione (interazioni utente a più turni) e il campionamento (contenuto). LLM-generated La modalità Stateful è necessaria quando il server MCP deve mantenere il contesto della sessione tra più richieste all'interno della stessa chiamata dello strumento. Per ulteriori informazioni ed esempi, vedete Funzionalità del server Stateful MCP.
Gestione delle sessioni MCP e aderenza microVM
Il Model Context Protocol (MCP) utilizza l'Mcp-Session-Idintestazione per gestire lo stato della sessione e instradare le richieste. Per le specifiche MCP, vedere MCP
Adesività MicroVM: Amazon Bedrock AgentCore utilizza l'Mcp-Session-Idintestazione per indirizzare le richieste alla stessa istanza MicroVM. I client devono acquisire i dati Mcp-Session-Id restituiti nella risposta e includerli in tutte le richieste successive per garantire l'affinità della sessione. Senza un ID di sessione coerente, ogni richiesta può essere indirizzata a una nuova microVM, il che può comportare una latenza aggiuntiva dovuta agli avvii a freddo.
MCP senza stato (): stateless_http=True
-
La piattaforma genera
Mcp-Session-Ide lo include nella richiesta al server MCP. -
Il server MCP deve accettare l'ID di sessione fornito dalla piattaforma (non rifiutarlo).
-
La piattaforma restituisce lo stesso
Mcp-Session-Idal client nella risposta. -
Il client deve includere questo ID di sessione in tutte le richieste successive di affinità microVM.
MCP con stato (): stateless_http=False
-
Il client invia la richiesta di inizializzazione senza un'intestazione.
Mcp-Session-Id -
La piattaforma ritorna
Mcp-Session-Idnella risposta. -
Il client deve includerlo
Mcp-Session-Idin tutte le richieste successive sia per lo stato della sessione che per l'affinità microVM.
Nota
In entrambe le modalità, Amazon Bedrock restituisce AgentCore sempre un'Mcp-Session-Idintestazione ai client. Cattura e riutilizza sempre questa intestazione per prestazioni ottimali.
Requisiti del contenitore
Il server MCP deve essere distribuito come applicazione containerizzata che soddisfi queste specifiche:
-
Host:
0.0.0.0 -
Porta:
8000- Porta standard per la comunicazione con il server MCP (diversa dal protocollo HTTP) -
Piattaforma: contenitore ARM64 - Richiesto per la compatibilità con l'ambiente di AWS runtime Amazon Bedrock AgentCore
Requisiti del percorso
/mcp - POST
Scopo
Riceve messaggi RPC MCP e li elabora tramite le funzionalità degli strumenti dell'agente, trasmissione completa del payload InvokeAgentRuntimeAPI con messaggi MCP RPC standard
Formato di risposta
JSON-RPC request/response formato basato, che supporta entrambi application/json e text/event-stream come tipi di contenuto di risposta
Casi d'uso
L'/mcpendpoint serve a diversi scopi chiave:
-
Richiamata e gestione degli strumenti
-
Scoperta delle capacità degli agenti
-
Accesso e manipolazione delle risorse
-
Multi-step flussi di lavoro degli agenti
Risposte di autenticazione OAuth
OAuth-configured gli agenti seguono gli standard di autenticazione RFC 6749 (OAuth 2.0)
401 - Autorizzazione negata
Restituito quando l'intestazione di autorizzazione è mancante o vuota.
La risposta include l' WWW-Authenticate intestazione:
WWW-Authenticate: Bearer resource_metadata="https://bedrock-agentcore.{region}.amazonaws.com/runtimes/{ESCAPED_ARN}/invocations/.well-known/oauth-protected-resource?qualifier={QUALIFIER}"
Nota
SigV4-configured gli agenti restituiscono HTTP 403 con un ACCESS_DENIED errore e non includono WWW-Authenticate le intestazioni.