前言¶
Model Context Protocol(MCP)是连接 AI 模型与外部工具、数据源的开放标准。2026 年 7 月 28 日,MCP 正式发布 2026-07-28 规范——这是协议自诞生以来最大的一次修订,也是 MCP 的第五次规范发布。协议现由 Linux Foundation 旗下的 Agentic AI Foundation(AAIF) 托管,Anthropic、OpenAI、Google、Microsoft 等厂商共同参与维护。
根据官方数据,MCP 各 Tier 1 SDK 的月下载量已突破 4 亿次,年内增长约 4 倍;Claude 连接器目录收录的 MCP 服务器超过 950 个,每天被数百万用户使用。这次更新把 MCP 从「双向有状态协议」彻底转向 request/response 无状态模型,同时落地官方扩展框架与企业级 OAuth 认证,目标很明确:让 Agent 互联真正跑在普通 HTTP 基础设施上。
无状态核心:从会话绑定到自包含请求¶
旧版(2025-11-25)的工作方式¶
在上一版规范中,通过 Streamable HTTP 调用工具需要先建立会话。客户端发送 initialize 握手,服务器返回 Mcp-Session-Id,后续每个请求都必须携带该会话 ID,客户端被「钉」在签发会话的那台实例上:
POST /mcp HTTP/1.1
Content-Type: application/json
{"jsonrpc":"2.0","id":1,"method":"initialize",
"params":{"protocolVersion":"2025-11-25","capabilities":{},
"clientInfo":{"name":"my-app","version":"1.0"}}}
POST /mcp HTTP/1.1
Mcp-Session-Id: 1868a90c-3a3f-4f5b
Content-Type: application/json
{"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{"name":"search","arguments":{"q":"otters"}}}
这意味着生产部署通常需要 sticky session、共享会话存储,以及网关上对请求体的深度解析——运维成本不低。
新版(2026-07-28)的变化¶
2026-07-28 规范移除了 initialize/initialized 握手(SEP-2575)和 Mcp-Session-Id 会话头(SEP-2567)。同一个工具调用变成一条自包含请求,任意服务器实例都能处理:
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"}}}}
协议版本、客户端信息、能力声明改由每条请求的 _meta 字段携带;需要提前了解服务端能力时,可调用新的 server/discover 方法。实际效果是:MCP 服务器可以部署在 Serverless、边缘节点 或普通 round-robin 负载均衡后面,不再需要会话亲和性。
无状态协议,不等于无状态应用¶
协议层去掉会话,不代表业务不能持有状态。官方推荐的模式与 HTTP API 一致:工具返回一个显式 handle(如 basket_id),模型在后续调用中把它作为普通参数传回。相比隐藏在传输层 metadata 里的会话状态,显式 handle 对模型更透明,也更容易跨工具组合与推理。
路由、缓存与追踪¶
三个配套改动让无状态流量更易运维:
- Header 路由(SEP-2243):Streamable HTTP 传输强制携带
Mcp-Method和Mcp-Name头,负载均衡器和网关无需解析 JSON body 即可路由、限流。 - 可缓存列表(SEP-2549):
tools/list等列表结果携带ttlMs和cacheScope,类似 HTTPCache-Control,客户端可按 TTL 缓存,不必靠长连接 SSE 感知变更。 - W3C Trace Context(SEP-414):在
_meta中标准化traceparent、tracestate、baggage键名,分布式追踪可贯穿 Host → SDK → MCP Server → 下游服务。
多轮交互(MRTR)¶
无状态协议仍需支持服务端中途向客户端索要输入(如确认删除)。Multi Round-Trip Requests(SEP-2322)用 InputRequiredResult 替代长期持有的 SSE 流:服务端返回 inputRequests 和 requestState,客户端收集答案后带着 inputResponses 重发原请求,任意实例都能接续处理。
扩展成为一等公民¶
2025-11-25 版虽有扩展概念,但缺少正式流程。SEP-2133 补齐了扩展治理:扩展以 reverse-DNS ID 标识,通过 capabilities 中的 extensions map 协商,独立版本发布,并有从实验到官方的 Extensions Track。
本版纳入两个官方扩展:
MCP Apps:服务端渲染 UI¶
MCP Apps(SEP-1865)允许 MCP 服务器提供交互式 HTML 界面,由 Host 在沙箱 iframe 中渲染。工具提前声明 UI 模板,Host 可预取、缓存和安全审查。UI 与 Host 之间仍走 JSON-RPC 基础协议,每次用户操作都经过与直接 tool call 相同的审计与授权路径。Claude 已支持 MCP Apps,用户可在对话内直接操作连接器界面,无需切换标签页。
Tasks:长时异步任务¶
Tasks 在 2025-11-25 中以实验性核心功能发布,生产实践暴露出需要围绕无状态模型重新设计,因此升格为独立扩展。新版生命周期:tools/call 可返回 task handle,客户端用 tasks/get、tasks/update、tasks/cancel 驱动;任务创建由服务端决定。tasks/list 被移除——在无会话模型下无法安全限定范围。若你基于旧版实验 Tasks API 开发,需要迁移到新生命周期。
企业级认证加固¶
六个 SEP 强化授权规范,使其更贴近生产环境中的 OAuth 2.0 与 OpenID Connect 部署:
- 客户端须按 RFC 9207 校验授权响应中的
iss参数(SEP-2468),缓解 MCP「单客户端、多服务端」部署模式下的 mix-up 攻击。 - Dynamic Client Registration 时声明 OIDC
application_type(SEP-837),避免桌面/CLI 客户端被错误默认为"web"而拒绝 localhost 回调。 - 注册凭证绑定授权服务器的
issuer,资源迁移时需重新注册(SEP-2352)。 - 补充 refresh token 请求方式(SEP-2207)、step-up 时的 scope 累积(SEP-2350)及
.well-known发现后缀(SEP-2351)。
Claude 侧已提供 Enterprise-Managed Auth:管理员通过 IdP(如 Entra、Okta)一次性授权连接器,用户通过现有 IdP 组继承访问权限,首次登录即零配置接入。
其他重要变更¶
三项核心能力弃用¶
按新特性生命周期策略(SEP-2577),以下能力标记为 Deprecated,至少保留一年后才可能移除:
| 能力 | 替代方案 |
|---|---|
| Roots | 工具参数、资源 URI 或服务端配置 |
| Sampling | 直接对接 LLM 提供商 API |
| Logging | stdio 用 stderr;结构化观测用 OpenTelemetry |
工具 Schema 升级¶
工具 inputSchema / outputSchema 升至完整 JSON Schema 2020-12(SEP-2106),支持 oneOf/anyOf/allOf、条件分支和 $ref。资源缺失的错误码从 MCP 自定义 -32002 改为 JSON-RPC 标准 -32602。
演进治理¶
本次包含破坏性变更,但官方强调这不是常态。正式 12 个月弃用窗口、Extensions 框架、以及 Standards Track SEP 须通过一致性测试套件(SEP-2484)才能 Final——未来修订预期可在不重写传输层的前提下平滑升级。
对开发者的实际影响¶
如果你正在维护 MCP 服务器或客户端,建议按以下顺序排查:
- 传输层:移除对
initialize握手和Mcp-Session-Id的依赖;在请求头加上MCP-Protocol-Version、Mcp-Method、Mcp-Name。 - 有状态逻辑:把跨调用状态改为显式 handle 参数,由模型在 tool call 间传递。
- Tasks 用户:从实验性核心 API 迁移到 Tasks 扩展的新生命周期。
- OAuth 实现:补齐
iss校验、application_type声明和 issuer 绑定。 - SDK 升级:TypeScript、Python、Go、C# 四个 Tier 1 SDK 已支持 2026-07-28,优先升级官方 SDK 再改业务代码。
Claude 产品侧对 2026-07-28 的支持正在逐步 rollout;计划提交连接器到 Claude 目录的开发者,可参照官方 Connectors 文档对齐新规范。
MCP 2026-07-28 把 Agent 互联做成了「像 Web 一样」的基础设施:无状态、可缓存、可路由、可水平扩展。对已经押注 MCP 的团队来说,这次更新不是小修小补,而是生产部署范式的一次切换——但也正是这次切换,让 MCP 从「能跑」走向「能规模化跑」。