MCP 最大版本更新:无状态核心如何让 AI Agent 真正上生产

前言

Model Context Protocol(MCP)是连接 AI 应用与外部工具、数据源的开放协议。2024 年 11 月由 Anthropic 发布,2025 年 12 月捐赠给 Linux Foundation 旗下的 Agentic AI Foundation(AAIF),现已成为 Claude、Cursor、VS Code、ChatGPT 等平台广泛采用的集成标准。据 Anthropic 官方数据,MCP SDK 月下载量已突破 4 亿次,较年初增长约 4 倍。

2026 年 7 月 28 日,MCP 正式发布 2026-07-28 规范——这是协议推出以来规模最大的一次修订。核心变化可以概括为一句话:协议层彻底无状态化initialize 握手、Mcp-Session-Id 会话头被移除,远程 MCP 服务器可以像普通 HTTP API 一样部署在 Serverless、边缘节点和标准负载均衡之后;MCP Apps、Tasks 毕业为官方扩展;OAuth 2.0 授权规范同步加固。Claude 全线产品已开始逐步支持新版规范。本文基于 MCP 官方博客、Anthropic 公告及社区讨论,梳理这次更新的技术要点与迁移思路。

无状态核心:告别握手与会话

旧模型的问题

2025-11-25 版本中,通过 Streamable HTTP 调用工具需要先建立会话。客户端发送 initialize 请求,服务器返回 Mcp-Session-Id,后续每次调用都必须携带该头,请求被「钉」在签发会话的那台实例上。生产环境因此往往需要:

  • 粘性会话(sticky session)或会话亲和路由
  • 共享 Session Store(Redis 等)
  • 网关在 L7 层深度解析 JSON-RPC body 才能做路由与限流

这对想把 MCP 服务器部署到 Lambda、Cloudflare Workers 或普通 K8s 轮询负载均衡上的团队,是不小的运维负担。MCP 网关/registry 运营方(如 Glama)也在社区反馈中证实,相当比例的兼容性问题与会话状态持久化有关。

新模型:单次自包含请求

2026-07-28 把同一次工具调用压缩为一条自包含的 HTTP 请求,任意实例均可处理:

POST /mcp HTTP/1.1
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: search
Content-Type: application/json

{"jsonrpc":"2.0","id":1,"method":"tools/call",
 "params":{"name":"search","arguments":{"q":"otters"},
           "_meta":{"io.modelcontextprotocol/clientInfo":{"name":"my-app","version":"1.0"}}}}

六项 SEP(Specification Enhancement Proposals)协同完成这一改造:

  1. SEP-2575:移除 initialize/initialized 握手。协议版本、客户端信息与能力改由每条请求的 _meta 携带;需要提前获知服务器能力时,可调用新的 server/discover 方法。
  2. SEP-2567:移除 Mcp-Session-Id 及协议层会话概念。
  3. SEP-2243:Streamable HTTP 传输强制要求 Mcp-MethodMcp-Name 头,负载均衡器与网关可按操作类型路由,无需解析 body;头与 body 不一致时服务器应拒绝。
  4. SEP-2549tools/list 等列表结果携带 ttlMscacheScope(类似 HTTP Cache-Control),客户端可安全缓存,减少重复拉取。
  5. SEP-2260 + SEP-2322:服务端主动向客户端发起交互(如确认删除)改为 Multi Round-Trip 模式,返回 InputRequiredResult,客户端携带 inputResponsesrequestState 重试——全程无持久 SSE 连接。
  6. SEP-414:在 _meta 中标准化 W3C Trace Context(traceparent 等),便于 OpenTelemetry 全链路追踪。

无状态协议 ≠ 无状态应用

协议不再替你管理会话,但业务仍可通过「显式句柄」跨调用传递状态:服务器在工具返回值中 mint 一个 basket_idbrowser_id,模型在后续调用中作为普通参数传回。官方文档指出,这种模式往往比隐藏在传输层的 session 更灵活——模型可以组合、推理并在多步任务间传递这些标识。

扩展框架:MCP Apps 与 Tasks 正式毕业

2025-11-25 中扩展缺乏正式治理流程。2026-07-28 通过 SEP-2133 建立 Extensions Track:扩展以 reverse-DNS ID 标识,独立 ext-* 仓库维护,版本与核心规范解耦,客户端/服务器通过 capabilities 中的 extensions map 协商启用。

MCP Apps(SEP-1865)

