MCP v2 正式定稿!协议史上最大更新:无状态化、扩展框架、企业级安全全面升级

📅 2026/7/31 16:24:18
MCP v2 正式定稿!协议史上最大更新:无状态化、扩展框架、企业级安全全面升级
协议版本: 2026-07-28 (Final)月度 SDK 下载量: 4 亿 |服务器总数: 13,8702026 年 7 月 28 日MCPModel Context Protocolv2 规范正式定稿。这是自 2024 年 11 月发布以来规模最大的一次修订——核心架构从有状态、会话绑定全面转向无状态、请求自包含的分布式友好模型。这意味着什么简单说你可以像部署普通微服务一样部署 MCP 服务器了。一、先看个全景MCP v2 的关键变化可以概括为“一删、三弃、两扩、一升”变化内容一删删掉initialize握手和Mcp-Session-Id协议变无状态️三弃Sampling、Roots、Logging 功能标记弃用12 个月宽限期两扩MCP Apps交互式 UI Tasks异步任务作为正式扩展一升OAuth 2.1 OIDC 强制企业托管授权EMA稳定版发布二、最核心的变革无状态化以前的问题v1 中每个 MCP 连接都要走一个initialize握手拿回一个Mcp-Session-Id后续请求都要带着这个 ID。这就意味着客户端被钉死在某一个服务器实例上**想水平扩展**得用粘性会话或共享 Redis 存会话**Kubernetes 部署**Ingress 规则要写解析 session ID 的 hack**Lambda/Cloudflare Workers**基本没法好好跑v2 怎么改的删掉握手每请求自包含。每个 JSON-RPC 请求通过_meta字段携带协议版本、客户端身份和能力信息。任何服务器实例都可以处理任何请求。v1有状态POST /mcp → 返回 Mcp-Session-Id xxx GET /mcp?idxxx → SSE 流长连接 POST /mcp?idxxx → 发请求v2无状态POST /mcp Headers: MCP-Protocol-Version: 2026-07-28 Mcp-Method: tools/call Body: { _meta: { clientInfo, capabilities }, params: {} }运维上带来什么好处负载均衡简单的轮询即可粘性会话拜拜K8s ServicesessionAffinity: ClientIP→sessionAffinity: None部署策略标准滚动更新无需优雅排空会话网关路由直接基于Mcp-Method头部路由无服务器架构AWS Lambda、Vercel、Cloudflare Workers 天然支持如果还需要跨调用保存状态怎么办用显式句柄模式——工具调用返回一个basket_id后续调用把它当参数传回来。状态以数据形式存在比藏在连接里更清爽。三、新增协议特性多轮次请求MRTR工具可以在执行过程中返回InputRequiredResult来询问用户客户端拿到回答后重试请求。解决了之前需要持久通道才能做用户确认的问题。可路由传输头新增两个标准 HTTP 头Mcp-Method标识调用的是哪个 RPC 方法tools/call、tools/list等Mcp-Name调用命名资源时携带名称网关和限流器无需解析 JSON 请求体就能做路由、计费和限流。响应缓存tools/list、resources/list等列表响应现在返回ttlMs多久算新鲜和cacheScope共享范围。工具清单变化不频繁的服务器设置一个较大的ttlMs可以省掉每次 agent 轮次的重复查询。标准错误码MCP 自定义错误码-32002资源不存在迁移为 JSON-RPC 标准-32602。四、哪些功能被弃用了v2 引入正式弃用政策SEP-2596标记弃用后至少保持可用 12 个月最早移除日期是2027-07-28。功能弃用原因替代方案Sampling服务器回调客户端 LLM依赖持久连接服务器直接调用 LLM APIAnthropic、OpenAI 等Roots会话级文件系统范围声明工具参数传递或服务器配置Logging协议级日志绑定活动连接不适用无状态stderr / OpenTelemetryHTTPSSE 传输双端点持久流设计Streamable HTTP动态客户端注册安全性不足显式 OAuth 注册 / CIMD⚠️Sampling 是迁移工作量最大的——它改变了模型调用发生的位置从客户端移到服务器端。如果你的服务器用到了 Sampling建议尽早规划。五、扩展框架MCP 的插槽v2 正式把扩展提升为一等公民使用反向 DNS 标识符和独立版本号。两个官方扩展随 v2 发布MCP Apps服务器可以返回交互式 HTML 界面在客户端的沙箱化 iframe 中渲染通过postMessage双向通信。支持 Cluade、Goose、VS Code Insiders、ChatGPT。想象一下一个数据库查询工具返回的不是纯文本结果而是可以直接在聊天界面里操作的交互式表格。Tasks任务处理耗时操作的标准异步模式。服务器返回taskId客户端轮询状态支持暂停等待输入和取消操作。taskId可跨连接存活——断线重连后还能继续查询。适用场景CI/CD 流水线触发、大数据分析、长时间策略扫描等。六、授权体系全面升级OAuth 2.1 OIDC 强制v2 要求支持最新的 OAuth 2.1 和 OpenID Connect 标准包括强制 RFC 9207 发行者验证动态客户端注册废弃转向更安全的显式注册阶梯式权限提升中的作用域累积企业托管授权EMA2026-06-18 发布稳定版。解决了企业部署 MCP 最大的痛点——每个员工都要手动授权每个服务器。工作原理管理员在 Okta 等身份提供商处配置一次用户在 SSO 登录时自动完成授权无需逐个点击同意。早期采用者身份提供商Okta客户端Anthropic Cluade、VS Code服务端Asana、Atlassian、Canva、Figma、Linear、Supabase七、四大 SDK 变更一览SDKv2 版本最大变化Pythonmcp2.0.0b1FastMCP→MCPServer默认兼容新旧协议TypeScriptmodelcontextprotocol/server/client包拆分废弃modelcontextprotocol/sdkESM 强制Gov1.7.0-pre.1温和升级同模块路径API 基本不变C#2.0.0-preview.1HTTP 传输默认无状态模式TypeScript 用户特别注意v2 不是改版本号就能升级的——它换包名了modelcontextprotocol/sdk→modelcontextprotocol/server和modelcontextprotocol/client。官方提供了 codemod 工具npx modelcontextprotocol/codemodbeta v1-to-v2.八、不慌现有服务不会停官方明确承诺场景兼容性v1 服务器 v1 客户端✅ 完全正常v1 服务器 v2 客户端✅ v2 客户端自动回退到initialize握手v2 服务器 v1 客户端✅ v2 服务器同时响应新旧协议v2 服务器 v2 客户端✅ 无状态模式弃用功能也有12 个月宽限期不会突然不能用。但建议现在就做三件事审计——你的服务器依赖会话状态吗用了 Sampling/Roots/Logging 吗原型——拉一个分支用 Beta SDK 试一试规划——先在非关键服务器上升级逐步推进九、关键时间线回顾时间事件2024-11-25MCP v1 初始规范发布2025-12-09MCP 捐赠给 Linux FoundationAAIF2026-01-26MCP Apps 扩展正式发布2026-05-21v2 版本候选RC锁定2026-06-18企业托管授权EMA稳定版2026-06-29四个 Tier 1 SDK Beta 齐发2026-07-28v2 规范正式定稿2027-07-28弃用特性最早移除日期十、资源与参考MCP 官方网站modelcontextprotocol.io规范仓库github.com/modelcontextprotocol/modelcontextprotocol官方博客blog.modelcontextprotocol.io变更日志spec changelogPython SDK 文档py.sdk.modelcontextprotocol.ioTypeScript SDK 文档ts.sdk.modelcontextprotocol.ioMCP 正在从一个面向单应用的本地协议进化为支撑大规模分布式 AI Agent 基础设施的开放标准。v2 定稿不是终点而是起点。这个生态值得每一个做 AI 基建的人持续关注。