觀點 · 資訊分享

GitHub MCP Server 搶先支援 7/28 新規格:連線不再要先「握手」,砍掉 Redis 工作階段

MCP 預定 7/28 發布的新規格把協定核心改成無狀態,拿掉 initialize 握手與 session。GitHub 官方的 MCP 伺服器提前跟上,並說明改版後省掉了哪些資料庫讀寫。

發布
2026-07-23
篇幅
約 4 分鐘 · 1,936 字
結構
8 節 + 3 題常見問題
標籤
#MCP#GitHub#Copilot#無狀態協定
GitHub MCP Server 搶先支援 7/28 新規格:連線不再要先「握手」,砍掉 Redis 工作階段

一句話看懂:新版 MCP 規格預定 7 月 28 日發布,最大的變化是通訊變成「無狀態」;GitHub 官方的 MCP 伺服器已經搶先支援,還順手砍掉了一整套 Redis 工作階段。

GitHub MCP 提前支援新規格資訊圖卡:新版 MCP 拿掉握手與 session,任何伺服器都能接手請求

先用白話講:「有狀態」和「無狀態」差在哪?

MCP 是 AI 工具和外部服務之間的通用插座。舊版的通訊像打電話:先撥過去、說一句「你好,我是某某工具」(這叫 initialize 握手),對方給你一個分機號碼(session 編號),之後每一句話都要先報分機號,而且一定得轉回同一位接線生。

新版像寄明信片:每一張明信片上都寫好寄件人和內容,任何一個櫃台人員拿到都能直接處理,不需要記得你上一次說過什麼。這就是「無狀態」。

發生什麼事

GitHub 在 7 月 23 日的更新日誌說,MCP 協定將在 7 月 28 日改成無狀態,而 GitHub MCP Server 已經搶在正式發布前支援最新規格。

這份規格的內容其實早就公開了:MCP 官方部落格在 5 月 21 日發布「候選版」(Release Candidate),內容鎖定,最終版預定 7 月 28 日發布,中間給 SDK 與客戶端十週的時間驗證。GitHub 表示,官方 SDK 的第一級版本都保留向下相容,也都已推出 beta,所以單純使用者不用另外做什麼。

GitHub 這次改了三件事

改動 白話說明
移除 Redis session 初始化時不用再寫資料庫,每次呼叫也不用讀資料庫,速度更快
不再拆封每個請求 以前為了記錄與機密掃描,得先看請求內容;新規格保證有 HTTP 標頭可讀,就不必逐一拆開
升級登入提示實作 新協定裡每個步驟都是獨立的 HTTP 請求,官方 Go SDK 提供包裝,讓新舊客戶端都能用

新規格還改了什麼?

依官方候選版說明,無狀態是由六項提案一起達成的,另外還有幾個值得注意的地方:

  • 請求要帶 Mcp-Method、Mcp-Name 標頭,閘道與負載平衡器不用拆開內容就能依操作分流
  • 伺服器中途要問使用者(例如確認刪除檔案)時,不再佔著一條長連線,而是回傳「需要輸入」的結果,由客戶端補上答案再重送一次
  • Roots、Sampling、Logging 三項功能被標示為棄用;官方的功能生命週期政策規定,從棄用到最早能移除,至少間隔 12 個月
  • 這次有破壞性變更,例如找不到資源時的錯誤碼從 -32002 改成 JSON-RPC 標準的 -32602

給開發者的技術細節

舊規格要先握手、拿 session 編號;新規格是單一獨立請求(下面是官方範例的簡化版):

POST /mcp HTTP/1.1
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: search
Content-Type: application/json

{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
  "params": { "name": "search", "arguments": { "q": "otters" } } }

版本與客戶端資訊改放在每個請求的 _meta 裡。需要跨呼叫記狀態的服務,改用「明確的代號」:由工具發一個代號(例如購物籃編號)給模型,模型在之後的呼叫自己帶回來。

GitHub 另外提到,MCP 現在有官方的一致性測試套件;把測試套件、草稿規格和任一第一級 SDK 交給 Copilot,AI 輔助改寫時就有嚴格的驗證可以對照。

我的看法

這個改動對「只是用 MCP」的人影響很小,但對「自己架 MCP 伺服器」的人影響很大。以前要擴充到多台機器,就得搭配共用的 session 儲存或固定導向同一台,現在這層麻煩在協定層就消失了,通常也更適合放在無伺服器或一般的負載平衡器後面。

要提醒的是,這是破壞性改版,不是隨便升級的小更新。自己寫了 MCP 伺服器或客戶端的人,我會等 7 月 28 日正式版出來,再對照一致性測試跑一遍,確認再動手,而且記得先看用的 SDK 有沒有支援。GitHub 先把踩過的地方寫成公開說明,這種做法對跟進的人很有幫助。

名詞小辭典

  • MCP(Model Context Protocol):AI 工具與外部服務之間的通用連接規格。
  • Session(工作階段):伺服器為了記住某位使用者而保留的連線狀態資料。
  • Redis:一種常用來暫存資料的高速資料庫,常被拿來存 session。
  • Elicitation(登入或補充資訊提示):伺服器在執行途中,請使用者補充資訊或確認的機制。

資料來源

常見問題

MCP 是什麼?
Model Context Protocol,可以想成 AI 工具(例如 Copilot、Claude)和外部服務之間的通用插座,讓 AI 用統一的方式去呼叫各種工具、讀取資料。
「無狀態」對使用者有什麼差別?
使用者幾乎感覺不到,影響主要在伺服器那一端:不用再記住「這個客人上次連到哪一台」,所以更容易橫向擴充。GitHub 表示拿掉 session 後,初始化時的資料庫寫入與每次呼叫的讀取都不用做了。
我自己架的 MCP 伺服器需要馬上改嗎?
GitHub 的說明是第一級 SDK 都保留了向下相容、也都出了 beta 版,所以不改也能維持支援。但新規格有破壞性變更,建議等 7/28 正式版出來後,對照官方的規格與一致性測試,再決定升級時程。
LINE