在MCP过去半年的飞速迭代中,传输层已从「本地传输」演变到「远程传输」。
今天这篇文章带你系统梳理三种官方传输机制:stdio(标准输入/输出)、HTTP+SSE(已弃用)与最新的 Streamable HTTP(流式HTTP)。
以下将介绍每个传输机制的工作方式、典型使用场景,以及为什么用Streamable HTTP替换SSE。
1. stdio(标准输入/输出)
-
适用场景:本地通信,客户端和服务器运行在同一台机器上。比如访问本地文件或运行本地脚本。
-
工作原理:主机应用将服务器作为子进程启动,通过向服务器标准输入(stdin)写入消息,从标准输出(stdout)读取消息来完成通信。
-
优点:无需网络,设置简单,安全性高
-
缺点:仅限本地,无法跨网络通信,不支持多实例并发,断开即丢失上下文。
2. HTTP + SSE(已弃用)
## 2024-11-05的MCP协议版本引入HTTP+SSE,2025-03-26的MCP版本弃用,替换为新一代的Streamable HTTP。## ** **
-
适用场景:用于服务器持续发送信息。是早期远程MCP服务器的传输方式,现已弃用。
** **
-
工作原理:客户端与服务端建立 SSE 长连接,服务端持续推送更新。同时,客户端可通过新的 HTTP POST 路径向服务端发送请求消息。
** **
-
优点:支持远程通信、支持实时推送
-
缺点:易掉线;不支持断线重连;要求服务器保持高可用的长连接,在高并发情况导致显著资源消耗;服务器只能通过SSE单向发送消息。
- Streamable HTTP流式 HTTP
****2025-03-26的MCP协议版本引入Streamable HTTP,替换HTTP+SSE传输,用来解决连接不可恢复、服务端长连接压力大等问题。但依然保留了SSE的流式响应优势。
**
**
- 适用场景:远程MCP服务器的推荐选择。
- 工作原理:
-
客户端→服务端:客户端通过HTTP POST 把请求发送到服务器的MCP端点。
-
服务端→客户端:服务器可以返回单条响应,或升级为 SSE流 来推送多条消息。
-
状态管理:引入session机制支持状态管理和恢复,服务器会为客户端生成唯一的会话ID,并要求在客户端在后续所有请求中携带该ID。**
**
-
优点:支持无状态服务器;无需维持高可用的长连接;支持多客户端并发;向后兼容及断线重连。
-
缺点:最新的标准,客户端支持有限。
-
实际应用场景
无状态服务器模式:服务器直接返回单条响应。如数学计算。SSE流模式:服务器持续推送多条信息。如大文件处理。
多轮对话模式:通过会话ID获取上下文。
断线恢复模式:通过会话ID获取历史信息。提高不稳定网络环境的可靠性。
以下是Streamable HTTP的时序图:
- 总结
总体来看,Streamable HTTP是更优选择。它不仅提供向后兼容的SSE流,还通过单一端点和双向通信简化了架构设计,增强了扩展性。
原HTTP+SSE仍可使用,但已被MCP官方弃用,建议开发者尽快迁移到Streamable HTTP,以确保系统与MCP未来版本的兼容性。
MCPmarket.cn精选的一键直连MCP Server已支持Streamable HTTP,只需一键即可生成Streamable HTTP链接,轻松部署,提供便捷及稳定的MCP服务。文末点击“阅读原文”即可跳转官网。
通过掌握MCP的传输机制,将帮助你有效地使用和构建 MCP 服务器。
在下一节,我们将进一步介绍 MCP的能力定义,帮助你全面构建基于 MCP 的 AI 应用生态。
原文地址:https://mp.weixin.qq.com/s/GX8_8TwdrK22Ja75N7dQqA