MCP 2026-07-28 Release Candidate:协议层正式无状态化,Agent 后端跑上普通 HTTP 基础设施

MCP 团队日前释出 2026-07-28 规范 Release Candidate,把 Model Context Protocol 在协议层全面转向无状态——这是 MCP 自 2024 年发布以来最大一次破坏性升级。 三项关键改动:Mcp-Session-Id 头部与协议层 session 移除(SEP-2567)、initialize/initialized 握手废弃(SEP-2575)、服务端不再被强制维持 SSE 长连接。多轮请求被重写成"InputRequiredResult + requestState"——服务端需要补充输入时返回结构化结果,客户端把答案和回显的 requestState 塞回原请求,任意实例都能接住重试。 工程友好改动同样关键。Mcp-Method、Mcp-Name 两个新头让负载均衡、网关、限流器不再解析 body 就能按操作路由;tools/list、resources/read 结果带上 ttlMs 与 cacheScope,沿用 HTTP Cache-Control 语义;W3C Trace Context 键名(traceparent、tracestate、baggage)在 _meta 中写死,分布式追踪能跨 SDK、网关、Downstream 服务保持单一 span tree。 Extension 体系正式成型。SEP-2133 给 extension 分配 reverse-DNS ID,独立的 ext-* 仓库、独立发版、独立维护者。本版 RC 把两个 extension 升为官方:MCP Apps(SEP-1865)允许服务端在沙箱 iframe 中渲染交互式 HTML 界面;Tasks(PR #2663)把 2025-11-25 实验性能力按无状态模型重做,工具调用返回 task handle,客户端用 tasks/get、tasks/update、tasks/cancel 驱动。Authorization 侧六个 SEP 与 OAuth 2.0 / OpenID Connect 对齐。 最值得玩味的是"无状态协议、有状态应用"的取舍。MCP 不再替你管理 session,但允许服务端在 tool 调用中显式 mint basket_id、browser_id 这类 handle,再让模型当作普通参数回传。团队披露的实践表明,"模型在多步调用之间串 handle"比隐藏在传输元数据里的 session 更强——模型可以跨工具组合、推理、交 handle。MCP 把状态从协议层下放给模型,让 Agent 真正看见自己手里有什么。 破坏性变更需要尽快迁移。最终规范 7 月 28 日发布,跑生产 MCP 的团队应优先评估客户端兼容性与 Tasks API 迁移路径。