View a markdown version of this page

MCP 通訊協定合約 - Amazon Bedrock AgentCore

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/jsontext/event-stream作為回應內容類型

使用案例

/mcp 端點有幾個主要用途:

  • 工具調用和管理

  • 代理程式功能探索

  • 資源存取和操作

  • 多步驟代理程式工作流程

OAuth 身分驗證回應

OAuth 設定的代理程式遵循 RFC 6749 (OAuth 2.0) 身分驗證標準。缺少身分驗證時,服務會傳回具有 WWW-Authenticate 標頭的 401 未授權回應 (根據 RFC 7235),讓用戶端能夠透過 GetRuntimeProtectedResourceMetadata API 探索授權伺服器端點。

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標頭。