服务器可声明交互式 HTML UI 模板,宿主在沙箱 iframe 中渲染。模板可预取、缓存与安全审查;UI 侧操作仍走 JSON-RPC,与直接 tool call 共用审计与授权路径。Claude 已支持 MCP Apps,用户可在对话内联操作连接器 UI,无需切 tab。

Tasks 扩展

Tasks 在 2025-11-25 曾作为实验性核心功能出现;生产实践表明其生命周期更适合独立扩展。新版流程适配无状态模型:

  • 服务器对 tools/call 可返回 task handle
  • 客户端用 tasks/gettasks/updatetasks/cancel 驱动进度
  • 任务创建由服务器决定(客户端仅声明支持扩展)
  • tasks/list 已移除(无会话时无法安全 scoped)

若你曾对接旧版实验性 Tasks API,需要按新生命周期迁移。

OAuth 2.0 授权加固

六项 SEP 使 MCP 授权更接近企业 IdP(Entra、Okta 等)的实际部署方式,要点包括:

  • SEP-2468:客户端必须校验授权响应中的 iss 参数(RFC 9207),缓解 mix-up 类攻击;未来版本可能强制拒绝缺少 iss 的响应。
  • SEP-837:Dynamic Client Registration 时声明 OpenID Connect application_type,避免桌面/CLI 客户端被误默认为 "web" 而 localhost redirect 被拒。
  • SEP-2352:注册凭证绑定到授权服务器 issuer,资源迁移时需重新注册。
  • SEP-2207 / SEP-2350 / SEP-2351:补充 refresh token 请求、step-up scope 累积与 .well-known 发现后缀说明。

Claude 侧已提供 Enterprise-managed auth:管理员在 IdP 中一次性授权连接器,用户通过现有组继承访问,首次登录即零-touch 接入。

其他值得关注的变更

变更 说明
Roots / Sampling / Logging 弃用 分别由工具参数、直连 LLM API、OpenTelemetry 替代;标注弃用,至少保留一年
Tool Schema 升级 JSON Schema 2020-12 支持 oneOf$ref 等;structuredContent 可为任意 JSON 值
错误码 -32002-32602 资源缺失改用 JSON-RPC 标准 Invalid Params
特性生命周期策略 SEP-2577 Active → Deprecated → Removed,弃用与移除间隔不少于 12 个月

迁移与生产部署建议

本次为 breaking change,官方 RC 于 2026 年 5 月 21 日锁定,最终规范 7 月 28 日发布;Tier 1 SDK 预期在十周验证窗口内跟进。

社区评估(含 Hacker News 讨论)普遍认为:

  1. 线协议双向不兼容:仅升级 SDK 往往不够,服务器与客户端可能需重构传输层与握手逻辑。
  2. SSE-only 存量仍多:尽管 SSE 已弃用,大量实现仍仅支持旧 Streamable HTTP + 会话模式,迁移周期会拉长。
  3. 网关价值上升:协议版本并存的过渡期里,MCP 网关可作为互操作层,在旧客户端与新无状态服务器之间做协议转换。

若你正在规划生产 rollout,可按以下顺序推进:

  1. 阅读 官方 changelogdraft specification,对照 SEP 清单评估影响面。
  2. 移除对 initializeMcp-Session-Id 的依赖;在每条请求注入 _metaMCP-Protocol-Version 头。
  3. tools/list 实现 ttlMs 缓存;在网关层利用 Mcp-Method/Mcp-Name 做路由与限流。
  4. 若使用 Tasks 实验 API 或依赖 Roots/Sampling,按弃用表制定迁移时间表。
  5. 授权侧检查 AS 是否返回 iss,CLI/桌面客户端完成 DCR application_type 声明。
  6. 关注所用 SDK 的 Tier 1 支持进度;Claude Connectors 目录提交需符合新版规范要求。

结语

2026-07-28 把 MCP 从「需要会话亲和的 Agent 专线协议」推进为「可运行在 commodity HTTP 基础设施上的无状态 workload」。配合扩展框架、正式弃用策略与 OAuth 加固,这是 MCP 走向大规模企业生产部署的基础性一步。代价是明确的迁移成本——但正如 MCP 维护者在 HN 上所回应的,对于希望把远程 MCP 服务器部署到 Serverless 的开发者,这是一次期待已久的改变。AAIF 社区已在 7 月 28 日前后举办 Release Party,SDK 与 Claude 产品支持仍在滚动发布中;建议尽早在新规范上验证你的工作负载,而不是等待旧版会话模型被完全边缘化。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