摘要:MCP (Model Context Protocol) 是 Anthropic 开源的“模型上下文协议”,该协议支持将大模型直接连接至数据源,官方介绍称“可无缝集成 LLM 应用程序和外部数据源”。
OSCHINA
MCP (Model Context Protocol) 是 Anthropic 开源的“模型上下文协议”,该协议支持将大模型直接连接至数据源,官方介绍称“可无缝集成 LLM 应用程序和外部数据源”。
近日,开发者在 MCP 的 GitHub 仓库提交了一个 PR——希望采用 "Streamable HTTP" 传输代替「HTTP+SSE」,以解决当前远程 Model Context Protocol (MCP) 传输方式的关键限制,同时保留其优势。
https://github.com/modelcontextprotocol/specification/pull/206简单来说,Streamable HTTP 改变了 MCP 的数据传输方式,让协议变得:
更灵活(支持流式传输,但不强制)
更易用(支持无状态服务器)
更兼容(适用于标准 HTTP 基础设施)
原来的 MCP 传输方式就像是你和客服通话时必须一直保持在线(SSE 需要长连接),而新的方式更像是你随时可以发消息,然后等回复(普通 HTTP 请求,但可以流式传输)。
主要变更
移除 /sse 端点
服务器不再单独维护 SSE(Server-Sent Events)端点。
所有客户端 → 服务器的消息都通过 /message 端点
任何数据传输都通过 /message 进行,不再依赖 /sse。
服务器可以选择升级请求为 SSE
服务器可以根据需要动态升级 HTTP 请求为 SSE 流,用于发送通知或请求。
客户端通过 Header 提供 Mcp-Session-Id
服务器可选是否需要存储 Session 信息,但客户端始终发送 Mcp-Session-Id 头部信息。
支持无状态(Stateless)服务器
服务器可选择完全无状态运行,不再需要维持长期连接。
变更的动机当前的 HTTP+SSE 传输存在以下问题:
不支持可恢复性(Resumability):连接断开后,客户端必须重新开始整个会话。
服务器需要维持长期连接(High Availability Requirement):服务器必须保持高可用性,以支持持续的 SSE 连接。
SSE 仅支持服务器 → 客户端消息,无法灵活进行双向通信。
新的“Streamable HTTP”传输解决了这些问题,并增强了系统的可扩展性和灵活性。
↓分享、在看与点赞~Orz
来源:阿康聊科技