本文介绍了MCP协议的重大更新,引入了全新的Streamable HTTP传输机制。这一更新解决了当前HTTP+SSE传输方式的关键限制,并保留了其优势。
引入了全新的Streamable HTTP传输机制,解决了HTTP+SSE传输方式的关键限制并保留了优势。主要变更包括移除`/sse`端点,所有客户端→服务器消息通过`/message`端点传输,客户端→服务器请求可由服务器升级为SSE用于发送通知/请求等。
当前的HTTP+SSE传输存在不支持恢复性、要求服务器维护高可用性的长连接以及服务器消息只能通过SSE传递等问题,因此进行了更新。
更新后的机制带来了无状态服务器可行性、纯HTTP实现、基础设施兼容性、向后兼容和灵活升级路径等优势。
文章还介绍了无状态服务器和带流式处理的无状态服务器的应用场景,以及有状态服务器的处理方式。另外,还讨论了为什么不选择WebSocket作为主要的远程传输。
此次更新为MCP协议带来更高的灵活性和稳健性,使其能够适应更广泛的应用场景。通过这次技术升级,MCP协议将更好地满足现代应用架构的需求,为开发者提供更强大、更可靠的消息通信能力。
大家通过上面这张图简单了解一下什么是MCP
MCP协议迎来重大更新,引入了全新的Streamable HTTP传输机制。这一更新解决了当前HTTP+SSE传输方式的关键限制,同时保留了其优势。这项改进得益于来自Shopify、Pydantic、Cloudflare、LangChain、Vercel、Anthropic团队及MCP社区众多成员的宝贵反馈。
主要变更
与当前HTTP+SSE传输相比,新版本有以下变化:
-
移除了
`/sse`
端点
-
所有客户端→服务器消息通过
`/message`
(或类似)端点传输
-
所有客户端→服务器请求都可由服务器升级为SSE,用于发送通知/请求
-
客户端在请求头中提供会话ID;服务器可根据需要关注此ID
-
客户端可通过空GET请求到
`/message`
端点来初始化SSE流
这种方法可以向后兼容实现,并允许服务器根据需要完全无状态运行。
更新动机
当前的远程MCP通过HTTP+SSE传输工作,存在以下问题:
-
不支持恢复性
-
要求服务器维护高可用性的长连接
-
服务器消息只能通过SSE传递
主要优势
1.
无状态服务器可行性
:不再需要高可用性的长连接
2.
纯HTTP实现
:MCP可在纯HTTP服务器中实现,无需SSE支持
3.
基础设施兼容性
:仅是"普通HTTP",确保与中间件和基础设施兼容