MCP 通信机制:stdio vs SSE
1 为什么 MCP 同时支持 STDIO 与 SSE?
| 目标 | STDIO (本地管道) | SSE (Server‑Sent Events) |
|---|---|---|
| 典型部署 | 同机子进程 & CLI | 远程或云端 Web 服务 |
| 连接特性 | 一问一答、零网络 | 长连接、流式推送 |
| 规范地位 | 必须支持—客户端应“能用就用” | 推荐—远程场景首选 |
| 传输格式 | JSON‑RPC 2.0 ⏎ 换行分隔 | HTTP POST + text/event-stream |
官方把两者统称为 标准传输机制(Standard Transports)。([modelcontextprotocol.io][1], [modelcontextprotocol.io][2], [Cloudflare Docs][3])
2 STDIO Transport:像“管道”一样的本地对话
2.1 工作原理
- 客户端启动 MCP 服务器可执行文件。
- 写一行 JSON‑RPC 请求到 stdin。
- 服务器 回写一行 JSON‑RPC 响应到 stdout。
- 以
\n为包界,简单可靠。([The New Stack][4])
2.2 两种常见请求
// ① Manifest 请求
{ "jsonrpc":"2.0", "method":"getManifest", "id":1 }
/* ② Source 查询 */
{ "jsonrpc":"2.0", "method":"resolve",
"params":{ "source":"docs", "query":"Rust 所有权", "top_k":3 },
"id":2 }
⚡ 优势:零端口、脚本友好;📦 局限:不能多路流式推送。
2.3 最小实现(Python,逐行注释)
#!/usr/bin/env python3
import sys, json
for line in sys.stdin:

最低0.47元/天 解锁文章
2670

被折叠的 条评论
为什么被折叠?



