MCP 最大版本更新:无状态核心、官方扩展与企业级认证

前言

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 对模型更透明,也更容易跨工具组合与推理。

路由、缓存与追踪

三个配套改动让无状态流量更易运维:

  1. Header 路由(SEP-2243):Streamable HTTP 传输强制携带 Mcp-MethodMcp-Name 头,负载均衡器和网关无需解析 JSON body 即可路由、限流。
  2. 可缓存列表(SEP-2549):tools/list 等列表结果携带 ttlMscacheScope,类似 HTTP Cache-Control,客户端可按 TTL 缓存,不必靠长连接 SSE 感知变更。
  3. W3C Trace Context(SEP-414):在 _meta 中标准化 traceparenttracestatebaggage 键名,分布式追踪可贯穿 Host → SDK → MCP Server → 下游服务。

多轮交互(MRTR)

无状态协议仍需支持服务端中途向客户端索要输入(如确认删除)。Multi Round-Trip Requests(SEP-2322)用 InputRequiredResult 替代长期持有的 SSE 流:服务端返回 inputRequestsrequestState,客户端收集答案后带着 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/gettasks/updatetasks/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 服务器或客户端,建议按以下顺序排查:

  1. 传输层:移除对 initialize 握手和 Mcp-Session-Id 的依赖;在请求头加上 MCP-Protocol-VersionMcp-MethodMcp-Name
  2. 有状态逻辑:把跨调用状态改为显式 handle 参数,由模型在 tool call 间传递。
  3. Tasks 用户:从实验性核心 API 迁移到 Tasks 扩展的新生命周期。
  4. OAuth 实现:补齐 iss 校验、application_type 声明和 issuer 绑定。
  5. 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 从「能跑」走向「能规模化跑」。

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

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

小夜