MCP协议2026-07-28规范重大更新|升级指南
你部署了一个 MCP 服务器功能都跑通了本地测试也没问题。然后用户量上来发现响应越来越慢偶尔还丢连接。查了半天问题出在会话管理上。旧版 MCP 协议要求每个客户端必须先完成initialize 握手拿到一个Mcp-Session-Id后续所有请求都得带着这个 ID。服务端靠这个 ID 把请求路由到正确的会话状态。听起来没问题但一旦你把服务部署到多个节点麻烦就来了。要么配sticky sessions让同一个用户的请求永远打到同一台机器。要么搭个 Redis 集群把会话状态存到共享存储里。前者浪费资源后者增加运维复杂度和故障点。不是因为你的代码写得差其实是旧的 MCP 协议设计的锅。说实话很多团队都被这个问题坑过。2026 年 7 月 28 日MCP 发布了一次大规模架构重构彻底解决了这个问题。这是 MCP 自诞生以来最大的一次变化值得每个用 MCP 的开发者关注。三个数字感受一下这次更新的分量6 项规范增强提案协同落地。不是修修补补是从底层重新设计了协议的工作方式。4 个官方 SDK同步发布 Beta。Python、TypeScript、Go、C# 都有覆盖主流开发语言。企业托管成本预计降低40% 到 60%。这个数字来自行业测算核心原因就是不再需要 sticky sessions 和共享会话存储。核心变化一无状态化这次更新最根本的变化就一句话MCP 服务器从**「有状态守护进程」变成了「纯函数」**。以前的服务器得记住每个客户端的会话状态请求进来先查 Session ID找到对应的会话上下文再处理。现在不用了每个请求都是完全自描述的协议版本、客户端能力、身份信息全都在请求的 _meta 字段里。用伪代码表示就是(Request, Token) → Response服务器不需要在内存里保存任何会话状态。任何请求可以发到任何实例标准的轮询负载均衡就能搞定。具体长什么样看官方给的 Before and after。旧版协议你得先发一个 initialize 请求建立会话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 } } }服务端返回一个 Mcp-Session-Id后续每个请求都得带着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 } } }新版协议同样的调用变成一个自包含的请求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 } } } }没有 initialize没有 Mcp-Session-Id。任何一台服务器都能处理这个请求。这带来什么好处第一可以直接部署到 Serverless 平台。Cloudflare Workers、AWS Lambda、Vercel Functions 都能跑 MCP 服务器了。以前这些平台根本没法用因为它们不支持长连接和会话状态。第二可以部署到边缘节点。用户请求就近处理延迟更低。第三水平扩展变得 trivial。加机器就行不需要任何额外的会话同步机制。核心变化二MRTR 多轮次请求这是这次更新里最巧妙的设计。旧版协议里如果服务端在处理请求时需要用户输入比如确认操作、提供参数它会通过持久的 SSE 连接反过来向客户端发请求。这要求客户端一直保持连接网络一断整个流程就崩了。新版协议换了个思路。服务端不再**「回调」客户端而是「返回等待」**。具体来说服务端返回一个 InputRequiredResult里面包含需要什么输入还有一个 requestState 令牌。官方示例长这样{resultType:input_required,inputRequests:{confirm:{type:elicitation,message:Delete 3 files?,schema:{type:boolean}}},requestState:eyJzdG...iXX0}客户端收集到用户输入后把输入和令牌一起发回来重新调用同一个工具。服务端拿到令牌就能恢复上下文继续执行。这个设计的好处是什么网络中断不影响长推理链。客户端可以断开连接过一会儿再带着令牌回来继续。状态显式化了。以前状态藏在服务端内存里LLM 看不到。现在状态是一个令牌可以被传递、组合、甚至被 LLM 推理。为跨天、跨 Agent 的复杂流程打下基础。你想想这个场景Agent 需要等用户确认一个操作但用户可能第二天才回复。在旧协议里这几乎不可能实现现在只要保存好令牌就行。核心变化三扩展框架解耦MCP 生态发展很快如果把所有功能都塞进核心协议规范会越来越臃肿。这次更新引入了扩展框架把可选功能从核心协议剥离出去。两个官方扩展已经发布。MCP Apps允许服务器向客户端返回可交互的 HTML 界面组件。数据看板、交互表单、可视化图表都能直接在宿主应用的沙盒 iframe 里渲染。MCP Tasks把长运行任务标准化了。客户端发起调用后拿到一个任务句柄可以轮询状态、补充输入、或者取消任务。扩展用反向 DNS 标识比如 io.modelcontextprotocol/apps独立版本迭代。核心协议保持稳定UI 和任务逻辑可以快速演进。开发者需要做什么如果你在用 Python SDK升级到 v2.0.0b1。安装时要指定精确版本pipinstallmcp[cli]2.0.0rc1不指定版本号会装到最新的 v1.x因为 pip 默认不装预发布版本。v2 的主要变化FastMCP改名成了MCPServer所有字段改成 snake_caseHTTP 客户端从 httpx 换成了 httpx2。如果你用装饰器写工具基本就是改个类名的事。TypeScript SDK 变化更大拆分成了 server 和 client 两个包只支持 ESM 模块。官方提供了 codemod 脚本自动迁移。Go 和 C# 的 SDK 变化相对平滑。Go 需要显式开启 Stateless 模式C# 默认就是无状态旧 API 标记了 Obsolete。旧版协议里有几个功能正式进入废弃期。Roots改用工具参数传递目录路径Sampling改为直接调用模型 APILogging改用 OpenTelemetry。这些功能还有12 个月的过渡期不会突然不能用。实际收益部署成本下降是最直接的。不需要 sticky sessions不需要 Redis 集群标准的负载均衡器就行。如果你用 Serverless按需付费空闲时几乎不花钱。LLM 的推理成本也可能下降。新规范要求工具列表确定性排序加上客户端缓存机制LLM 端的 Prompt Cache 命中率会提升。缓存命中意味着更少的 Token 解析更快的响应更低的账单。可观测性也改善了。新规范标准化了 W3C Trace Context跨服务的请求可以端到端追踪。Python SDK v2 内置了 OpenTelemetry 支持一行 logfire.configure() 就能看到完整的调用链路。行动建议如果你在开发新的 MCP 服务器直接用 SDK Beta 开发避免基于即将废弃的旧架构产生技术债务。如果你有生产环境的 MCP 服务重点检查负载均衡配置移除针对 Mcp-Session-Id 的 sticky 路由逻辑。Python SDK 的 streamable_http_app() 可以同时响应新旧协议过渡期不用担心兼容性问题。如果你在开发客户端或 Agent 框架重点测试 MRTR 模式下的重试逻辑。这是新协议里最重要的交互模式变化。MCP 从**「能用」进入「好用」**阶段。无状态化不是削弱是解放。协议变简单了开发者能做的事情反而更多了。参考来源The 2026-07-28 SpecificationThe 2026-07-28 MCP Specification Release CandidateBeta SDKs for the 2026-07-28 MCP Spec Release Candidate Are Here

