协议关键元素调整
Model Context Protocol(MCP)将推出自诞生以来最激进的一次更新,RC从5月21日锁定,经10周SDK验证和社区反馈,最终版规范于7月28日定稿。此次更新由六个SEP协同完成,目标是干掉协议层的状态,MCP变无状态了。下面来看看更新重点:
移除 `Mcp - Session - Id` 头,请求无需路由到同一服务器实例,负载均衡器无需sticky session,也无共享session store,请求可落于任何实例,与HTTP设计哲学对齐。删掉 `initialize` / `initialized` 握手流程,协议版本等信息通过 `_meta` 字段传递,服务器每次请求都需自行校验。跨调用状态显式化,服务器返回不透明handle,模型后续主动传回,让模型自己管理状态。约束服务器到客户端的请求,服务器只能在处理客户端请求时发起反向请求,结果带 `requestState` token返回,客户端重试时带上 `inputResponses`,任何实例可承接重试。
新增请求头与扩展升级
新增 `Mcp - Method` 和 `Mcp - Name` 两个强制请求头,网关和负载均衡器无需解析请求body就能做路由决策,利好企业部署。扩展成为一等公民,用反向DNS标识,经 `extensions` 能力映射协商,由独立的Extensions Track管理生命周期,社区创新可独立于核心规范演进和版本化。
MCP Apps(SEP - 1865)方面,服务器可在沙箱化iframe中提供HTML UI,工具预先声明UI模板支持预加载和缓存,UI与宿主通信走JSON - RPC协议,审计和授权路径与直接工具调用一致。Tasks从实验性核心功能毕业到扩展(SEP - 2663),改为轮询模式,任务创建由服务端决策,`tasks/list` 因缺乏session无法安全限定范围被移除。
认证与Schema改进
认证方面,六个SEP将OAuth 2.1安全实践写入规范正文,客户端需验证 `iss` 参数防攻击,支持动态客户端注册等,剔除旧式密码授权和隐式授权。Schema支持升级,`inputSchema` 和 `outputSchema` 完整支持JSON Schema 2020 - 12,输入schema根节点约束为 `type: "object"`,输出schema不受限制,规范要求不自动解引用外部 `$ref` URI,限制schema深度和校验时间。
原语淘汰与硬断裂生效
Roots、Sampling、Logging三个原语进入12个月倒计时,Roots用工具参数或资源URI替代,Sampling直接调LLM API,Logging用stderr或OpenTelemetry。协议引入特性淘汰策略,每个阶段至少12个月,SEP到Final级别需有合规测试用例。三个硬断裂今日生效,`Mcp - Session - Id` 头移除,传输层相关配置删除,信息改从 `_meta` 读取;`initialize` / `initialized` 握手流程取消,能力校验逻辑移至工具调用入口;错误码改变,资源未找到错误码从MCP自定义 `-32002` 改为JSON - RPC标准 `-32602`。
安全审计与更新评价
Akamai安全研究团队审计显示,无状态化消灭了协议层session劫持等问题,但带来五个新攻击面,包括跨agent工作流劫持、`_meta` 对象注入、头部与body反序列化冲突、MCP Apps中的存储型XSS、一击脱离DoS。MCP此次更新方向正确,去掉session包袱,水平扩展回归纯HTTP玩法,利于企业级部署。显式handle模式让模型自行管理状态,对调试和审计友好。短期阵痛在迁移,依赖MCP session机制的服务需重写状态管理逻辑,不依赖的简单工具服务基本不受影响,12个月弃用窗口充足,但不知有多少人会拖延。