Anthropic 发布 MCP 协议的可流式 HTTP 升级
Anthropic 为其模型上下文协议(MCP)引入了一项重要更新,从传统的 HTTP+SSE(服务器发送事件)方法过渡到新的可流式 HTTP传输机制。此次全面改革旨在解决 MCP 远程传输中的关键限制,同时保留其核心优势。
此次更新从根本上重构了 MCP 的数据传输过程,使其更加灵活、用户友好,并与现代基础设施更加兼容。此前,MCP 依赖于类似于客服电话的持久连接,连接必须保持打开状态。而新方法则像发送消息并根据需要等待回复一样运作,利用常规的 HTTP 请求并具备可选的流式传输功能。
更新的核心变化
此次升级引入了五大主要变化:
- 移除 /sse 端点:服务器不再维护单独的 SSE 端点。
- 统一的 /message 端点:所有客户端到服务器的消息都通过此单一端点传输。
- 动态 HTTP-to-SSE 升级:服务器可以在需要时将 HTTP 请求升级为 SSE 流以进行通知或请求。
- 通过 Header 传递 Mcp-Session-Id:客户端通过 Header 提供会话 ID,允许服务器决定是否存储会话信息。
- 无状态服务器操作:系统支持完全无状态的服务器,消除了对持久连接的需求。
解决 HTTP+SSE 的限制
从 HTTP+SSE 转向新方法的原因在于其存在的一些缺陷:
- 断开连接后无法恢复连接,迫使客户端重新启动会话。
- 维持持续的 SSE 连接对服务器可用性要求较高。
- SSE 的单向通信(服务器到客户端)阻碍了灵活的双向交互。
新的可流式 HTTP方法解决了这些问题,显著提升了系统的可扩展性和灵活性。
对开发者的好处
此次更新为开发者带来了多项优势:
- 简化服务器实现:仅需常规的 HTTP 服务器,无需专用的 SSE 服务器。
- 更易部署:兼容不支持持久连接的云平台,如 Vercel、Cloudflare 和 AWS Lambda。
- 提高兼容性:由于其标准的 HTTP 基础,能够无缝集成 CDN、API网关和负载均衡器。
- 增强可扩展性:支持无状态操作,并在需要时动态升级为 SSE。
对基础设施的影响
新方法还为服务器架构带来了变革性的变化:
- 无状态服务器:消除了服务器持续存储客户端会话信息的需求。
- 微服务兼容性:轻松与 REST API、GraphQL、负载均衡器和 CDN集成。
- 更高的资源利用率:请求处理完成后释放资源,非常适合高并发场景。
为何不选择 WebSocket?
尽管 SSE存在问题,Anthropic并未选择WebSocket作为替代方案,原因如下:
- WebSocket需要持久连接,这与MCP的RPC式模型(每个请求独立)相矛盾。
- WebSocket无法传输HTTP头信息,这使身份验证过程复杂化.
它仅支持GET升级,与MCP主要使用POST请求不兼容.
相反,Anthropic选择继续使用HTTP,同时赋予服务器在需要时升级到SSE的能力.
结论
此更新通过允许服务器自主决定是否支持流式传输,使MCP变得更轻量级和灵活. 它显著简化了部署流程,同时提高了与各种网络基础设施的兼容性. 此外,它还提升了服务器资源利用率,并支持更大规模的并发请求. 这些变化为AI模型与应用程序之间更高效的通信铺平了道路.
关键点 1.Anthropic用可流式HTTP取代MCP中的持久连接以实现更大灵活性. 2.更新移除了/sse端点并引入了统一的/message端点. 3.服务器可根据需要动态将HTTP请求升级为SSE流. 4.新方法支持无状态操作并简化了在云平台上的部署.




