Skip to content

MCP

MCP 是一种开放协议,它使 AI 模型能够通过标准化的服务器实现与本地和远程资源安全地交互。本列表重点介绍已投入生产和处于实验阶段的 MCP 服务器,这些服务器通过文件访问、数据库连接、API 集成和其他上下文服务来扩展 AI 功能。

MCP 服务器

实时数据传输

SSE

  1. 定义

    SSE 是一种基于 HTTP 协议的 单向通信协议,允许服务器以事件流(Event Stream)的形式实时向客户端推送数据,而无需客户端主动请求。它是 HTML5 规范的一部分,主要面向浏览器端应用。

  2. 工作原理

  • 单向通信:数据只能从服务器流向客户端。
  • 事件驱动:服务器可以发送包含事件类型、数据等信息的消息,客户端通过监听事件进行处理。
  • 持久连接:客户端与服务器建立一个持久的 HTTP 连接,服务器在有新事件时立即推送数据。
  • 自动重连:如果连接中断,客户端会自动尝试重新连接。
  1. 数据格式

SSE 使用特定的文本格式,每条事件消息包含以下字段:

  • data: 事件数据(必须)。
  • event: 事件类型(可选)。
  • id: 事件标识符(可选,用于重连后恢复状态)。
  • retry: 重连间隔时间(可选)
JSON
event: message
data: {"type": "stock", "value": "100.5"}

data: {"type": "news", "title": "Breaking News!"}
  1. 优点
  • 实时性:适合需要服务器主动推送的场景(如股票价格、社交媒体动态)。
  • 简单易实现:基于 HTTP 协议,客户端通过 EventSource API 可轻松实现。
  • 轻量级:相比 WebSocket,SSE 的连接和维护消耗更少资源。
  • 自动重连:客户端支持自动重连机制。
  1. 缺点
  • 单向通信:客户端无法通过 SSE 向服务器发送消息,需通过其他方式(如 HTTP 请求)。
  • 浏览器限制:浏览器对 SSE 连接数有限制(通常每个域名最多 6 个)。
  • 不支持二进制数据:仅适合文本数据传输。
  1. 适用场景
  • 实时通知系统(如邮件提醒、消息推送)。
  • 多人协作应用(如文档协同编辑)。
  • 游戏排行榜更新。
  • 任何需要服务器主动推送事件的场景。

Streamable HTTP

  1. 定义

Streamable HTTP 是一种基于 HTTP 协议的 流式传输机制,允许服务器在生成响应的过程中逐步发送数据,而无需等待整个数据集准备完成。它不是专门定义的协议,而是对 HTTP 的灵活使用。

  1. 工作原理
  • 流式传输:服务器在数据生成时逐步发送,客户端可以逐块接收和处理数据。
  • 灵活的数据格式:数据格式由应用层定义,可以是文本、二进制或自定义格式。
  • 无强制持久连接:可以使用持久连接或一次性连接,具体取决于应用场景。
  • 双向通信:理论上支持双向通信(需额外实现)。
  1. 数据格式

Streamable HTTP 没有固定格式,数据可以是任意格式(如 JSON、二进制流、分块编码等)。例如:

  • 分块传输编码(Chunked Transfer Encoding):服务器分块发送数据,客户端逐步接收。
  • 自定义协议:应用层定义数据分隔符或消息头(如 Content-Type 指定数据类型)。
  1. 优点
  • 高效处理大数据:适合传输大文件或连续数据流(如视频、音频)。
  • 实时性:数据在生成时即可传输,减少延迟。
  • 灵活性:支持多种数据格式(文本、二进制),适合复杂场景。
  • 兼容性强:基于 HTTP,可与现有基础设施(如 CDN、代理服务器)无缝集成。
  1. 缺点
  • 复杂性高:需要手动管理数据流的顺序、完整性及连接状态。
  • 资源消耗:长时间保持连接可能消耗更多服务器资源。
  • 无内置事件机制:需要应用层实现事件处理逻辑(如消息解析)。
  1. 适用场景
  • 大文件下载(如视频、软件更新)。
  • 实时流媒体(如在线视频直播、音频流)。
  • 大数据分析结果推送。
  • AI 模型通信(如 MCP 协议中的流式数据传输)。
特性SSEStreamable HTTP
通信方向单向(服务器 → 客户端)双向(取决于实现)
事件机制内置事件系统无内置事件系统
连接保持持久连接可持久或断开连接
数据格式特定文本格式(data、event 等)灵活,可自定义(文本、二进制等)
自动重连内置自动重连机制需应用层实现
浏览器支持现代浏览器(除 IE/Edge)所有支持 HTTP 的客户端
资源消耗较低可能较高(需管理连接和流)
适用场景实时事件推送(如股票价格)大数据流传输(如视频、AI 模型通信)

在 MCP 协议中中的应用

Model Context Protocol (MCP) 是一种用于标准化 AI 模型与应用程序通信的开放协议。在 MCP 中,Streamable HTTP 被用作传输层,支持以下特性:

  • 流式传输:允许 AI 模型逐步返回结果(如大语言模型的生成过程)。
  • 统一接口:通过 /message 端点处理所有请求和流式响应,无需单独的 /sse 端点。
  • 无状态服务器:Streamable HTTP 支持无状态模式,便于部署高可用服务。
  • 兼容性:基于 HTTP,可与现有基础设施(如负载均衡器、CDN)无缝集成。
维度SSEStreamable HTTP
演进趋势逐步被替代(如 MCP 协议已弃用 SSE)新兴标准(MCP、云服务的推荐方案)
设计定位轻量级实时通知高性能流式处理 + 双向交互
典型用例新闻推送、进度条更新AI 多轮对话、大模型流式输出