type
status
date
slug
summary
tags
category
icon
password
stdio(标准输入/输出)
工作原理
stdio 使用进程的标准输入(stdin)和标准输出(stdout)进行通信:
- 客户端→服务器:通过 stdin 发送 JSON-RPC 请求
- 服务器→客户端:通过 stdout 返回 JSON-RPC 响应
- 错误信息:通过 stderr 输出,不影响正常通信
通信流程
特点
- 同步通信:请求-响应模式,一问一答
- 进程隔离:客户端和服务器运行在独立进程中
- 简单可靠:使用操作系统级别的管道通信
- 跨语言支持:任何能读写标准流的语言都能实现
实现示例
SSE(Server-Sent Events)
工作原理
SSE 是基于 HTTP 的单向通信协议:
- 建立连接:客户端通过 HTTP 请求建立持久连接
- 服务器推送:服务器可以持续向客户端推送事件
- 文本协议:使用纯文本格式,每个事件以
data:
开头
通信流程
SSE 消息格式
特点
- 异步通信:支持服务器主动推送
- 单向流:仅服务器到客户端(客户端需要通过其他方式发送请求)
- 自动重连:连接断开后浏览器会自动重连
- 实时性好:适合需要实时更新的场景
实现示例
对比与选择
stdio 适用场景
- 本地工具和CLI应用
- 需要双向同步通信
- 简单的请求-响应模式
- 进程级别的隔离需求
SSE 适用场景
- Web 应用集成
- 需要服务器推送能力
- 实时数据流和通知
- 长时间运行的任务反馈
在 MCP 中的应用
两种方式都能完整支持 MCP 的三种核心能力(Tools、Resources、Prompts),选择哪种主要取决于你的应用架构和具体需求。
- Author:NotionNext
- URL:http://preview.tangly1024.com/article/22ced26c-0da0-81fa-b4ad-e15bb7d5bc3a
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!