
MCP 2026 拆走 session:企業部署少兩層麻煩,舊 client 要逐步搬
initialize 退場,狀態改用明示 handle 跟住每次請求走
MCP 2026-07-28 正式規格喺 7 月 28 日推出,今次改動大過一般加功能:protocol core 直接變成 stateless。對運作 remote MCP server 嘅團隊,最實際係唔使再將每個 client 綁死喺同一部 server,亦唔使額外起共享 session store。Ars Technica 將呢點形容成拆走企業採用嘅主要障礙;講準確啲,佢處理咗橫向擴展嗰堆麻煩,但權限、審計、資料隔離同工具可靠度依然要自己做好。
initialize 同 session ID 一齊退場
舊版 Streamable HTTP 要先跑 initialize/initialized handshake,server 發出 Mcp-Session-Id,之後每個 request 都要帶返同一個 ID。新版改成每次 request 都喺 _meta 帶 protocol version 同 client capabilities,server 亦要實作 server/discover,畀 client 預先查版本同能力。每個 request 都係自足,任何 server instance 收到都可以處理,client 唔再暗中依賴上一個 request 去咗邊部機。

圖片:Wikimedia Commons — DAHAOI Taoh MINGWHUA(CC0)
Load balancer 終於唔使識 MCP 內情
部署層面先係今次最值錢嗰部分。Remote MCP server 可以擺喺普通 round-robin load balancer 後面,唔使 sticky routing,protocol 層亦唔使共享 session store。HTTP request 新增 Mcp-Method 同 Mcp-Name header,gateway 做 routing、限流同觀察流量時,唔使拆 JSON-RPC body。tools/list、resources/list 等結果亦有 ttlMs 同 cacheScope,client 知道可以 cache 幾耐;OpenTelemetry trace context 就放入 _meta,跨 agent、MCP server 同下游 API 嘅追蹤清楚咗好多。
Stateless 唔代表業務本身冇狀態。購物籃、browser、自動化任務呢類跨 request 資料,要由 tool 回傳明示 handle,例如 basket_id,下一次 call 再當普通參數傳返去。呢種做法方便多 instance 接手,亦令 model 睇得見狀態關係,不過開發者要自行處理 handle 權限、到期、撤銷同租戶隔離。MCP 唔再代你收埋狀態,開發者仍然要自己處理相關權限同生命週期。
Agent 要追問,改用 input_required
舊版 server 可以喺處理途中主動向 client 發 elicitation、sampling 或 roots request,新版就改用 Multi Round-Trip Requests。Server 回傳 input_required、要問嘅內容同 requestState,client 收集答案後重送原本 request;第二輪可以落去另一部 instance。requestState 會經 client 手再傳返嚟,所以要當成唔可信輸入,用 HMAC 或 AEAD 保護完整性,最好綁埋登入身分、原本 method、參數同到期時間,唔好將 server 內部狀態裸放入去。
Breaking changes 唔止連線方式
實驗中嘅 Tasks 已搬出 core,變成 io.modelcontextprotocol/tasks extension;新版用 task handle 配合 tasks/get、tasks/update 同 tasks/cancel,亦刪走難以按 session 安全劃分嘅 tasks/list。獨立 HTTP GET stream、SSE resumability、ping、logging/setLevel 同舊 resource subscription 路徑都有改動;變更通知改行 subscriptions/listen。Roots、Sampling、Logging 暫時仲用得,不過已標成 deprecated,新 server 唔宜再靠佢哋設計核心功能。
OAuth/OIDC 亦執緊啲容易出事嘅邊位:client 要核對授權回應入面已有嘅 iss,儲存 credential 時要按 issuer 分開,授權 server 一轉就重新註冊;Dynamic Client Registration 亦要填啱 application_type,免得 CLI 或 desktop client 俾當成 web app,localhost redirect URI 跟住出錯。呢啲強化唔會因為連線變 stateless 就自動生效,現有 auth code 同 token storage 都要逐項檢查。
遷移期間要兼容新舊版本
實務上先盤點 session ID、server 主動 request、SSE 重連、Tasks 同寫死 error code 嘅位置,再將應用狀態搬去明示 handle。Server 最穩陣係同時支援 2025-11-25 同 2026-07-28,client 用版本協商逐步開新版。TypeScript SDK v2 已有 2.0.0 穩定版,但手動建立嘅 client 預設仍行舊 handshake;要設 versionNegotiation: { mode: 'auto' } 先會用 server/discover 探測新版,再向舊 server fallback。換句話講,升 package 唔代表流量已經轉咗新版,上 production 前要用真實 client/server 組合驗證 negotiated era、cache、取消 request 同多輪互動。
參考來源
- Ars Technica — New MCP specification addresses the main barrier to enterprise adoption — original report
- MCP 2026-07-28 stable release — 官方 stable release 記錄,確認規格喺 2026 年 7 月 28 日正式推出。
- MCP 2026-07-28 Key Changes — 官方 changelog,核對 session、handshake、MRTR、Tasks、授權同 deprecated 功能。
- The 2026-07-28 MCP Specification Release Candidate — 官方維護者解釋 stateless 架構、部署差異同設計背景。
- Supporting protocol revision 2026-07-28 — TypeScript SDK 官方遷移文件,確認版本協商、requestState、auth 同 legacy fallback 行為。
- TypeScript SDK server 2.0.0 release — 確認 TypeScript server SDK 2.0.0 已出穩定版,亦已對齊 final wire shape。
本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。







