MCP转向无状态,开发者质疑是否只是变回API
译文 AI 逐段翻译
InfoQ 首页 新闻 MCP 变得无状态,开发者质疑这是否使其又变回 API
MCP 变得无状态,开发者质疑这是否使其又变回 API
2026年8月12日 4分钟阅读
作者
关注我们
收听本文 - 0:00
音频已准备好播放
您的浏览器不支持音频元素。
0:00
0:00
The MCP 2026-07-28 规范 移除了协议会话。目前的报道将其视为扩展性胜利,它确实是。但同一版本还增加了两个必需的 HTTP 头,这些头让网关无需打开请求体即可路由、限流和计量代理流量。
早期的传输通过 initialize 和 initialized 交换建立会话,并通过 Mcp-Session-Id 头跟踪。每个后续请求都必须找到与该会话关联的状态。自动扩缩容基础设施必须保留会话,部署必须排空或迁移会话,负载均衡不切实际,因为客户端被绑定到持有其会话的实例上。
新协议从核心请求路径中移除了握手、会话头和协议会话。每个请求携带协议版本、客户端身份和所需的能力。任何请求可以落在任何实例上。
较少被关注的是请求本身会发生什么。MCP 消息是 基于 HTTP 的 JSON-RPC,关于请求的信息以前只存在于 JSON 体中。网关必须解析该体才能了解请求是列出工具、调用工具还是读取资源。
两个头现在是 Streamable HTTP 请求的必填项:Mcp-Method 和 Mcp-Name。工具调用以 Mcp-Method: tools/call 和 Mcp-Name: search 的形式到达,后面跟着 JSON-RPC 负载。 Cloudflare 的 Matt Carey 阐述了这带来的好处。网关、限流器或 WAF 可以读取这些头并根据它们采取行动,按方法或按工具,使用它们已经应用于其他 API 的相同原语。评论者 evalstate 指出规范更进一步:工具参数可以复制到头中以进行自定义路由。
使用新头通过网关控制进行 MCP 请求路由(来源: Cloudflare)
代理治理迄今为止一直从另一个方向到来。Cloudflare 的 代理追踪 和 Azure API 管理的 AI 网关层 都位于协议之上,作为独立的控制层。此版本将元数据放在传输层,基础设施团队已经运行的设施可以读取它。
Elicitation 中断。服务器发起的请求以前需要开放的流。它们现在使用多轮往返请求:服务器返回 input_required,客户端收集答案,然后重试调用。审批变成两个请求而不是一个保持的连接,这部署更简单,但意味着等待人工不再位于单个调用之内。
授权同时收紧,动态客户端注册被弃用,计划在 2027 年夏天后移除,采用 RFC 9207 颁发者识别,客户端将规范服务器 URI 作为 RFC 8707 资源发送,以便令牌仅被该受众接受。
社区在 Hacker News 上的反应分歧明显,分歧不在于无状态是否是一种改进,而在于这种改进揭示了什么。
对于一方来说,该版本证实了协议从一开始就不应该有状态。正如评论者 drdexebtjl 所说:
回顾起来,有状态 MCP 显然是错误的。这基本上使 MCP 成为另一个 REST API 端点,并允许您使用您已经为 REST API 设置好的相同基础设施(如负载均衡器、API 网关、渐进式发布等)。
评论者 pjmlp 将其视为行业不断重新学习的教训,回想起 Sun RPC 的相同结论:无状态服务器总是更好,只有在不可避免时才使用有状态。评论者 luciana1u 更加直言不讳:
我们发明了一个有状态协议,发现状态难以扩展,将其剥离,然后到达了“只需发送 POST 请求”。REST 人群已经沾沾自喜地等待这一刻 20 年了。
评论者 bloppe 做出了结构性的版本,将 MCP 描述为类似 REST 的 API,加上 OpenAPI 已经提供的规范,再加上工具级别的授权,并认为只有第三个是真正新的。
辩护方与其说是质疑相似性,不如说是质疑结论。评论者 lexicality 指出 MCP 字面上就是 JSON-RPC,发明的是一个模型已经被训练使用的约定。评论者 vidarh 最简洁地提出了论点:
MCP 给你的核心优势是一个标准,由于得到了 AI 提供商的认可,人们有强烈的动机去实际实现它。
实施者从另一个方向得出了类似的结论。Sentry 联合创始人兼首席产品官 David Cramer,此前曾公开写道 MCP 还不够好,告诉 Cloudflare 该版本清理了认证和工具的处理:
只有管道不再是全部故事时,代理才会变得有用。
一个平行的讨论质疑代理是否需要协议,而不是对普通 CLI 工具的 shell 访问。评论者 firasd 反驳说 CLI 立场假设开发者使用笔记本电脑,在编码工具中打开 shell,这描述了少数使用情况,而大多数使用是通过手机应用、网页聊天和嵌入式小部件实现的。
采用率没有争议:Anthropic 报告 MCP 月 SDK 下载量超过 4 亿次,今年增长了四倍。这种采用是否覆盖到各个服务器是另一个问题。一篇关于 r/AI_Agents描述了对一个客户服务器的审计,该服务器在三个月内记录了61次工具调用,其中58次来自客户自己的工程师,并认为团队将智能体能够访问视为被需要。作者披露MCP工作占其咨询收入的很大一部分,并得出了一个结论,最终落在这个版本上:
资金流向了网关、注册表和认证层,而不是服务器本身。
对于已经在生产环境中运行MCP的团队来说,迁移是实际的工作。依赖于协议会话、服务器到客户端请求或独立流的服务器可以在现有有状态路由旁边运行无状态路由,逐步迁移功能,排空活动会话,并在弃用窗口内移除旧路径。规范和更新的TypeScript、Python、Go和C# SDK现在可用。
关于作者
Steef-Jan Wiggers
显示更多显示更少
此内容属于 云 主题
相关主题:
- Stripe使用图搜索和状态机自动化数据库修复
- Project Valhalla首个预览:JEP 401重新定义Java对象的==
- Pinterest如何通过集中式Terraform管道大规模保护AWS基础设施
- Canva分享基于S3的架构,用于数亿会话的撤销
- Vercel Labs发布Zero:一种图优先语言,专为智能体编写代码而构建
- 文化与方法趋势2026:AI工程的人文层面
InfoQ 通讯
每周二发送的InfoQ上周内容摘要。加入超过25万资深开发者的社区。 查看示例