Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mcp.zhcndoc.com/llms.txt

Use this file to discover all available pages before exploring further.

本文档列出了自上一个修订版 2025-11-25 以来对模型上下文协议 (MCP) 规范所做的更改。

重大变更

  1. 移除流式 HTTP 传输中的协议级会话以及 Mcp-Session-Id 标头。列表端点(tools/listresources/listprompts/list)不再按连接变化。需要跨调用状态的服务器应使用显式的、由服务器签发的句柄,并将其作为普通工具参数传递 (SEP-2567)。
  2. 使 MCP 无状态:移除 initialize/notifications/initialized 握手。现在每个请求都在 _meta 中携带其协议版本、客户端标识和客户端能力(io.modelcontextprotocol/protocolVersionio.modelcontextprotocol/clientInfoio.modelcontextprotocol/clientCapabilities)。版本不匹配时返回 UnsupportedProtocolVersionError (SEP-2575)。
  3. 添加 server/discover:服务器必须实现此 RPC,以公布其支持的协议版本、能力和标识。客户端可以在任何其他请求之前调用它,以便提前选择版本;或者在 STDIO 上将其用作向后兼容探测 (SEP-2575)。
  4. 将 HTTP GET 端点以及 resources/subscribe/resources/unsubscribe 替换为 subscriptions/listen:为已选择接收的服务器到客户端变更通知提供单个长生命周期的 POST-响应流。客户端可针对特定类型选择订阅(toolsListChangedpromptsListChangedresourcesListChangedresourceSubscriptions);服务器会确认并使用 io.modelcontextprotocol/subscriptionId 为通知打标签。诸如 notifications/progressnotifications/message 这类与请求作用域相关的通知,继续沿它们所关联请求的响应流传递,而不是 subscriptions/listen 流 (SEP-2575)。
  5. 移除 pinglogging/setLevelnotifications/roots/list_changed。日志级别现在通过 _meta 中的 io.modelcontextprotocol/logLevel 按请求设置;对于未包含此字段的请求,服务器不得发送 notifications/message (SEP-2575)。
  6. 将实验性任务移出核心协议,纳入官方扩展(io.modelcontextprotocol/tasks)。重新设计后的扩展以通过 tasks/get 轮询和新的 tasks/update 接收客户端到服务器的输入,取代了阻塞式 tasks/result 方法,移除了 tasks/list,并允许服务器无需按请求显式选择即可返回任务句柄 (SEP-2663)。
  7. 引入多轮往返请求(MRTR)模式,用以替代此前发送服务器发起请求的方式,例如 roots/listsampling/createMessageelicitation/create。服务器返回 inputRequests,这是一种新的 resultType,包含处理该请求所需的附加信息。客户端随后在下一次请求中通过 inputResponses 响应并提供所请求的信息。(SEP-2322)。
  8. 弃用 Roots、Sampling 和 Logging 功能 (SEP-2577)。 这些功能在弃用窗口期间仍然完全可用,但新的 实现不应再为其添加支持。

次要变更

  1. ClientCapabilitiesServerCapabilities 添加 extensions 字段,以支持核心协议之外的可选 扩展
  2. _meta 键(traceparenttracestatebaggage)记录 OpenTelemetry 追踪上下文传播约定 (SEP-414)。
  3. 服务器应当以确定性的顺序从 tools/list 返回工具,以便支持客户端缓存并提高 LLM 提示缓存命中率。
  4. 对 Streamable HTTP POST 请求要求使用标准 MCP 请求标头(Mcp-MethodMcp-Name),并通过 x-mcp-header 支持将工具参数中的自定义标头传递出去 (SEP-2243)。
  5. 通过新的 CacheableResult 接口,为 tools/listprompts/listresources/listresources/readresources/templates/list 返回的结果添加 ttlMscacheScope 字段。ttlMs 是新鲜度提示(以毫秒为单位),允许客户端缓存响应并减少轮询;cacheScope"public""private")控制共享中间代理是否可以缓存该响应。这两个字段是对现有 listChanged 通知的补充 (SEP-2549)。
  6. 将资源未找到错误码从 -32002 更改为 -32602(无效参数),以与 JSON-RPC 规范保持一致。

其他架构变更

治理和流程更新

流程变更

  1. 正式化基于 PR 的 SEP 工作流,包括 seps/ 目录中的 markdown 文件、源自 PR 的编号、赞助者职责以及通过 PR 标签进行状态管理 (SEP-1850)。

完整变更日志

有关自上一个协议修订版以来所做的所有更改的完整列表,请参阅 GitHub