View a markdown version of this page

MCP 协议合约 - Amazon Bedrock AgentCore

MCP 协议合约

了解实现模型上下文协议 (MCP) 的要求,以便代理可以调用工具和代理服务器。

有关示例代码,请参阅在 AgentCore 运行时部署 MCP 服务器。

协议实施要求

您的 MCP 服务器必须实现以下特定的协议要求:

  • 运 Streamable-http 输:需要运输。默认情况下,为了与的会话管理和负载平衡兼容 AWS,请使用无状态模式 (stateless_http=True)。

  • 会话管理:平台会自动添加Mcp-Session-Id标头以进行会话隔离。在无状态模式下,服务器必须支持无状态操作,以免拒绝平台生成的Mcp-Session-Id标头。

提示

Amazon Bedrock AgentCore 还支持有状态的 MCP 服务器 (stateless_http=False),这些服务器支持引发(多回合用户交互)和采样(内容)等功能。LLM-generated 当您的 MCP 服务器需要在同一个工具调用中跨多个请求维护会话上下文时,需要状态模式。有关更多信息和示例,请参阅有状态 MCP 服务器功能

MCP 会话管理和 microVM 粘性

模型上下文协议 (MCP) 使用标Mcp-Session-Id头来管理会话状态和路由请求。有关 MCP 规范,请参阅 MCP 可流式传输 HTTP 传输

microVM 粘性: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中返回。

  • 客户端必须将其包含Mcp-Session-Id在所有后续的会话状态和 microVM 关联请求中。

有关有状态 MCP 会话管理的更多详细信息,请参阅 MCP 会话管理规范。

注意

在这两种模式下,Amazon Bedrock AgentCore 总是会向客户返回Mcp-Session-Id标题。请务必捕获并重复使用此标头以获得最佳性能。

容器要求

您的 MCP 服务器必须部署为符合以下规范的容器化应用程序:

  • 主机0.0.0.0

  • 端口8000-用于 MCP 服务器通信的标准端口(与 HTTP 协议不同)

  • 平台:ARM64 容器-需要与 AWS 亚马逊 Bedrock AgentCore 运行时环境兼容

路径要求

/mcp-POST

目的

接收 MCP RPC 消息并通过代理的工具功能进行处理,使用标准 MCP RPC 消息完成 InvokeAgentRuntimeAPI 有效负载的传递

响应格式

JSON-RPC 基于 request/response 格式,同时支持application/jsontext/event-stream作为响应内容类型

使用案例

/mcp端点有几个关键用途:

  • 工具调用和管理

  • 代理能力发现

  • 资源访问和操纵

  • Multi-step 代理工作流程

OAuth 身份验证响应

OAuth-configured 代理遵守 RFC 6749 (OAuth 2.0) 身份验证标准。当缺少身份验证时,该服务会返回带有 WWW-Authenticate 标头的 401 未经授权的响应(根据 RFC 7235),使客户端能够通过 API 发现授权服务器端点。 GetRuntimeProtectedResourceMetadata

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标头。