<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>协议 on AI博士 万戈</title>
        <link>https://www.yesmiracle.net/tags/%E5%8D%8F%E8%AE%AE/</link>
        <description>AI博士万戈的技术博客，聚焦 Agentic AI、AI Infra 与 Agent Security，分享 AI 基础设施与工程落地实践。</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <managingEditor>admin@yesmiracle.net (万戈)</managingEditor>
        <webMaster>admin@yesmiracle.net (万戈)</webMaster>
        <lastBuildDate>Wed, 29 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.yesmiracle.net/tags/%E5%8D%8F%E8%AE%AE/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>MCP 变天了！无状态协议核心、Multi Round-Trip Requests、正式扩展框架，七月 28 日规格更新深度解读！</title>
        <link>https://www.yesmiracle.net/post/20260729-mcp-stateless-spec-2026/</link>
        <pubDate>Wed, 29 Jul 2026 00:00:00 +0000</pubDate>
        <author>admin@yesmiracle.net (万戈)</author>
        <guid>https://www.yesmiracle.net/post/20260729-mcp-stateless-spec-2026/</guid>
        <description>&lt;img src="https://www.yesmiracle.net/post/20260729-mcp-stateless-spec-2026/cover.svg" alt="Featured image of post MCP 变天了！无状态协议核心、Multi Round-Trip Requests、正式扩展框架，七月 28 日规格更新深度解读！" /&gt;&lt;p&gt;昨天（7 月 28 日），MCP 发布了其历史上最大的一次规格更新——&lt;strong&gt;2026-07-28&lt;/strong&gt;。如果你在用 MCP 搭建 Agent 基础设施，这篇文章值得你放下手头的工作看完。&lt;/p&gt;
&lt;p&gt;如果说之前的 MCP 还是一个「实验性协议」，那这次更新就是它&lt;strong&gt;正式成年&lt;/strong&gt;的标志。&lt;/p&gt;
&lt;h2 id=&#34;半年狂奔从实验到工业标准&#34;&gt;半年狂奔：从实验到工业标准&lt;/h2&gt;
&lt;p&gt;先看一组数据：MCP 的 Tier 1 SDK（TypeScript、Python、Go、C#）月下载量已接近 &lt;strong&gt;5 亿次&lt;/strong&gt;，TypeScript 和 Python SDK 各自突破了 &lt;strong&gt;10 亿总下载量&lt;/strong&gt;。这距离 MCP 发布还不到两年。&lt;/p&gt;
&lt;p&gt;但增长越猛，痛点越痛。开发者们反馈最集中的问题是什么？&lt;strong&gt;有状态协议带来的伸缩性瓶颈&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;MCP 最初设计为双向有状态流协议——每个连接需要 initialize/initialized 握手、维护 Mcp-Session-Id、保持长连接。这在单机场景下没问题，但一上生产、一挂负载均衡，立刻暴露问题：session 黏滞、负载不均、故障恢复复杂。你不能简单地往一个 round-robin 后端加一台新机器，因为 session 状态不共享。&lt;/p&gt;
&lt;h2 id=&#34;核心变革从有状态到无状态&#34;&gt;核心变革：从有状态到无状态&lt;/h2&gt;
&lt;p&gt;这次更新最核心的变更就是——&lt;strong&gt;MCP 彻底变为无状态请求/响应协议&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id=&#34;告别握手和-session&#34;&gt;告别握手和 Session&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;initialize&lt;/code&gt;/&lt;code&gt;initialized&lt;/code&gt; 握手取消了，&lt;code&gt;Mcp-Session-Id&lt;/code&gt; 头取消了。每个请求自带协议版本、客户端标识和能力声明（通过 &lt;code&gt;_meta&lt;/code&gt; 参数），可以独立处理。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;POST /mcp HTTP/1.1
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: search

