Model Context Protocol の仕様 2026-07-28 が正式公開された。双方向ステートフルからリクエスト/レスポンスのステートレスコアへ変わり、ラウンドロビン負荷分散の背後でも共有セッションなしに任意のインスタンスへリクエストを載せられる。

#移行・破壊的変更

  • initialize / initializedMcp-Session-Id を廃止。各リクエストがプロトコル版・クライアント識別・capabilities を _meta に載せて自己記述する
  • capabilities の事前取得は任意の server/discover RPC。必須のハンドシェイクはない
  • Streamable HTTP では Mcp-MethodMcp-Name ヘッダが必須。ゲートウェイは JSON 本体を解析せずルーティング/認可できる
  • サーバー起点の elicitation / sampling / roots は Multi Round-Trip Requests(MRTR)へ再設計。resultType: "input_required"inputResponses で往復する
  • Dynamic Client Registration(DCR)を正式非推奨にし、Client ID Metadata Documents(CIMD)へ移行する。RFC 9207 の iss 検証やクレデンシャルの issuer 束縛も入る
  • Roots / Sampling / Logging と旧 HTTP+SSE は非推奨。少なくとも 12 か月は動き続ける

セッション状態が必要なアプリは、ツールが明示ハンドルを返し、モデルが引数で持ち回す形に寄せる。

http
POST /mcp HTTP/1.1
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: search

{"jsonrpc":"2.0","id":1,"method":"tools/call",
 "params":{"name":"search","arguments":{"q":"otters"},
 "_meta":{"io.modelcontextprotocol/clientInfo":{"name":"my-app","version":"1.0"}}}}

#その他の変更

  • tools/list 等の一覧応答に ttlMscacheScope が付き、カタログのキャッシュとプロンプトキャッシュの安定化に使える
  • Tasks はコアから io.modelcontextprotocol/tasks 拡張へ移り、tasks/get / tasks/updatesubscriptions/listen を使う
  • MCP Apps や Enterprise Managed Authorization(EMA)も拡張フレームワーク上に載る

#参考文献