Model Context Protocol
- The 2026-07-28 Specification - Model Context Protocol Blog
- Key Changes - Version 2026-07-28 (latest) - Model Context Protocol
セッション管理を廃止し、リクエストを自己完結型に
新仕様では、MCPのコアをステートレス化した。これまでStreamable HTTPでは、クライアントとサーバーがinitialize/initializedによる初期化を行い、Mcp-Session-Idを後続のリクエストで引き回していた。今回、この初期化処理とセッションIDを廃止した。各リクエストは、プロトコルのバージョンやクライアント情報、対応機能を持つ自己完結型になる。
サーバーの情報や対応機能を事前に確認するためのserver/も追加された。ただし、クライアントが最初に呼び出すことは必須ではない。各リクエストだけで処理に必要な情報がそろうため、ロードバランサーで振り分けられたリクエストを、どのサーバーインスタンスでも処理できる。これにより、セッション情報を保存・
複数の呼び出しにまたがる情報は、ステートレス化後もアプリケーション側で保持できる。必要な場合は、サーバーがハンドルを発行し、クライアントが後続のツール呼び出しで通常の引数として渡す。こうした情報は、プロトコル層のセッションではなく、アプリケーション層で明示的に扱う設計になった。
MRTRやHTTPヘッダー、キャッシュ制御を追加
ステートレスな通信でも処理の途中でユーザーに確認や追加入力を求められるよう、Multi Round-Trip Requestsinput_の結果を返す。クライアントはユーザーの回答を添え、元のリクエストを再試行する。これにより、双方向の接続を常時維持することなく、処理の途中でユーザーの入力を受け取れる。
Streamable HTTPのPOSTリクエストでは、RPCメソッド名を示すMcp-Methodヘッダーが必須となった。ツールやリソースなどを名前で指定するリクエストでは、Mcp-Nameヘッダーも必要になる。これらのヘッダーを使えば、ゲートウェイやレートリミッター、WAFは、JSON本文を解析せずにルーティングや認可を行える。
tools/やprompts/、resources/などの一覧取得結果には、キャッシュの有効期間を示すttlMsと、共有キャッシュで扱えるかを示すcacheScopeが追加された。クライアントはこれらの情報を使って一覧をキャッシュし、不要な再取得を減らせる。
MCP AppsやTasksを支える拡張機構を正式化
新仕様では、コアプロトコルとは独立して機能を追加・extensionsフィールドで示す。
長時間処理を扱うTasksは、実験的なコア機能から公式拡張のio.へ移った。対話内にインタラクティブなUIを表示するMCP Appsや、組織のIDプロバイダーを通じてMCPサーバーへのアクセスを一元管理するEnterprise-Managed Authorization
認可を強化、RootsやSamplingなどは非推奨に
認可では、OAuth 2.
あわせて、Roots、Sampling、Loggingの各機能と、旧HTTP+SSEトランスポートを非推奨にした。これらは直ちに削除されるわけではなく、少なくとも12カ月の移行期間が設けられる。新規実装では非推奨となった機能やトランスポートを採用せず、既存実装では代替手段への移行を進めるよう推奨されている。
TypeScript、Python、Go、C#のSDKが新仕様に対応
公開時点で、Tier 1に分類されるTypeScript、Python、Go、C#の公式SDKは
新仕様には、初期化処理やセッションIDの廃止など、既存実装の修正が必要になる変更が含まれる。ただし、公式SDKの解説によると、7月28日の公開と同時に既存のクライアントやサーバーが使えなくなるわけではない。SDKを新しいメジャーバージョンへ更新する作業と、新仕様に対応する作業は分かれており、必要な手順もSDKごとに異なる。
MCPのリードメンテナーを務めるDavid Soria Parra氏はXへの投稿で、今回のリリースは個人や企業がともに作り上げたコミュニティーの成果だと強調し、仕様策定に協力した企業としてAnthropic、Google、Microsoft、OpenAIなどを挙げている。
AAIF