MCP 通訊協定合約
了解實作模型內容通訊協定 (MCP) 的要求,以便客服人員可以呼叫工具和客服人員伺服器。
如需範例程式碼,請參閱在 AgentCore 執行期中部署 MCP 伺服器。
通訊協定實作要求
您的 MCP 伺服器必須實作這些特定的通訊協定需求:
-
Transport :需要 Streamable-http 傳輸。根據預設,使用無狀態模式
stateless_http=True() 與 AWS工作階段管理和負載平衡的相容性。 -
工作階段管理:平台會自動新增工作階段隔離的
Mcp-Session-Id標頭。在無狀態模式下,伺服器必須支援無狀態操作,以免拒絕平台產生的Mcp-Session-Id標頭。
提示
Amazon Bedrock AgentCore 也支援具狀態的 MCP 伺服器 stateless_http=False (),其可啟用引出 (多迴轉使用者互動) 和取樣 (LLM 產生的內容) 等功能。當您的 MCP 伺服器需要維護相同工具調用內多個請求的工作階段內容時,需要有狀態模式。如需詳細資訊和範例,請參閱具狀態 MCP 伺服器功能。
MCP 工作階段管理和 microVM 黏性
模型內容通訊協定 (MCP) 使用 Mcp-Session-Id標頭來管理工作階段狀態和路由請求。如需 MCP 規格,請參閱 MCP 可串流 HTTP 傳輸
MicroVM Stickiness:Amazon Bedrock AgentCore 使用 Mcp-Session-Id標頭將請求路由到相同的 microVM 執行個體。用戶端必須擷取回應中Mcp-Session-Id傳回的 ,並將其包含在所有後續請求中,以確保工作階段親和性。如果沒有一致的工作階段 ID,每個請求可能會路由到新的microVM,這可能會導致因冷啟動而導致額外的延遲。
無狀態 MCP stateless_http=True ():
-
平台會產生 ,
Mcp-Session-Id並將其包含在 MCP 伺服器的請求中。 -
您的 MCP 伺服器必須接受平台提供的工作階段 ID (請勿拒絕)。
-
平台會在回應中將相同的 傳回
Mcp-Session-Id給用戶端。 -
用戶端必須在所有後續的 microVM 親和性請求中包含此工作階段 ID。
具狀態 MCP stateless_http=False ():
-
用戶端在沒有
Mcp-Session-Id標頭的情況下傳送初始化請求。 -
平台會在回應
Mcp-Session-Id中傳回 。 -
用戶端必須在工作階段狀態和 microVM 親和性的所有後續請求
Mcp-Session-Id中包含此項目。
如需具狀態 MCP 工作階段管理的詳細資訊,請參閱 MCP 工作階段管理規格
注意
在這兩種模式下,Amazon Bedrock AgentCore 一律會傳回 Mcp-Session-Id標頭給用戶端。一律擷取和重複使用此標頭,以獲得最佳效能。
容器需求
您的 MCP 伺服器必須部署為符合下列規格的容器化應用程式:
-
主機 :
0.0.0.0 -
連接埠:
8000- MCP 伺服器通訊的標準連接埠 (與 HTTP 通訊協定不同) -
平台 :ARM64 容器 - 與 Amazon Bedrock AgentCore AWS 執行期環境相容時需要
路徑需求
/mcp - POST
用途
接收 MCP RPC 訊息,並透過客服人員的工具功能進行處理,透過標準 MCP RPC 訊息完成傳遞 InvokeAgentRuntime API 承載
回應格式
以 JSON-RPC 為基礎的請求/回應格式,支援 application/json和 text/event-stream作為回應內容類型
使用案例
/mcp 端點有幾個主要用途:
-
工具調用和管理
-
代理程式功能探索
-
資源存取和操作
-
多步驟代理程式工作流程
OAuth 身分驗證回應
OAuth 設定的代理程式遵循 RFC 6749 (OAuth 2.0)
401 (未經授權)
當授權標頭遺失或空白時傳回。
回應包含 WWW-Authenticate 標頭:
WWW-Authenticate: Bearer resource_metadata="https://bedrock-agentcore.{region}.amazonaws.com/runtimes/{ESCAPED_ARN}/invocations/.well-known/oauth-protected-resource?qualifier={QUALIFIER}"
注意
SigV4-configured代理程式傳回 HTTP 403 時發生錯誤ACCESS_DENIED,且不包含WWW-Authenticate標頭。