编程与软件开发

MCP 新版本重构协议,实现无状态运行

Model Context Protocol 的 2026-07-28 版本成为无状态协议,使 MCP 服务器能够在 Cloudflare Workers 上运行,而无需专用基础设施管理会话。该版本还包含多轮交互、授权和功能生命周期方面的变化,以及更新后的 SDK 包和现有应用的迁移路径。

2026-08-06
2 分钟阅读
281 浏览量
certi.news Editorial Team
MCP 新版本重构协议,实现无状态运行

Model Context Protocol (MCP) 在 2026-07-28 版本中成为完全无状态的协议,其核心、交互模型和相关 SDK 包均经过重写。Cloudflare 表示,这一变化使 MCP 服务器能够在普通 Worker 中运行,无需专用基础设施来维护协议会话,同时降低运营复杂性以及由额外组件带来的成本。

新规范于上周发布,同时推出了 TypeScript、Python、Go 和 C# 语言 SDK 包的更新版本。Cloudflare 表示,服务器现在可以接收请求、执行工具或提示词或资源操作,然后返回结果,而无需在请求之间存储协议会话。

取消强制会话

此前的版本会通过 initialize 和 initialized 交换来创建会话,并可通过 Mcp-Session-Id 标头分配标识符。之后的每个请求都必须访问与该会话关联的状态,这给依赖自动扩展的环境带来了挑战,也要求部署在迁移或关闭活动会话。服务器活动实例的丢失可能导致客户端重新连接或会话中断。

新版本移除了强制握手、Mcp-Session-Id 标头以及基本请求路径中的会话。每个请求都会携带协议版本、客户端身份及其所需的能力。用于在执行其他请求前检查服务器的 server/discover 调用也变成了可选项。

这并不意味着有状态应用不再需要;Cloudflare 指出,当应用本身需要协调状态时,Durable Objects 仍然适用。但 MCP 不再要求使用 Durable Objects 来进行协议通信,需要按请求处理的服务器可以在 Workers 上扩展。

以多轮交互取代开放式流

该版本重新设计了 elicitation 机制,即服务器在完成请求前需要额外信息的情况,例如需要批准将版本发布到生产环境,或确认退款金额。此前,服务器发起的请求依赖开放式流。

借助 Multi Round-Trip Requests 机制,服务器可以返回名为 input_required 的结果,说明所需的数据。客户端收集答案后,携带这些数据重新尝试操作,双方无需在两次请求之间保留传输会话。Cloudflare 称,这一变化与旧方式不兼容,但在运营层面更加简单。

让 MCP 请求能够被 HTTP 基础设施理解

新规范要求 Streamable HTTP 请求中包含 Mcp-Method 和 Mcp-Name 两个标头。这样,网关、请求速率限制器或 Web 应用防火墙无需完整解析 JSON-RPC 内容,就能了解请求是在调用工具还是读取资源。

规范还在 tools/list、prompts/list、resources/list 和 resources/read 的结果中加入了 ttlMs 和 cacheScope 提示,并为工具索引规定了确定性排序,从而支持重复使用,并在重新连接时保持提示词缓存的稳定性。

授权和功能生命周期变化

新规范优先使用预先注册的客户端(当客户端与服务器之间已存在关系时),然后使用客户端元数据文档 CIMD 进行动态注册,而 Dynamic Client Registration,即 DCR,则成为备用选项。对于新应用,DCR 已被宣布弃用,并计划在 2027 年夏季之后移除。

规范还采用了 RFC 9207 的颁发者识别机制,并要求在授权和令牌请求中,根据 RFC 8707 使用服务器基本地址作为资源。Cloudflare 表示,Workers OAuth Provider 已为 Workers 上的 MCP 服务器实现这些要求。

规范现在拥有正式的生命周期,将功能分为活跃、弃用或移除。弃用的功能必须至少保留 12 个月后才能移除。本版本宣布弃用的功能包括 Roots、Sampling、Logging、DCR 以及旧版 HTTP+SSE 方式。MCP Apps 和 Enterprise-Managed Authorization 现已成为扩展,而 Tasks 则被移入扩展框架,以便为长时间运行且可靠的工作提供路径。

迁移路径和可用性

createMcpHandler 接口将从实验状态转入官方 MCP TypeScript SDK 包,Cloudflare 也将继续通过 Agents SDK 提供面向 Workers 的接口。该公司还帮助将 TypeScript SDK 从 Node.js 迁移到 Web Standards,以改善与 Bun、Deno 和 Cloudflare Workers 的兼容性。

客户端可以在保持与旧版规范兼容的情况下进行迁移。/mcp 端点接受新协议,以及使用 2025 版本的 Streamable HTTP 客户端发出的无状态请求,因此大多数客户端无需更改配置即可重新连接。依赖旧式会话、服务器到客户端请求或独立流的服务器则需要更加谨慎的迁移路径,例如在旧路径旁运行无状态路径,直到活动会话耗尽。

Cloudflare 表示,新规范已面向其平台上的客户端和服务器提供,可以在 Worker 上运行无状态 MCP 服务器,并通过 Workers OAuth Provider 保护它。该公司称,其 Cloudflare API 接口的 Code Mode MCP Server 服务采用了这一方式,达到了每秒数千个请求和数十亿次工具调用。

新闻来源
Cloudflare Blog
查看原始来源 ↗
c
作者

certi.news Editorial Team

你需要知道的

2026-07-28 发布的 Model Context Protocol 重新设计了协议,使其无需强制状态会话,从而更便于在 Cloudflare Workers 上运行服务器,而无需专门的会话管理基础设施。该版本还包含多轮请求、授权和功能生命周期方面的变更,并提供了迁移现有应用的路径。

  • 新版本移除了基本请求路径中的强制握手和 Mcp-Session-Id 标头,每个请求都携带执行所需的信息。
  • 无状态 MCP 服务器可以在普通 Worker 上运行;当应用需要协调状态时,Durable Objects 仍然适用。
  • Multi Round-Trip Requests 机制允许服务器通过 input_required 结果请求额外信息,而无需在请求之间保留传输会话。
  • Streamable HTTP 请求现在必须包含 Mcp-Method 和 Mcp-Name 两个标头,以帮助网关、速率限制器和防火墙理解请求。
  • Dynamic Client Registration 现已成为后备选项;对于新应用,该功能已被宣布弃用,并计划在 2027 年夏季之后移除。
  • TypeScript、Python、Go 和 C# 均提供了更新后的 SDK;在特定情况下,客户端可以迁移并保持与旧版规范的兼容性。

常见问题

MCP 的 2026-07-28 版本发生了哪些变化?

MCP 在核心协议路径中实现了完全无状态化,移除了强制会话、握手以及 Mcp-Session-Id 标头。

在 Cloudflare Workers 上运行 MCP 是否仍需要 Durable Objects?

不需要。MCP 不再要求使用 Durable Objects 来进行协议通信,但对于需要协调状态的应用,Durable Objects 仍然适用。

旧应用是否需要立即迁移?

客户端可以迁移并保持与旧版规范的兼容性,但依赖旧会话或独立流程的服务器,可能需要在旧路径旁运行无状态路径,直到活动会话耗尽。

同一分类

你可能还喜欢

查看所有新闻