# MCP 协议 v5 发布：转向无状态架构

- 来源：宝玉 (@dotey)
- 发布时间：2026-07-29 06:42
- AIHOT 分数：48
- AIHOT 链接：https://aihot.virxact.com/items/cms597dxp00gzro7c6exmjy9b
- 原文链接：https://x.com/dotey/status/2082235315675144569

## AI 摘要

MCP 协议发布第五个大版本（2026-07-28），核心变化是从有状态双向协议改为无状态请求/响应协议，每个请求独立携带协议版本和客户端信息，可负载到任意实例，支持 serverless、边缘计算等部署方式。

## 正文

MCP 协议今天推出了第五个大版本（版本号 2026-07-28），核心变化：从有状态双向协议变成了无状态的请求/响应协议。

这是 MCP 社区呼声最高的改动。

之前的 MCP 客户端连上来要先握手，服务端要给你一个会话 ID（session ID），后续每次请求都得带着这个 ID。这意味着你的请求被限制在了某一台服务器实例上，不方便做负载均衡。

现在每个请求都是独立的，自带协议版本和客户端信息，可以负载到任何一个实例上。也就是说 MCP 服务器终于可以像普通 HTTP 服务一样部署了，serverless、边缘计算、或者 CDN 后面放一排实例。

那如果业务确实需要跨请求的状态呢？协议的建议是：由工具自己生成一个句柄（handle），让模型在工具调用之间传递。状态放在业务层而不是协议层，模型能看到这个句柄，也能理解要怎么用它。

【其他变化】

MRTR（多轮往返请求）解决中途需要用户输入确认的问题。

比如 Supabase 的 MCP 服务器想在创建项目前告诉你费用，或者在执行删除操作前让你确认。以前这需要维持一个双向流不断开，现在服务端返回"需要输入"状态，客户端带上用户的回答重新发请求即可。

请求头里新增了 Mcp-Method 和 Mcp-Name 两个字段，网关和防火墙可以直接根据请求头做路由和鉴权，不用解析 JSON 请求体。

授权方面做了几项加固，包括要求验证授权服务器的 issuer 参数（堵上了一个授权服务器混淆漏洞）。动态客户端注册（DCR）正式废弃，改用客户端元数据文档（CIMD）。

Roots、Sampling、Logging 三个功能标记为废弃，但至少还能用 12 个月。旧版 HTTP+SSE 传输同样进入废弃轨道。协议首次引入正式的废弃策略，保证最少 12 个月过渡窗口，这对生产环境的团队来说很实际：你可以排期升级，不用被动救火。

【生态与迁移】

四个一级开发工具包（SDK）同步更新：TypeScript、Python、Go、C#。Rust SDK 以 beta 状态跟进。MCP 目前月下载量接近 5 亿次，TypeScript 和 Python SDK 各自累计下载量都超过了 10 亿。

AWS（Amazon Bedrock AgentCore）、Microsoft（Foundry）、Cloudflare（Workers）、Google Cloud 等都已宣布支持新规范。Figma、Supabase、Honeycomb 等工具厂商也在跟进。

新规范有破坏性变更，依赖会话标识符的实现需要改造。SDK 团队表示根据早期测试反馈已经简化了迁移流程，但具体成本因项目而异。如果你现在在生产环境跑着 MCP 服务器，建议先看一遍完整的 changelog 和迁移指南，评估影响面再动手。

### 引用推文

> David Soria Parra：Thrilled to announce the MCP 2026-07-28 release. It is one of MCP's biggest yet, built on 18 months of lessons learned. A few highlights: ★ MCP is now stateless...
