MCP有望引入新的数据传输方式:Streamable HTTP

B站影视 日本电影 2025-03-18 20:32 1

摘要: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

来源:阿康聊科技

相关推荐