前言¶
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)协同完成这一改造:
- SEP-2575:移除
initialize/initialized握手。协议版本、客户端信息与能力改由每条请求的_meta携带;需要提前获知服务器能力时,可调用新的server/discover方法。 - SEP-2567:移除
Mcp-Session-Id及协议层会话概念。 - SEP-2243:Streamable HTTP 传输强制要求
Mcp-Method、Mcp-Name头,负载均衡器与网关可按操作类型路由,无需解析 body;头与 body 不一致时服务器应拒绝。 - SEP-2549:
tools/list等列表结果携带ttlMs与cacheScope(类似 HTTP Cache-Control),客户端可安全缓存,减少重复拉取。 - SEP-2260 + SEP-2322:服务端主动向客户端发起交互(如确认删除)改为 Multi Round-Trip 模式,返回
InputRequiredResult,客户端携带inputResponses与requestState重试——全程无持久 SSE 连接。 - SEP-414:在
_meta中标准化 W3C Trace Context(traceparent等),便于 OpenTelemetry 全链路追踪。
无状态协议 ≠ 无状态应用¶
协议不再替你管理会话,但业务仍可通过「显式句柄」跨调用传递状态:服务器在工具返回值中 mint 一个 basket_id 或 browser_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/get、tasks/update、tasks/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 讨论)普遍认为:
- 线协议双向不兼容:仅升级 SDK 往往不够,服务器与客户端可能需重构传输层与握手逻辑。
- SSE-only 存量仍多:尽管 SSE 已弃用,大量实现仍仅支持旧 Streamable HTTP + 会话模式,迁移周期会拉长。
- 网关价值上升:协议版本并存的过渡期里,MCP 网关可作为互操作层,在旧客户端与新无状态服务器之间做协议转换。
若你正在规划生产 rollout,可按以下顺序推进:
- 阅读 官方 changelog 与 draft specification,对照 SEP 清单评估影响面。
- 移除对
initialize、Mcp-Session-Id的依赖;在每条请求注入_meta与MCP-Protocol-Version头。 - 为
tools/list实现ttlMs缓存;在网关层利用Mcp-Method/Mcp-Name做路由与限流。 - 若使用 Tasks 实验 API 或依赖 Roots/Sampling,按弃用表制定迁移时间表。
- 授权侧检查 AS 是否返回
iss,CLI/桌面客户端完成 DCRapplication_type声明。 - 关注所用 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 产品支持仍在滚动发布中;建议尽早在新规范上验证你的工作负载,而不是等待旧版会话模型被完全边缘化。