《MCP从0到1》第3课:MCP通信传输机制(stdio、SSE、Streamable HTTP)最强详解

0 阅读3分钟

在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单向发送消息。

  1. 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的时序图:图片

  1. 总结

总体来看,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