MCP 传输机制
Last updated
Last updated
模型上下文协议 (MCP) 支持 Cline 和 MCP 服务器之间通信的两种主要传输机制:标准输入/输出 (STDIO) 和服务器发送事件 (SSE)。每种机制都有其独特的特性、优势和用例。
STDIO 传输在您的机器上本地运行并通过标准输入/输出流进行通信。
STDIO 传输的原理
客户端(Cline)生成一个 MCP 服务器作为子进程
通信通过进程流进行:客户端写入服务器的 STDIN,服务器响应 STDOUT
每条消息都由换行符分隔
消息格式为 JSON-RPC 2.0
复制
STDIO
位置 :与 Cline 在同一台机器上运行
性能 :非常低的延迟和开销(不涉及网络堆栈)
简单 :无需网络配置即可直接进行进程通信
关系 :客户端与服务器之间的一对一关系
安全性 :由于不存在网络暴露,因此本质上更安全
STDIO 传输非常适合:
在同一台机器上运行的本地集成和工具
安全敏感操作
低延迟要求
单客户端场景(每个服务器一个 Cline 实例)
命令行工具或 IDE 扩展
复制
服务器发送事件 (SSE) 传输在远程服务器上运行并通过 HTTP/HTTPS 进行通信。
客户端(Cline)通过 HTTP GET 请求连接到服务器的 SSE 端点
这将建立一个持久连接,服务器可以将事件推送到客户端
对于客户端到服务器的通信,客户端向单独的端点发出 HTTP POST 请求
沟通通过两个渠道进行:
事件流(GET):服务器到客户端的更新
消息端点(POST):客户端到服务器的请求
复制
远程访问 :可以托管在与 Cline 实例不同的机器上
可扩展性 :可以同时处理多个客户端连接
协议 :通过标准 HTTP 工作(无需特殊协议)
持久性 :维护服务器到客户端消息的持久连接
身份验证 :可以使用标准 HTTP 身份验证机制
SSE 传输更适合于:
跨网络远程访问
多客户端场景
公共服务
许多用户需要访问的集中式工具
与 Web 服务集成
复制
STDIO 和 SSE 传输之间的选择直接影响您部署和管理 MCP 服务器的方式。
STDIO 服务器与 Cline 在同一台机器上本地运行,这有几个重要的含义:
安装 :必须在每个用户的机器上安装服务器可执行文件
发行版 :您需要为不同的操作系统提供安装包
更新 :每个实例必须单独更新
资源 :使用本地机器的 CPU、内存和磁盘
访问控制 :依赖于本地机器的文件系统权限
集成 :轻松与本地系统资源(文件、流程)集成
执行 :以 Cline 启动和停止(子进程生命周期)
依赖项 :任何依赖项都必须安装在用户的机器上
实际示例
使用 STDIO 的本地文件搜索工具将:
在用户的机器上运行
直接访问本地文件系统
在需要时由 Cline 启动
无需网络配置
需要与 Cline 一起安装或通过包管理器安装
SSE 服务器可以部署到远程服务器并通过网络访问:
安装 :在服务器上安装一次,可供许多用户访问
分布 :单一部署服务于多个客户端
更新 :集中更新立即影响所有用户
资源 :使用服务器资源,而不是本地机器资源
访问控制 :通过身份验证和授权系统进行管理
集成 :与用户特定资源的更复杂的集成
执行 :作为独立服务运行(通常持续运行)
依赖关系 :在服务器上管理,而不是在用户机器上
实际示例
使用 SSE 的数据库查询工具将:
在中央服务器上运行
使用服务器端凭据连接到数据库
持续可供多个用户使用
需要适当的网络安全配置
使用容器或云技术进行部署
一些场景受益于混合方法:
具有网络访问的 STDIO :充当远程服务代理的本地 STDIO 服务器
带有本地命令的 SSE :可以通过回调触发客户端计算机上的操作的远程 SSE 服务器
网关模式 :用于本地操作的 STDIO 服务器连接到 SSE 服务器以实现专门功能
地点
仅限本地机器
本地或远程
客户
单一客户端
多个客户端
表现
更低的延迟
更高的延迟(网络开销)
设置复杂性
更简单
更复杂(需要 HTTP 服务器)
安全
考虑标准输出上交所
地点
仅限本地机器
本地或远程
客户
单一客户端
多个客户端
表现
更低的延迟
更高的延迟(网络开销)
设置复杂性
更简单
更复杂(需要 HTTP 服务器)
安全
本质安全
需要明确的安全措施
网络访问
不需要
必需的
可扩展性
限于本地机器
可以跨网络分发
部署
按用户安装
集中安装
更新
分布式更新
集中更新
资源使用情况
使用客户资源
使用服务器资源
依赖项
客户端依赖项
服务器端依赖项
何时使用
STDIO 实现
SSE 传输的原理
上交所
何时使用
SSE 实施
STDIO:本地部署
SSE:托管部署
混合
有关在 Cline 中配置 STDIO 和 SSE 传输的详细信息(包括示例),。