MCP 的 stdio、SSE 和 Streamable HTTP 有什么区别:本地与远程 MCP 怎么选

MCP 配置里的 stdio、sse、http 到底差在哪?按 MCP 官方规范讲清两种标准传输方式的工作原理、Streamable HTTP 与旧的 HTTP+SSE 的关系、会话与断线续传、规范对安全的硬性要求,以及本地服务器和远程服务器各适合什么场景。

NNathaniel bigo··原创首发·AI 辅助撰写
9 分钟读完
资料核对于 2026-10-11 · 依据官方文档与公开资料整理 免费账号 账号
本文根据 MCP 官方规范《Transports》(协议版本 2025-11-25)整理,资料核对于 2026-10-11。MCP 的基本概念见《MCP 是什么》。

适用于谁

  • 搜「mcp stdio sse 区别」「mcp streamable http 和 sse 的区别」「mcp streamable http 协议」的人;
  • 配 MCP 时看到 command 和 url 两种写法、sse 和 http 两种类型,不知道该用哪个的人;
  • 自己写 MCP 服务器,要决定用哪种方式对外提供的人。

结论先说

  1. 规范只定义了两种标准传输方式:stdio 和 Streamable HTTP。
  2. stdio = 本地子进程。客户端启动服务器程序,通过标准输入输出传消息。配置里写的是 command 和 args。
  3. Streamable HTTP = 网络服务。服务器独立运行,提供一个 HTTP 端点,客户端用网址连接。配置里写的是 url。
  4. SSE 有两个意思,别混了:一是旧版协议(2024-11-05)里的「HTTP+SSE」传输方式,已被 Streamable HTTP 取代;二是 Streamable HTTP 内部仍然可以用 SSE 这种流式响应格式。看到配置里的 sse 类型,指的是前者。
  5. 怎么选:需要访问你本机文件和程序的,用 stdio;只是调用某个云服务的,优先用厂商提供的远程服务器。

一、stdio:把服务器当子进程

规范描述的工作方式:

  • 客户端把 MCP 服务器作为子进程启动;
  • 服务器从标准输入读取 JSON-RPC 消息,把消息写到标准输出;
  • 消息之间用换行分隔,消息内部不得包含换行;
  • 服务器可以向标准错误写日志;客户端不应把标准错误里有输出当作出错的证据;
  • 服务器不得向标准输出写入任何不是合法 MCP 消息的内容。

最后一条是写服务器的人最容易违反的:一句调试用的打印语句就会让通信出错。

规范还有一句:客户端在可能的情况下应当支持 stdio。所以几乎所有 MCP 客户端都能配本地服务器。

典型配置长这样(Claude 桌面版的官方示例):

json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/username/Desktop"]
    }
  }
}

二、Streamable HTTP:一个端点,两种响应

规范描述的工作方式:

  • 服务器提供一个 MCP 端点,同时接受 POST 和 GET;
  • 客户端发的每条消息都是一次新的 POST,请求头 Accept 里要同时列出 application/json 和 text/event-stream;
  • 对于请求,服务器可以直接回一个 JSON,也可以打开一条 SSE 流陆续返回,客户端两种都必须能处理;
  • 客户端可以用 GET 打开一条 SSE 流,用来接收服务器主动发来的消息;服务器不支持时返回 405。

「Streamable」指的就是这一点:简单的调用一问一答,耗时的调用可以流式返回进度和结果,用的是同一个端点。

会话

  • 服务器可以在初始化响应里通过 MCP-Session-Id 响应头分配一个会话 ID;
  • 之后客户端的所有请求都必须带上它;
  • 服务器可以随时结束会话,此后对该会话的请求返回 404,客户端必须重新初始化;
  • 客户端不再需要会话时,应当发一个 HTTP DELETE 来结束它。

断线续传

  • 服务器可以给 SSE 事件加上事件 ID;
  • 连接断开后,客户端用带 Last-Event-ID 请求头的 GET 请求续上;
  • 规范特别说明:连接断开不等于取消。要取消一个请求,客户端应当显式发送取消通知。

协议版本头:初始化之后,客户端的所有请求都要带 MCP-Protocol-Version 请求头,例如 2025-11-25。

三、旧的 HTTP+SSE 是怎么回事

协议版本 2024-11-05 里的 HTTP 传输方式叫 HTTP+SSE,它用两个端点:一个 SSE 端点用来收,一个 POST 端点用来发。Streamable HTTP 把它们合并成了一个端点,并取代了它。

