[IND] 6 分鐘閱讀OraCore 編輯部

MCP 2026 RC 讓伺服器轉向無狀態 HTTP

4 項 MCP 2026 RC 變更,重點是移除 session、改用標頭路由與新快取控制,伺服器設計要提早調整。

分享 LinkedIn
MCP 2026 RC 讓伺服器轉向無狀態 HTTP

這份清單整理 4 項 MCP 2026 RC 變更,讓你判斷伺服器要先改路由、快取,還是淘汰舊功能。

2026-07-28 的 [Model Context Protocol](https://modelcontextprotocol.io/) release candidate,直接改寫了伺服器的接法。看完這 4 項,你可以決定要不要把服務搬到一般 HTTP 負載平衡器後面、何時移除 session 假設,以及哪些功能要先排進重構。

項目規格 A規格 B規格 C
Session 移除Mcp-Session-Id 刪除initialize 取消任一請求可打到任一實例
標頭路由Mcp-MethodMcp-Name可先於 body 解析前分流
功能退場RootsSamplingLogging
新控制項ttlMscacheScopeTasks、MCP Apps

1. 無狀態化是這次最核心的改動

訂閱 AI 趨勢週報

每週精選模型發布、工具應用與深度分析,直送信箱。不定期,不騷擾。

不會寄垃圾信,隨時可取消。

這版 RC 把協定層的 session 拿掉了,Mcp-Session-Id 不再存在,initializeinitialized 也一起移除。版本與能力資訊改由每次請求的 _meta 帶入,前置能力查詢則交給 server/discover

MCP 2026 RC 讓伺服器轉向無狀態 HTTP

對營運來說,這代表 MCP 可以更自然地放在一般 round-robin load balancer 後面,不必依賴 sticky routing 或共享 session store。對開發者來說,協定狀態不該再拿來放應用狀態,像購物車、瀏覽器狀態或部署句柄,都應該用明確 ID 傳進工具。

  • 協定層不再需要 session affinity
  • 連線前少一次 initialize 往返
  • 應用狀態回到應用層處理

2. 路由改看標頭,不必先讀 body

所有 Streamable HTTP 請求都必須帶 Mcp-MethodMcp-Name。這讓 gateway、load balancer、rate limiter 可以在不緩衝 JSON-RPC body 的情況下先做分流,也讓伺服器能檢查標頭與內容是否一致。

這對基礎設施團隊很直接,因為標頭層 L7 routing 比 body inspection 便宜,也更符合既有 HTTP 工具鏈。像 [Cloudflare](https://www.cloudflare.com/) Workers、API gateway、標準 proxy 都能直接吃這套設計。協定不是變難,而是更像原生 HTTP。

Example headers: Mcp-Method: tools/call Mcp-Name: search_docs

3. Roots、Sampling、Logging 都進入退場路線

SEP-2577 把 Roots、Sampling、Logging 標記為 deprecated,並套用新的生命週期政策。Active、Deprecated、Removed 三階段之間至少隔 12 個月,所以短期內還能用,但遷移工作已經該開始排。

MCP 2026 RC 讓伺服器轉向無狀態 HTTP

Roots 會往明確工具參數、resource URI 或伺服器設定移動;Logging 則會轉向 stdio 的 stderr,或用 [OpenTelemetry](https://opentelemetry.io/) 做結構化觀測。Sampling 最難替換,因為它讓伺服器工具借用客戶端 LLM 做 completions,規格方向是改成直接呼叫模型供應商。

  • Roots:改成顯式輸入或設定
  • Logging:改走 stderr 或 OpenTelemetry
  • Sampling:重構成直接呼叫 LLM API

4. 快取、任務與 App 互動都更清楚了

RC 新增了標準化的 client-side cache 控制,針對 tools/listresources/listresources/read 回應加入 ttlMscacheScope。這讓 client 知道資料多久內算新鮮,也知道快取能不能跨使用者共用。

另外兩個擴充補上常見缺口。Tasks extension 讓長任務回傳 task handle,再用 tasks/get 追蹤;MCP Apps 則讓工具在 sandboxed iframe 裡回傳互動式 HTML,適合 [Claude](https://claude.ai/)、[ChatGPT](https://chatgpt.com/)、[VS Code](https://code.visualstudio.com/) 和 [Goose](https://block.github.io/goose/) 這類 client。

Cache fields: ttlMs: 60000 cacheScope: user

5. 遷移先做這 4 件事

規格說你有 10 週可以調整到最終版,所以實作順序其實很清楚。先移除任何依賴 Mcp-Session-Id 的路由邏輯,再把新標頭補到所有 Streamable HTTP 請求,接著拿普通 round-robin load balancer 測一次。

如果你的 server 目前用了 Sampling 或 Roots,現在就該開 refactor,而不是等到 final spec 才處理。同時替 list 類回應加上 ttlMs,讓 client 能正確快取。RC 的目的,就是在規格鎖定前先把真實工作負載跑過一輪。

  • 刪掉 session-based routing 假設
  • 補上 Mcp-MethodMcp-Name
  • 在標準 load balancer 後驗證
  • 提前規劃 Sampling 與 Roots 替代方案

怎麼挑

如果你管的是 MCP 基礎設施,先處理 session 與標頭,因為它們直接影響路由與可用性。若你是在 MCP 上做工具,優先看 Sampling、Roots、Logging 的退場路線。若你做的是 client,則先處理快取與任務流程,這兩項最能立刻改善效能與體驗。

簡單說,營運團隊先改傳輸假設,平台團隊先補觀測與快取,產品團隊則要盯住 MCP Apps 這種更像應用的互動模型。