相关新闻

终极招聘时间管理神器:Boss Show Time插件让招聘信息时效一目了然

终极招聘时间管理神器:Boss Show Time插件让招聘信息时效一目了然

终极招聘时间管理神器:Boss Show Time插件让招聘信息时效一目了然 【免费下载链接】boss-show-time 展示boss直聘岗位的发布时间 项目地址: https://gitcode.com/GitHub_Trending/bo/boss-show-time 在当今竞争激烈的求职市场中,时间就是机会。Bo…

2026/11/11 18:41:26 阅读更多 →
# 90%的人都在用AI写代码了,但最值钱的能力根本不是写代码

# 90%的人都在用AI写代码了,但最值钱的能力根本不是写代码

当所有人都能生成代码的时候,真正的壁垒变成了"知道该生成什么"和"知道不该生成什么"。先列几个你可能已经听说过的数字。 Spotify的工程师99%每周都在用AI编程工具,94%的人明确表示效率更高。Shopify的River Agent在30天里协同产生…

2026/11/12 3:51:31 阅读更多 →
Flutter 项目一键打包多个渠道包的实现

Flutter 项目一键打包多个渠道包的实现

前言在移动开发中,通常需要对应用进行不同渠道的打包,以满足多平台推广需求。本文将介绍如何通过一键打包脚本,实现 Flutter 项目多渠道打包,并生成指定的渠道 APK 文件。效果图:实现步骤1. 定义渠道索引和名称首先在代…

2026/11/4 12:37:09 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/12 5:00:00 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/12 5:13:20 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/12 5:13:20 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/12 5:13:20 阅读更多 →

日新闻

周新闻

月新闻