规范给出的兼容办法:

  • 服务器想照顾老客户端,可以在新的 MCP 端点之外继续保留旧的 SSE 和 POST 端点;
  • 客户端先向网址 POST 一个初始化请求,成功就说明是 Streamable HTTP;如果返回 400、404 或 405,再发一个 GET,如果收到的第一个事件是 endpoint,说明对方是旧的 HTTP+SSE 服务器。

落到日常使用上:

你看到的含义怎么办
服务文档给的网址以 /mcp 结尾多半是 Streamable HTTP类型选 http
服务文档给的网址以 /sse 结尾多半是旧的 HTTP+SSE类型选 sse;留意服务方是否已提供新端点
两个都给了服务方在做兼容优先用 /mcp

这个按结尾判断的办法,MCP 官方调试工具 Inspector 自己也在用:它的文档写明,不指定传输方式时,网址必须以 /mcp 或 /sse 结尾才能自动判断。Claude Code 里连接远程服务器的具体命令见《Claude Code MCP 配置教程》。

四、对比

stdioStreamable HTTP
服务器在哪运行你的电脑上,由客户端启动任意位置,独立运行
配置里写什么command、args、envurl,可能还有请求头
谁能用只有启动它的那个客户端多个客户端、多个用户
鉴权靠环境变量把密钥传给进程走 HTTP 的鉴权,常见是 OAuth 登录
能碰到什么你的账号能读写的文件、环境变量、网络只有服务方那一端的数据
更新你自己更新包服务方更新,你不用管
断网可用可以(服务本身不需要联网时)不可以

五、本地还是远程,怎么选

先问一个问题:它真的需要跑在我的电脑上吗?

  • 需要本机资源的,用 stdio:读写本地文件、操作本地浏览器、连只在内网或本机的数据库、调用本机的命令行工具;
  • 只是调用云服务的,用远程服务器:GitHub、Notion、Sentry 这类服务,厂商提供官方远程端点的,用远程的。不用在本机跑一个第三方进程,授权也可以随时在服务方撤销。

本地 MCP 服务器是以你的身份运行的程序。MCP 官方的本地服务器教程里就有这样的提醒:服务器以你的用户账号权限运行,你能手动做的文件操作它都能做。所以本地服务器装得越少越好,安装前的检查见《MCP 服务器怎么选、装之前怎么审》。

六、自己提供 HTTP 服务时的安全要求

规范在 Streamable HTTP 一节有一段安全警告,三条要求:

  1. 服务器必须校验所有传入连接的 Origin 请求头,不合法的返回 403,用来防止 DNS 重绑定攻击;
  2. 在本机运行时,服务器应当只绑定到 127.0.0.1,而不是所有网卡;
  3. 服务器应当为所有连接实现适当的鉴权。

规范解释,不做这些防护的话,攻击者可以通过恶意网页去访问你本机上的 MCP 服务器。用官方 SDK 写服务器时,核对一下这三条是否已经满足。

常见问题

Q:同一个服务器可以两种方式都支持吗?

可以。很多服务器同时提供本地安装和远程端点两种用法;官方 Python SDK 写的服务器也可以通过参数切换传输方式,见《MCP Server 开发入门(Python)》。

Q:SSE 是不是被废弃了?

被取代的是旧的「HTTP+SSE 传输方式」。SSE 作为一种流式响应格式,仍然是 Streamable HTTP 的组成部分。

Q:远程服务器连不上怎么查?

先确认网址和类型对得上(/mcp 配 http、/sse 配 sse);再看是否需要登录授权;最后用 MCP Inspector 直接连一下,排除客户端配置的因素,见《MCP Inspector 怎么用》。

Q:还有别的传输方式吗?

规范允许自定义传输方式,只要保持 JSON-RPC 消息格式和 MCP 的生命周期要求。日常使用碰到的基本只有上面两种。

参考资料

  • Transports(MCP 规范 2025-11-25):https://modelcontextprotocol.io/specification/2025-11-25/basic/transports
  • Inspector v1 → v2 migration(MCP 官方仓库):https://github.com/modelcontextprotocol/inspector/blob/main/docs/v1-to-v2-migration.md
  • Connect to local MCP servers(MCP 官方):https://modelcontextprotocol.io/docs/develop/connect-local-servers
需要开通或续费?Claude Pro 充值 →

