1. MCP Server 的进程模型选择,stdio(本地子进程)vs HTTP+SSE(远程服务)vs Streamable HTTP,各自的部署拓扑、扩缩容和故障隔离
MCP Server 的进程模型应如何选择?stdio(本地子进程)、HTTP+SSE(远程服务)与 Streamable HTTP 各自的部署拓扑、扩缩容和故障隔离有何差异?
- 理解三种传输模型的部署拓扑差异
- 掌握扩缩容与故障隔离的差异
- 理解选型与场景匹配
三种模型代表了不同的部署形态。stdio:Server 作为 Host 的子进程运行,通过标准输入输出通信,部署简单、无网络、最适合本地单机工具(文件系统、本地 CLI),但无法远程、无法独立扩缩容,故障隔离依赖进程边界(一个 Server 崩溃只影响该进程)。HTTP+SSE(旧版远程):Server 是独立远程服务,通过 HTTP 请求 + SSE 长连接推送,可远程部署、可独立扩缩容,但 SSE 长连接在网关/负载均衡、断线重连上有缺陷,连接状态难管理。Streamable HTTP(新版):单端点处理 POST/GET,支持可选 SSE 流式响应,兼容 HTTP 语义,更适合无状态网关、水平扩展、负载均衡与标准基础设施(限流、缓存、认证)。选型原则:本地/单进程工具用 stdio;需要远程、多租户、可扩展的服务用 Streamable HTTP;旧 HTTP+SSE 应迁移到 Streamable HTTP。故障隔离上,stdio 靠进程隔离,远程靠容器/副本隔离与负载均衡的故障转移。
进程模型选择本质是"部署形态决定扩缩容与隔离能力"。stdio 简单但不可扩展,远程模型可扩展但复杂度高。Streamable HTTP 是目前推荐的标准,因为它与 HTTP 生态兼容、可无状态化、易水平扩展。选型要结合工具的部署位置(本地 vs 远程)与扩展需求。