模型上下文协议(MCP)在2026年7月28日发布了2026-07-28修订版,这是该协议自推出以来最大的一次变更。会话机制被移除,初始化握手被移除,服务器完全不能再主动发起请求。如果你运行着一个MCP服务器,首先需要知道的是:今天不会自动出问题。使用旧修订版的服务器与使用旧修订版的客户端之间仍然可以继续工作,Anthropic表示支持正在Claude产品中逐步推出,但没有公布正式可用时间,也没有给出各产品的具体日期。
断裂发生在客户端升级之后
真正的断裂发生在客户端在你不知情的情况下完成升级。一旦发生,这种断裂在两个方向上都是彻底的:现代客户端无法与旧版服务器通信,而旧版客户端也没有任何机制能够向前兼容现代服务器。此次修订还移除了多项能力,包括ping、logging/setLevel、SSE流恢复、resources/subscribe、resources/unsubscribe、tasks/list和tasks/result。Roots、sampling、logging和动态客户端注册被标记为弃用,并启动了十二个月的倒计时。
一项决策与七个后果
这次修订共交付了八项内容,但把它们理解为“一项决策加七个后果”比理解为八个独立特性更容易。所有变化都追溯到一项决策:SEP-2575和SEP-2567共同使协议变为无状态。没有握手,也没有会话标识符。每个请求都在_meta中携带自己的协议版本和客户端能力,新的server/discover方法取代了以前在连接时进行的能力交换。服务器必须实现server/discover;客户端可以完全跳过它,改为处理错误。
后续变化都由此而来。由于服务器不再能保持连接打开,它们也就不能再主动发起请求,因此多轮往返请求(SEP-2322)取代了sampling/createMessage、elicitation/create和roots/list,采用一种模式:服务器返回resultType: "input_required",客户端重新发送原始调用并附上答案。由于操作不能再从会话中推断,它被移入HTTP头,因此Mcp-Method和Mcp-Name(SEP-2243)现在是必需的,负载均衡器无需解析请求体就能据此路由。由于列表结果不再随连接变化,它们变得可缓存,因此ttlMs和cacheScope(SEP-2549)现在是六种结果类型上的非可选字段。
授权收紧与任务扩展化
还有四项变化结构上不那么根本,但值得了解。授权在六个SEP中收紧,客户端侧现在强制要求RFC 9207签发者验证,动态客户端注册被正式弃用,取而代之的是客户端ID元数据文档。任务功能从核心协议中移出,成为一个可选扩展(SEP-2663)。
升级过程中你会遇到的每一个错误以及对应的修复方法,都列在完整差异中。还有一个截止日期需要特别注意:规范文档和发布博客给出的答案不同,这一点很重要,因为大多数人读的是博客。
热门跟贴