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

    AI 學習路線:零基礎從哪開始,6 個階段、每階段該讀哪幾篇教學(2026)

    AI 學習路線怎麼走?給零基礎的人一條循序漸進的路徑:先選一個助手用順,再學提問,再用進日常工作,按需學做圖做影片,守住私隱與版權,最後進階自動化和編程。每個階段都配了本站對應的教學。

    其他 AI 工具0
  2. 02

    AI 瀏覽器有哪些:Perplexity Comet、Opera Neon、Dia、Brave Leo 與 Edge Copilot 的官方說法對照

    AI 瀏覽器有哪些?按官方頁面整理 Perplexity Comet、Opera Neon、Dia、Brave Leo 和 Edge 裏的 Copilot:官方自述的定位、支持的平台、免費還是訂閱,以及 Gemini、Claude 的 Chrome 方案和已停用的 ChatGPT Atlas。

    其他 AI 工具0
  3. 03

    即夢國際版 Dreamina 是什麼:官方站入口、能生成什麼、免費積分和模型(2026)

    即夢國際版 Dreamina 是什麼?官方站是 dreamina.capcut.com,是一個圖片、影片和數字人一體的 AI 創作平台。按官方首頁和 FAQ 講:能生成什麼、免費用戶每天 120 積分、列出的 Seedance 與 Seedream 模型,以及和國內即夢怎麼區分。

    其他 AI 工具0
  4. 04

    Kimi K3 Coding Plan 是什麼、怎麼用:Kimi Code 會員、模型 ID、套餐價格和額度規則

    Kimi K3 Coding Plan 是什麼?按 Kimi 官方文檔核對:官方現在叫 Kimi Code,是 Kimi 會員權益裏的編程服務,Plus 及以上才有;講 K3 等模型 ID、國內新套餐價格、三種客戶端、第三方工具接入和額度規則。

    Kimi0
  5. 05

    DeepSeek V4 Pro 和 Flash 的區別與 API 價格:官方價格頁逐項對照(高峰與空閒時段)

    DeepSeek V4 Pro 和 Flash 有什麼區別、API 怎麼收費?按 DeepSeek 官方價格頁(2026-10-19 查詢)列出兩個模型的版本、上下文、圖像理解、並發和每百萬 token 價格,說明高峰與空閒時段的計費差別和舊模型名怎麼處理。

    其他 AI 工具0
  6. 06

    GPT-6 Pro(Astra)怎麼用、哪些套餐有:怎麼選到 Pro 檔、用量限制和 Pro 三檔價格

    GPT-6 Pro(Astra)怎麼用、哪些套餐有?按 OpenAI 幫助中心核對:聊天裏 Pro 檔給 Pro 100、Pro 200、Business 和 Enterprise;Plus 在 Work 和 Codex 裏含 Astra。講怎麼選到、用量上限和官方 Pro 價格。

    ChatGPT0

同產品的其他教學

  1. 01

    Claude Pro 和 Max 的區別:用量、價格、Fable 模型和每月 API 額度怎麼選

    Claude Pro 和 Max 有什麼區別?按官方定價頁和幫助中心核對:Max 有 5x、20x 兩檔用量,Pro 與 Max 在價格、Fable 模型、每月 API 額度和計費週期上的差別,以及什麼情況下 Pro 夠用、什麼情況下該升 Max。

    Claude0
  2. 02

    Claude 登入不了、用不了、打不開怎麼辦:按官方幫助中心逐條排查

    Claude 無法登入、無法使用、無法打開怎麼辦?按官方幫助中心的順序排查:收不到登入電郵、登入報錯、Google 登入出問題、系統繁忙、額度用完、官方故障,以及所在地區是否在官方支持名單裏。

    Claude0
  3. 03

    Claude 怎麼註冊:官方註冊流程、手機驗證要求,以及提示無法註冊時官方怎麼說

    Claude 怎麼註冊?打開 claude.ai,用 Google 或電郵登入連結創建帳號,再用支持地區的手機號收短訊驗證碼。講清官方的註冊條件、手機驗證的限制,以及收不到驗證碼、號碼被用過多次時官方的處理辦法。

    Claude0
  4. 04

    Claude 怎麼用:新手入門,從打開聊天到寫出第一個好問題

    Claude 怎麼用?按官方幫助中心整理的新手路徑:在網頁、桌面版或手機 App 打開聊天,像對同事一樣寫需求,用輸入框的「+」和「/」找功能,點模型名換模型,免費版有每 5 小時重置的上限。

    Claude0
  5. 05

    Claude 怎麼設定成中文:介面語言、回答語言和語音語言分別怎麼設

    Claude 怎麼設定中文?官方幫助中心列出的 11 種介面語言裏目前沒有中文,但 Claude 會用你提問的語言回答,直接用中文問即可;想固定用中文,可在設定的 Instructions for Claude 裏寫一句。語音模式的語言要單獨選。

    Claude0
  6. 06

    AI圖片放大與高清修復:Midjourney、ChatGPT、Gemini 怎麼出高解像度圖

    AI 生成的圖不夠清晰,想打印或做大圖怎麼辦?本文按官方文檔講清 Midjourney 的 Subtle / Creative 放大和 HD 直出、Gemini 與 ChatGPT 的解像度選項、Flow 的影片放大,以及「AI 放大會編造細節」的注意事項。

    Gemini其他 AI 工具0

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~