MCP转向无状态:您的AWS MCP服务器部署是否架构良好?

MCP转向无状态:您的AWS MCP服务器部署是否架构良好?

💡 原文英文,约3100词,阅读约需11分钟。
📝

内容提要

MCP于2026年7月28日发布重大修订,协议核心改为无状态,移除握手和会话头,每请求自带版本和上下文。此变更符合AWS Well-Architected框架,支持水平扩展和Lambda原生部署。新协议内置追踪、缓存、安全验证,但需注意向后兼容、MRTR模式及弃用功能。建议迁移至新版本,删除会话基础设施,并遵循迁移路径和自检清单。

🔎

延伸解读

无状态协议的实际收益

MCP 2026-07-28 修订将协议核心改为无状态,移除了握手和会话头,使每个请求自带版本和上下文。这意味着 AWS 上的部署不再需要粘性会话或共享会话存储,Lambda 成为自然适配。文章指出,这符合 AWS Well-Architected 框架,能降低成本并简化运维。但需注意,无状态描述的是协议而非应用,有状态场景仍可通过工具返回标识符实现。

迁移前的关键检查

文章强调,若仍服务 2025 年客户端,需保留向后兼容通道,包括粘性路由和会话存储,直到旧版本流量归零。建议通过网关记录协议版本,设定旧通道的停用日期,并通知客户端团队。此外,需注意服务器无法再主动推送请求,改为 MRTR 模式,客户端需重新发送带 requestState 的原始调用。

安全与缓存风险

新协议引入 issuer 验证、客户端类型声明等安全增强,但状态标识符对模型可见,服务器必须强制所有权检查,并将 requestState 视为不可信输入。缓存方面,cacheScope 设为 public 可能导致多租户数据泄露,应默认 private,仅对真正跨调用者一致的数据放宽。

弃用功能与时间表

协议弃用了 Roots、Sampling、Logging 和 HTTP+SSE 传输,最早移除时间为 2027 年 7 月。建议提前规划迁移路径:用工具参数或资源 URI 替代 Roots,直接集成 LLM 提供商 API,日志改用 stderr 或 OpenTelemetry,并迁移到 Streamable HTTP。同时,MCP Apps 引入服务器提供的 HTML,需强制审查模板并决定哪些服务器可启用 UI。

Q&A

MCP 2026-07-28 修订版的核心变化是什么?

MCP 于 2026 年 7 月 28 日发布了重大修订,将协议核心改为无状态,移除了握手和会话头(Mcp-Session-Id),每个请求自带协议版本和客户端上下文。

MCP 无状态化对 AWS 部署有什么好处?

无状态化使 MCP 服务器符合 AWS Well-Architected 框架,支持水平扩展和 Lambda 原生部署,无需粘性会话或共享会话存储,降低了成本和运维负担。

MCP 无状态化后,如何处理跨请求的状态?

服务器通过工具返回一个状态标识符,模型在后续调用中携带该标识符,状态存储在数据存储中,模型只携带键,类似于 REST 风格。

MCP 2026-07-28 规范中,MRTR 模式是什么?

MRTR(Multi Round-Trip Requests)模式取代了服务器向客户端推送请求的方式。服务器返回 input_required 结果,包含 inputRequests 映射和 requestState 令牌,客户端完成请求后重新发送原始调用并携带响应和令牌。

MCP 2026-07-28 规范如何提升安全性?

规范要求客户端验证 iss 参数、声明 application_type,服务器强制所有权验证、使用 HMAC 或 AEAD 保护 requestState 令牌,并采用 JSON Schema 2020-12 验证工具输入输出。

MCP 2026-07-28 规范中,缓存是如何工作的?

list 和 resource-read 结果必须包含 ttlMs 和 cacheScope 字段,客户端和网关可以根据这些字段决定缓存策略,工具列表按确定性顺序返回以支持提示缓存。

MCP 2026-07-28 规范弃用了哪些功能?

弃用了 Roots、Sampling、Logging 和 HTTP+SSE 传输,移除 ping、logging/setLevel 和 notifications/roots/list_changed,建议迁移到工具参数、LLM 提供商 API、stderr/OpenTelemetry 和 Streamable HTTP。

MCP 2026-07-28 规范中,如何实现可观测性?

每个请求携带 W3C Trace Context 到 _meta,支持端到端追踪;Mcp-Method 和 Mcp-Name 头提供操作信号;协议日志已弃用,改用 stderr 和 OpenTelemetry。

MCP 服务器迁移到 2026-07-28 规范时,需要注意什么?

需要升级 SDK 并选择加入,审计会话假设,规划弃用功能退出,删除会话基础设施,并运行官方一致性套件验证。

MCP 2026-07-28 规范中,cacheScope 设置为 public 有什么风险?

如果响应包含租户特定数据,设置 cacheScope 为 public 可能导致共享中间件将数据泄露给其他租户,应默认 private,仅在响应完全一致时放宽。

🏷️

标签

➡️

继续阅读