Nathaniel 的更多内容

  1. 01

    copilot-instructions.md 怎么写:用途、范例、按路径生效的 instructions 文件与 AGENTS.md 的区别

    copilot-instructions.md 是什么、放哪、怎么写?按 GitHub 官方文档讲清仓库级指令、.github/instructions 下按路径生效的 *.instructions.md(applyTo / excludeAgent)、AGENTS.md 三者的分工,附可改写的中文范例与不生效排查。

    GitHub Copilot0
  2. 02

    Midjourney 可以商用吗:作品归属、商用条件与隐身模式

    Midjourney 生成的图片和视频能不能商用、版权归谁、公司用要什么套餐、作品会不会被别人看到?本文按 Midjourney 服务条款逐条解释,并补充中美对 AI 生成图片版权的官方 / 司法观点。

    其他 AI 工具0
  3. 03

    扣子智能体怎么发布:飞书、微信公众号、小程序、API 等渠道步骤与审核

    扣子智能体怎么发布到飞书、微信公众号、小程序或做成 API?本文按扣子官方文档讲清有哪些发布渠道、打包与两轮审核的流程、首次发布 1–7 个工作日的审核时间、各渠道功能差异,以及发布到豆包这类问题官方文档目前怎么写。

    其他 AI 工具0
  4. 04

    Gemini API Python 调用教程:安装 google-genai SDK、流式输出、多轮对话与传图片

    用官方 google-genai SDK 调 Gemini API:安装配置、第一个请求、系统指令与思考等级、流式输出、多轮对话、传图片和查看 token 用量,按 2026 年 10 月官方默认的 Interactions API 写法。

    Gemini0
  5. 05

    Claude Code Subagents(子代理)怎么用:创建、调用与最佳实践

    Claude Code 子代理是在独立上下文里干活、只交回摘要的专用助手。本文讲内置子代理、怎么创建(.claude/agents)、frontmatter 字段、三种调用方式、指定模型和常见用法。

    Claude0
  6. 06

    ChatGPT 搜索怎么用:联网搜索、查看来源与结果不准怎么办

    ChatGPT 能联网搜索最新信息并附上来源链接。本文按官方帮助中心讲清怎么手动开启搜索、怎么看引用来源、本地结果不准的原因(位置设置)、搜索按钮不见了怎么排查,以及什么时候该用深度研究。

    ChatGPT0

同产品的其他教程

  1. 01

    Arize Phoenix 是什么、怎么用:看大模型应用的调用链路、做评测(安装与上手)

    Arize Phoenix 是什么、怎么使用?按官方 README 讲清它的六项功能、基于 OpenTelemetry 的设计、pip 与 Docker 安装、phoenix serve 本地启动、各个子包的分工、支持哪些智能体框架和模型厂商,以及用它排查「智能体为什么答错」的基本思路。

    其他 AI 工具0
  2. 02

    Claude Code 命令大全:斜杠命令速查与自定义命令

    按用途整理 Claude Code 常用斜杠命令(上下文、模型、会话、审查、并行、配置),并讲清自定义命令怎么写:.claude/commands 与 skills 的关系、$ARGUMENTS 传参。

    Claude0
  3. 03

    DeepSeek上传文件与识图怎么用:支持格式、限制和上传失败的原因

    DeepSeek 能上传哪些文件、图片是「识图」还是只提取文字、上传失败是什么原因?本文按官方界面提示和常见问题讲清支持格式、数量与大小限制、读长文档的提问方法和常见报错。

    其他 AI 工具0
  4. 04

    Docling 使用教程:把 PDF、Word、PPT 转成 Markdown 给大模型用(安装与示例)

    Docling 是什么、怎么用它把 PDF 转成 Markdown?按官方 README 讲清它的来历、支持的输入输出格式、对 PDF 版面和表格公式的理解能力、pip 安装与系统要求、五行 Python 代码和一条命令行的用法、VLM 管线,以及做 RAG 前处理时的注意点。

    其他 AI 工具0
  5. 05

    Claude 数据分析教程:上传 CSV / Excel、做图表与导出结果

    在 claude.ai 里用「代码执行与文件创建」做数据分析:先打开开关,上传 CSV / Excel,让 Claude 清洗数据、做透视和图表、建模,再导出 Excel / Word / PDF 报告。附 8 条可复制的中文提问和安全注意事项。

    Claude0
  6. 06

    AI商品图怎么做:从实拍原图到白底图、场景图、模特图的完整流程

    用 AI 做电商商品图,怎么既好看又不「货不对板」?本文按 OpenAI、Google 官方提示指南整理一套流程:拍好原图 → 抠图白底 → 场景合成 → 模特上身 → 检查细节,附提示词模板,并提醒广告法对商品展示真实性的要求。

    ChatGPT其他 AI 工具0

0 条评论

登录 后参与评论

还没有评论,来抢沙发~