{&amp;#34;jsonrpc&amp;#34;:&amp;#34;2.0&amp;#34;,&amp;#34;id&amp;#34;:1,&amp;#34;method&amp;#34;:&amp;#34;tools/call&amp;#34;,
 &amp;#34;params&amp;#34;:{&amp;#34;name&amp;#34;:&amp;#34;search&amp;#34;,&amp;#34;arguments&amp;#34;:{&amp;#34;q&amp;#34;:&amp;#34;otters&amp;#34;},
 &amp;#34;_meta&amp;#34;:{&amp;#34;io.modelcontextprotocol/clientInfo&amp;#34;:{&amp;#34;name&amp;#34;:&amp;#34;my-app&amp;#34;,&amp;#34;version&amp;#34;:&amp;#34;1.0&amp;#34;}}}}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这意味着什么？&lt;strong&gt;任何请求可以落在任何后端实例上&lt;/strong&gt;，不需要 session 黏滞、不需要共享存储、不需要分布式 session 同步。一个普通的 round-robin 负载均衡器就够了。&lt;/p&gt;
&lt;p&gt;如果客户端想提前了解服务端能力，可以通过新的 &lt;code&gt;server/discover&lt;/code&gt; RPC 可选查询——不是必须的。&lt;/p&gt;
&lt;h3 id=&#34;那业务状态怎么处理&#34;&gt;那业务状态怎么处理？&lt;/h3&gt;
&lt;p&gt;MCP 团队想得很清楚：去掉协议级 session 不代表你的应用也得无状态。如果你需要跨调用保持状态，&lt;strong&gt;从工具显式返回一个 handle，让模型作为参数传回来&lt;/strong&gt;。模型能「看到」这个 handle 并在工具之间传递，这比把 session 状态藏在传输层里好得多——透明、可观测、可调试。&lt;/p&gt;
&lt;h3 id=&#34;multi-round-trip-requestsmrtr&#34;&gt;Multi Round-Trip Requests（MRTR）&lt;/h3&gt;
&lt;p&gt;这是另一个重大变更。之前 MCP 用双向流来处理服务端发起的请求（如 &lt;code&gt;elicitation/create&lt;/code&gt;、&lt;code&gt;sampling/createMessage&lt;/code&gt;、&lt;code&gt;roots/list&lt;/code&gt;），现在全部改为 MRTR。&lt;/p&gt;
&lt;p&gt;场景：工具调用到一半，需要用户确认或补充参数。传统做法是保持连接等用户回复。MRTR 的做法是：服务端返回 &lt;code&gt;resultType: &amp;quot;input_required&amp;quot;&lt;/code&gt;，附带需要回答的请求列表；客户端带着答案重试原始调用。&lt;/p&gt;
&lt;p&gt;这听起来像多了一步，但好处是&lt;strong&gt;不需要保持长连接&lt;/strong&gt;，完全适配无状态架构。&lt;/p&gt;
&lt;h3 id=&#34;header-based-routing&#34;&gt;Header-based Routing&lt;/h3&gt;
&lt;p&gt;Streamable HTTP 请求现在必须带 &lt;code&gt;Mcp-Method&lt;/code&gt; 和 &lt;code&gt;Mcp-Name&lt;/code&gt; 头。你的网关、限流器、WAF 可以直接在这些头上做路由和计费，&lt;strong&gt;不需要解析 JSON body&lt;/strong&gt;。性能提升对生产环境非常显著。&lt;/p&gt;
&lt;h3 id=&#34;列表结果可缓存&#34;&gt;列表结果可缓存&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;tools/list&lt;/code&gt;、&lt;code&gt;prompts/list&lt;/code&gt;、&lt;code&gt;resources/list&lt;/code&gt;、&lt;code&gt;resources/read&lt;/code&gt; 的响应现在携带 &lt;code&gt;ttlMs&lt;/code&gt; 和 &lt;code&gt;cacheScope&lt;/code&gt;。客户端可以据此决定缓存策略，&lt;strong&gt;减少不必要的重请求&lt;/strong&gt;。这对工具目录特别有用——工具列表不会频繁变化，每次请求都重新拉一遍是浪费。&lt;/p&gt;
&lt;h3 id=&#34;授权加固&#34;&gt;授权加固&lt;/h3&gt;
&lt;p&gt;这是很多人忽略但实际最痛的部分。MCP 团队从过去一年的生态反馈中总结了几项关键加固：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;RFC 9207 &lt;code&gt;iss&lt;/code&gt; 参数验证&lt;/strong&gt;：授权服务器必须返回 &lt;code&gt;iss&lt;/code&gt;，客户端必须验证——防止授权服务器混淆攻击&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Client ID Metadata Documents（CIMD）&lt;/strong&gt;：正式取代 Dynamic Client Registration（DCR），使协议符合 OAuth 规范要求&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;客户端凭证绑定到签发者&lt;/strong&gt;：不能跨授权服务器重用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DCR 正式弃用&lt;/strong&gt;：但兼容期至少 12 个月&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;tasks-扩展&#34;&gt;Tasks 扩展&lt;/h3&gt;
&lt;p&gt;Tasks 从实验性核心移入 &lt;code&gt;io.modelcontextprotocol/tasks&lt;/code&gt; 扩展，引入 &lt;code&gt;tasks/update&lt;/code&gt; 和基于 subscription 的变更通知。这是 AWS 贡献的扩展，支持可靠的长时运行 Agent。&lt;/p&gt;
&lt;h3 id=&#34;弃用清单&#34;&gt;弃用清单&lt;/h3&gt;
&lt;p&gt;以下功能被正式弃用（12 个月兼容期）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Roots&lt;/strong&gt;（已弃用）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sampling&lt;/strong&gt;（已弃用）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Logging&lt;/strong&gt;（已弃用）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTTP+SSE 传输&lt;/strong&gt;（已弃用）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;新实现不要采用这些功能。&lt;/p&gt;
&lt;h2 id=&#34;生态支持全栈共识&#34;&gt;生态支持：全栈共识&lt;/h2&gt;
&lt;p&gt;这次更新获得了 AWS、Cloudflare、Google Cloud、Microsoft Foundry、Netlify、Figma、Honeycomb、Manufact 等全线生态伙伴的公开支持。&lt;/p&gt;
&lt;p&gt;几个值得关注的表态：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;AWS&lt;/strong&gt;（Swami Sivasubramanian，Agentic AI VP）：MCP 新规格已在 Amazon Bedrock AgentCore 中可用，Tasks 扩展由 AWS 贡献&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloudflare&lt;/strong&gt;（Brendan Irvine-Broque）：Agents SDK 从 day zero 支持新规格，Sentry 和 Linear 同日可用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Microsoft Foundry&lt;/strong&gt;（Tina Schuchman）：利用 MCP 将集成从几十个扩展到数千个，无状态操作让生产级 Agent 系统更安全、可扩展&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Google Cloud&lt;/strong&gt;（Anna Berenberg，Engineering Fellow）：承诺在 Google Cloud 开发者工具生态中充分利用新能力&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这种级别的生态共识说明：&lt;strong&gt;MCP 已经不是某个公司的实验，而是行业基础设施的共识选择&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id=&#34;sdk-更新&#34;&gt;SDK 更新&lt;/h2&gt;
&lt;p&gt;四个 Tier 1 SDK（TypeScript、Python、Go、C#）全部同步更新。Rust SDK 以 beta 版本支持新规格。Manufact 的 CTO 透露一个有趣的数字：新 SDK v2 将包体积缩小了 &lt;strong&gt;83%&lt;/strong&gt;，速度提升 &lt;strong&gt;25%&lt;/strong&gt;，得益于客户端-服务端分离。&lt;/p&gt;
&lt;h2 id=&#34;对生产者的影响&#34;&gt;对生产者的影响&lt;/h2&gt;
&lt;p&gt;如果你是 MCP 服务端开发者，这次更新意味着：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;部署更简单&lt;/strong&gt;：不需要 session 管理、不需要黏滞会话、不需要共享存储。随便一个负载均衡器就行&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可扩展性飞跃&lt;/strong&gt;：任何请求可以落在任何实例上，水平扩展不再是问题&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;网关友好&lt;/strong&gt;：Header-based routing 让 WAF、限流、路由、计费都可以在 HTTP 层完成&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缓存策略提升&lt;/strong&gt;：工具目录、资源列表等低频变化数据可以直接缓存&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;授权规范&lt;/strong&gt;：OAuth 合规，不再需要自己写认证胶水代码&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;迁移成本是有的——特别是如果你的代码依赖了 session 标识符。但 12 个月的兼容期窗口给了充足的缓冲时间。&lt;/p&gt;
&lt;h2 id=&#34;写在最后&#34;&gt;写在最后&lt;/h2&gt;
&lt;p&gt;MCP 18 个月前还是 Anhtropic 的一个实验性项目，今天已经成长为 Agent 基础设施的事实标准——月下载量 5 亿次、4 个官方 SDK、全线云厂商支持、从有状态到无状态的架构蜕变。&lt;/p&gt;
&lt;p&gt;这次更新最让我感慨的不是技术细节本身，而是&lt;strong&gt;一个开源协议能在大规模反馈下完成如此重大的架构转折&lt;/strong&gt;。从 stateful 到 stateless 不是小改动，它意味着重写核心、弃用旧 API、推动全生态迁移。MCP 团队选择了做「难而正确的事」。&lt;/p&gt;
&lt;p&gt;这让我想起 HTTP 协议从 1.0 到 1.1 的演进，也想起 REST 取代 SOAP 的历程。&lt;strong&gt;优秀的协议总是在使用中不断完善&lt;/strong&gt;，而不是在象牙塔里设计完美再发布。&lt;/p&gt;
&lt;p&gt;对于正在搭建 Agent 基础设施的团队，现在就是认真考虑迁移到 2026-07-28 规格的最佳时机。无状态 MCP 的生产部署体验，比有状态版本好太多了。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;相关阅读：&lt;a class=&#34;link&#34; href=&#34;https://www.yesmiracle.net/post/20260727-mcp-protocol-security-model/&#34; &gt;《MCP 协议安全模型剖析：从 STDIO 到 Tool 的四层防御体系》&lt;/a&gt;、&lt;a class=&#34;link&#34; href=&#34;https://www.yesmiracle.net/post/20260726-agent-to-agent-protocol-guide/&#34; &gt;《Agents 互联！A2A/MCP/ANP/ACP 四大协议详解》&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
