🛠Tools🔥🔥

MCP サーバー基盤、MCP 仕様改定によりステートレス化──初期化ハンドシェイク廃止で任意レプリカからの応答が可能に

MCP 仕様が初期化ハンドシェイクとセッション ID ヘッダーを廃止し、ステートレスな単一 POST リクエストへ移行したことで、ロードバランサーによる固定ルーティング設計が不要になった。
リリース: 2026-08-18 · 読了 3

記事の要約

1. 核心(What)

  • 2026-07-28 の MCP 仕様改定により initialize ハンドシェイクと Mcp-Session-Id ヘッダーが廃止された
  • TypeScript SDK 2.0.0 を用いた検証では、単一の POST リクエストでプロトコルバージョン、メソッド、名前を送信し、ステートレスに処理される
  • Google Cloud の 8月5日付けの発表では、ステートレス化によりラウンドロビン配下の Cloud Run や Cloud Functions で 400 Session Not Found エラーが解消されるとしている
  • GitHub の 7月23日付けの MCP Server 変更履歴において、初期化時の Redis 書き込みと毎回の呼び出し時の Redis 読み取りがすでに削除されている

2. 影響(Why)

  • インフラ構成の抜本的な変更: ステートレス化により、Sticky Session(特定のインスタンスへの固定ルーティング)の前提が崩れるため、クラウド上のサーバーレス環境におけるインフラ設計と負荷分散の構成を全面的に再設計する必要がある。
  • 国内 SaaS の運用負荷軽減: MCP サーバーを自社開発している国内のクラウドインテグレーション企業や SaaS ベンダーは、リクエストごとのインスタンス分散に対応した冪等性(Idempotency)の担保が本番運用の必須条件になる。

3. 根拠・詳細(How)

  • TypeScript SDK 2.0.0 による単一 POST 検証: TypeScript SDK 2.0.0 を使用した実機検証において、旧仕様の initialize とセッション ID 取得ステップが省略され、バージョン・メソッド・名前を含む単一の POST リクエストが HTTP 200 と resultType: complete を返す仕組みを確認。
  • Redis 依存の排除とセッションレス化: GitHub の 7月23日付け changelog に記載されている通り、サーバー初期化時の Redis への書き込みと毎回の呼び出し時の Redis 読み取り処理がコードベースから完全に削除され、レプリカ間でのセッション共有が不要になった。

4. 展望・課題(Next)

  • クライアント側のリトライ実装の見直し: ネットワーク切断時に生じる二重書き込みを防ぐため、一意な order_id などの冪等性キーを必須とするサーバー側のバリデーション設計への移行が急務となる。