AWS、MCP 2026-07-28 仕様に合わせた AgentCore Gateway のサポートを発表
AWS は、MCP プロトコルの大規模改訂版である 2026-07-28 仕様のサポートを AgentCore Gateway で開始し、ステートレス化やガバナンス機能の強化を実現した。
AI深層分析を開く2026年7月29日 04:53
AI深層分析
キーポイント
MCP プロトコルの大規模改訂とステートレス化
MCP は従来のセッション管理から HTTP インフラ上でスケーラブルなステートレスプロトコルへ移行し、エンタープライズ展開の課題解決を図っている。
ガバナンスと認証機能の強化
新しいバージョンでは拡張システムのガバナンスが導入され、OAuth 2.0 や OpenID Connect との整合性を高めて認証を強化している。
AgentCore Gateway での実装方法
AWS は UpdateGateway API を呼び出すことで既存のゲートウェイに新仕様を追加可能とし、後方互換性のあるクライアントへの影響はないと明言した。
ステートレス化による水平スケーリングの実現
セッションの削除によりリモートMCPサーバーは標準的なHTTPSエンドポイントとなり、負荷分散におけるスティッキーセッションや共有セッションストアが不要になる。
初期ハンドシェイクの廃止と自己完結型のリクエスト
各リクエストにプロトコルバージョンやクライアント情報が含まれるため、事前の初期化ハンドシェイクが不要となり、単一のツール呼び出しで完全なコンテキストを維持できる。
重要な引用
MCP becomes a stateless protocol that scales on ordinary HTTP infrastructure.
Upgrading is also opt-in, and nothing changes until both you and your clients act.
By removing sessions, remote MCP servers effectively become standard HTTPS endpoints, which scale cleanly with enterprise workloads.
The net effect is that a single tool call is fully self-contained. It requires no prior session context and can be routed to any server instance.
編集コメントを表示
編集コメント
プロトコルのステートレス化は、大規模な AI エージェント連携における信頼性と拡張性を飛躍的に高める転換点となる。AWS の実装方針が示す通り、既存システムへの影響を最小限に抑えつつ新機能を導入できる設計は、現場の運用負担軽減に直結する。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
本日、Model Context Protocol (MCP) が 2026-07-28 仕様の最新版を公開しました。これはプロトコル開始以来、最大かつ最も重要な改訂です。今回のリリースにより、MCP は通常の HTTP インフラ上でスケーリング可能なステートレス・プロトコルへと進化しました。
輸送層の変更に加え、新バージョンでは管理された拡張システムを導入し、OAuth 2.0 と OpenID Connect の企業向けプラクティスに準拠することで認証を強化。また、将来の互換性崩壊を防ぐライフサイクル保証も確立されました。
Amazon Bedrock AgentCore の機能である AgentCore Gateway では、今日から最新のプロトコルを利用可能です。UpdateGateway API を呼び出し、ゲートウェイがサポートするバージョンの一覧を指定するだけで利用開始できます。既存のクライアントはこれまで通り動作し、ターゲットごとの個別設定も不要です。
本稿では、プロトコルのどこが変わり、なぜ変更が必要だったのか、それがエージェントやツールにどのような影響を与えるか、そしてゲートウェイで新バージョンを有効にする方法を解説します。
仕様の変更については既にご存知でしょうか?その場合は、AgentCore Gateway の更新方法 へ直接お進みください。
新しい仕様で何が変わり、なぜ重要なのか
今回のリリースでは、MCP プロトコルに後方互換性のない変更が加えられています。ステートレス化への移行は、エンタープライズ環境でのスケーリング課題に対応するために不可欠な基盤的な変更です。ただし、新バージョンで破壊的変更を導入する頻度が常態化するとは想定されていません。
将来的に後方互換性のある更新を容易にするため、プロトコル仕様には新しいガバナンス強化策が導入されました。具体的には、機能ライフサイクルポリシー、拡張フレームワーク、適合性スイート要件です。これらの強化は、コア機能を損なうことなくプロトコルの進化を支えることを目的としています。
アップグレードもオプトイン制であり、ユーザー側とクライアント側の両方が対応するまで何も変わりません。AgentCore Gateway は、自身がサポートするプロトコルバージョンを単一の設定フィールドを通じて公開します。クライアントは各リクエストでバージョンを選択します。2026-07-28 仕様をサポートするゲートウェイに 2025-11-25 仕様の対応も併せて設定しても、旧バージョンのリクエストを行うクライアントには影響しません。実際に新しい挙動が適用されるのは、2026-07-28 を明示的に指定したリクエストを行ったクライアントのみです。
7 月 28 日になっても何も壊れることはありません。
1. MCP はステートレスになった
以前のバージョンでは、MCP サーバーとの Streamable HTTP 通信はすべて、クライアントとサーバーがプロトコルバージョンや機能仕様を交換する「initialize/initialized」ハンドシェイクから始まっていました。その後、サーバーは「Mcp-Session-Id」ヘッダーを発行し、その後のすべてのリクエストはこの ID を含めることが必須となっていました。
POST /mcp HTTP/1.1
Mcp-Session-Id: 1868a90c-3a3f-4f5b
Content-Type: application/json
Accept: application/json
{"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{"name":"search","arguments":{"q":"otters"}}}
このセッション ID は、クライアントを特定のサーバーに固定する役割を果たしていました。そのため、MCP サーバーを水平方向にスケールさせるには、ロードバランサーで「スティッキーセッション」を設定するか、クラスタ背後に共有セッションストアを用意する必要がありました。
セッションを削除することで、リモート MCP サーバーは実質的に標準的な HTTPS エンドポイントとなり、エンタープライズワークロードに対してクリーンにスケーリング可能になります。プロトコルがステートレスになることで、ハンドシェイクやプロトコルレベルのセッションが必要なくなります(SEP-2575 および SEP-2567 が、これらの要件を新しいプロトコルバージョンから削除しています)。2026-07-28 バージョンでは、すべてのリクエストにプロトコルバージョン、クライアント情報、クライアントの機能が _meta パラメータ内に含まれるため、一度きりの初期化ハンドシェイクが不要になります。サーバーがサポートする機能を学習したいクライアントは、いつでも新しい server/discover メソッドを呼び出すことができます。その結果、単一のツール呼び出しが完全に自己完結型となります。これは事前のセッションコンテキストを必要とせず、任意のサーバーインスタンスにルーティング可能です。
プロトコルセッションを削除しても、ステートフルなアプリケーションへのサポートが排除されるわけではありません。サーバー側で呼び出し間の継続性が必要な場合は、HTTP リクエストにおける確立されたパターンに従い、明示的な ID をツールパラメータとして渡すことで対応できます。この ID は、ご自身のツールのいずれかから取得するべきものです。
POST /mcp HTTP/1.1
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: create_basket
Content-Type: application/json
Accept: application/json,text/event-stream
AgentCore Gateway は、MCP 2026-07-28 仕様に準拠した通信をサポートしています。
例えば、バスケット作成のリクエストは以下の JSON-RPC 形式で行われます。
レスポンスでは、生成されたバスケット ID が返されます。
その後、エージェント自身の機能を活用して、この状態ハンドルを次のリクエストへ引き継ぐことができます。以下は、アイテム追加のリクエスト例です。
POST /mcp HTTP/1.1
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: add_item
Content-Type: application/json
Accept: application/json,text/event-stream
AgentCore Gateway は、エージェントが MCP のセッション機構の多くから保護されるように設計されてきました。AWS Lambda 関数、API、MCP サーバーを単一の MCP エンドポイントの背後に集約し、各ターゲットとのプロトコル会話を代わりに管理します。
2026-07-28 仕様の導入により、両側の処理がさらに簡素化されます。エージェントによる最初のツール呼び出しは、ハンドシェイクと呼び出しを繰り返すものではなく、自己完結型の単一リクエストとなります。各リクエストには Mcp-Protocol-Version ヘッダーが含まれます。ゲートウェイは、指定されたバージョンが supportedVersions に含まれている場合にそのバージョンでリクエストに応答し、含まれていない場合は HTTP 400(エラーコード -32022)とサポートされているバージョンのリストを返して拒否します。ヘッダーを省略したリクエストは、デフォルトで 2025-03-26 を使用します。
2. ボディを解析しないルーティング、キャッシュ、トレーシング
プロトコルの以前のバージョンでは、クライアントとサーバーの間に位置するシステムにとって、リクエストが実行する操作は不明瞭なものでした。ロードバランサー、API ゲートウェイ、レート制限機能はすべて、呼び出されているメソッドを特定するために JSON-RPC のボディを解析する必要がありました。また、サーバーのツールカタログに変更があったことを検知するには、長期間開いた SSE ストリームを維持し、プッシュ通知を待つ必要がありました。
つまり、MCP トラフィックは従来の HTTP インフラストラクチャと親和性が低かったのです。
2026 年 7 月 28 日仕様の策定により、この課題は以下の 3 つの手段で解消されます。
まず、すべての Streamable HTTP リクエストにおいて、その意図が標準的なヘッダーに明示されるようになりました。具体的には、Mcp-Method と Mcp-Name が本文(body)の外側へ移動します(SEP-2243)。これにより、中間サーバーは本文の中身を確認しなくても、HTTP レベルだけでルーティング、スロットリング、使用量の計測が可能になります。もし受信したリクエストで宣言されたヘッダーと本文の内容が矛盾している場合、サーバーは即座にそのリクエストを拒絶します。
次に、リスト操作やリソース読み取りに対するレスポンスには、HTTP の Cache-Control セマンティクスから借用した明確な鮮度メタデータが含まれるようになりました。具体的には ttlMs と cacheScope です(SEP-2549)。これにより、クライアントは永続的な接続を維持して無効化通知を待ち続けることなく、既知の期間とスコープで tools/list 応答をキャッシュできるようになります。
最後に、仕様では _meta フィールド内に W3C Trace Context のキー(traceparent、tracestate、baggage)の使用を予約しました(SEP-414)。これは、複数の SDK がすでに実務で採用していた慣習を正式に規格化したものです。これにより、アプリケーション内で開始された分散トレーシングは、エージェントから MCP クライアント、ゲートウェイを経て下流サービスへとフルパスで伝播し、OpenTelemetry 互換のコレクター上で統一されたスパンツリーとして可視化されます。
2026 年 7 月 28 日仕様のパスでは、AgentCore Gateway はこれらの基本機能を直接提供します。ゲートウェイから返されるすべてのツール結果には、新しい構造化された結果エンベロープが含まれます。また、キャッシュ可能な結果には、準拠したクライアント SDK が利用するための TTL(有効時間)とスコープのヒントも付与されます。
さらに、ゲートウェイはカスタムヘッダーバインディングを強制します。ツールの入力スキーマで特定のフィールドが「ヘッダーバインド済み」とマークされている場合、そのヘッダーが存在しないか、ボディの内容と矛盾するリクエストはすべて拒否されます(HTTP 400、コード -32020)。
永続接続を必要としないサーバーからクライアントへの通信
ステートレスなプロトコルであっても、呼び出し中にサーバーがクライアントに返信する方法が必要です。MCP では、以下の 3 つの対話パターンが定義されています。
- elicitation(要求):サーバーがエンドユーザーに入力を求めるケースです。「このツールは 3 つのファイルを削除しようとしています。確認しますか?」といった問い合わせが行われます。
- roots(ルート):サーバーがファイルシステム内の利用可能なディレクトリやファイルを問い合わせるケースです。
- sampling(サンプリング):サーバーがクライアント側のモデルに対して応答を生成させるケースです。
以前のバージョンでは、これらの要求を配信するために、サーバーはクライアント宛けに SSE ストリームを開きっぱなしにする必要がありました。
最新のプロトコルバージョンでは、サーバーからクライアントへのリクエストは、サーバーがクライアントのリクエストを処理している間のみ許可されます(SEP-2260)。ユーザーが表示するすべてのプロンプトは、自分自身またはエージェントが開始した何かに遡ります。また、多ラウンドトリプリクエスト(SEP-2322)が、従来の長期間接続されたストリームに取って代わりました。
ここでは、サーバーは質問を InputRequiredResult に埋め込み、状態管理を SSE を介して直接押し付けるのではなく、不透明な requestState トークンを通じて外部化します。エリシテーション(elicitation)またはサンプリング入力を宣言したツールのみが、クライアント側でそのサポートが宣言されている場合に限り、多ラウンドトリプの交換を開始します。
{
"resultType": "input_required",
"inputRequests": {
"confirm": {
"method": "elicitation/create",
"params": {
"mode": "form",
"message": "Delete 3 files?",
"requestedSchema": {
"type": "object",
"properties": {
"confirm": {
"type": "boolean"
},
"required": ["confirm"]
}
}
}
},
"requestState": "eyJzdGVwIjoxLCJmaWxlcyI6WyJhIiwiYiIsImMiXX0="
}
}
クライアントはユーザーの回答を収集し、レスポンスと requestState を含めて元の呼び出しを再発行します。サーバーが必要とする情報はすべてペイロードに含まれているため、どのサーバーインスタンスでもこのリトライを引き継ぐことが可能です。
また、進捗通知とログ配信もリクエストスコープに限定されました。ゲートウェイは、クライアントが元の要求に進捗トークンを付与した場合のみ進捗更新を中継し、クライアントが個別のリクエストメタデータで io.modelcontextprotocol/logLevel を設定した場合のみログメッセージを配信します。
4. コア仕様の拡張機能との分離
これまで MCP の拡張機能は、明確な管理機構を持たない非公式な概念でした。SEP-2133 がその枠組みを導入します。各拡張機能には逆 DNS 形式の ID が付与され、クライアントとサーバーの能力マップを通じてネゴシエーションされます。また、委任されたメンテナーが管理する専用リポジトリに格納され、コア仕様とは独立したリリースサイクルに従います。
SEP プロセス内に新設された「拡張機能トラック」により、実験段階から公式認定に至るまでの手順が定義されました。これによりプロトコルの成長プロセスが変化します。新たなアイデアがすべてコア仕様のスペースを争い、破壊的なバージョンアップを強要するのではなく、機能は各自のタイムラインでオプトイン型の拡張機能として成熟できるようになります。特定の拡張機能をネゴシエーションしないクライアントやサーバーへの影響はありません。
5. 認証の強化
MCP の認証仕様は、6 つの SEP(Standard Enhancement Proposal)によって、本番環境での OAuth 2.0 や OpenID Connect の運用にさらに近づけられました。プロトコルバージョンが更新されても、ゲートウェイへの入側認証(IAM の SigV4 または OAuth/JWT)や、出側の資格情報プロバイダーの設定に変更はありません。つまり、プロトコルバージョンをアップグレードしても、資格情報や認証設定を変更する必要はないのです。
6. エラー処理と非推奨機能の整理
以前のプロトコルバージョンでは、転送レベルの障害を含むほぼすべてのエラーが HTTP 200 で返され、詳細は JSON-RPC のボディ内に格納されていました。しかし、2026-07-28 バージョンでは、転送層とアプリケーション層が明確に分離されました。転送障害には実際の HTTP ステータスコードが返され、アプリケーションレベルの結果のみがボディ内に記述されます。
状況別対応
| 状況 | 2025-* バージョン | 2026-07-28 バージョン |
|---|---|---|
| 不明なメソッド | ボディ内の JSON-RPC エラー、HTTP 200 | HTTP 404 |
| サポートされていないプロトコルバージョン | 状況による | HTTP 400(コード -32022)。ボディにサポート対象のバージョン一覧を記載 |
| ヘッダーバインドフィールドの欠落または不一致 | 状況による | HTTP 400(コード -32020) |
| 必須クライアント機能の不足 | 該当なし | コード -32021 |
これらの変更は、エラーレスポンスを検証するコードにおいてのみ影響を及ぼします。これにより、HTTP レベルの監視、アラート、リトライロジックが、ルーティングの問題とアプリケーションレベルの問題を、ボディを解析することなく区別できるようになります。
また、仕様では「*resource not found*」エラーコードを MCP 固有の -32002 から、JSON-RPC の標準である -32602(Invalid Params)へ再割り当てしています。詳細は SEP-2164 を参照してください。もしクライアント側でどこかで -32002 にマッチする処理がある場合は、そのコードパスを精査する必要があります。
さらに、2026-07-28 の仕様以降では logging/setLevel が廃止され、これを呼び出すクライアントは拒絶されます。ログ配信を利用したい場合は、リクエストごとのメタデータフィールド io.modelcontextprotocol/logLevel を設定してください。
プロトコルの新しい機能ライフサイクルポリシー (SEP-2577) に基づき、以下の 3 つの主要機能が非推奨となります。
- Roots: ツールパラメータ、リソース URI、またはサーバー設定に置き換えられます。
- Sampling: LLM プロバイダー API との直接統合に置き換えられます。
- Logging: stdio トランスポートでは標準エラー出力(stderr)へ、構造化可観測性には OpenTelemetry へ置き換えられます。
これらの非推奨は勧告的なものです。今回のリリースおよびその公開から 12 ヶ月以内に発表される仕様バージョンにおいて、関連するメソッド、型、機能フラグは引き続き動作します。ただし、新規実装ではこれらに依存しないことを強く推奨します。
7. スキーマサポート
ツール入力スキーマと出力スキーマは、現在 JSON Schema 2020-12 の完全な語彙をサポートするようになりました(SEP-2106)。入力スキーマは引き続き type: "object" をルート要件として維持しつつ、合成キーワード(oneOf, anyOf, allOf)、条件分岐、内部参照($ref, $defs)が追加されました。出力スキーマにはルートの型制限はなく、structuredContent は有効な JSON 値であれば何でも受け付けます。
実装側では、外部の $ref URI を自動的に追従してはならず、検証時には深度と時間の制限を設ける必要があります。
アップデート適用の判断基準
新バージョンを有効化する前に、以下の3つの問いに答えてください。
クライアントは準備できていますか?エージェントは MCP クライアント SDK を通じて Gateway に接続されます。使用するエージェントフレームワークやホストアプリケーションが、2026-07-28 仕様のサポートを含む SDK をすでにリリースしているか確認してください。Tier 1 の SDK は、10 週間のリリース候補期間中にサポートを提供することが想定されており、主要なスタックの多くは現在対応済みです。最新の Tier リストについては MCP SDK ドキュメントをご覧ください。本番環境の Gateway でこの仕様を謳う前に、2026-07-28 をサポートするクライアントでテストを行ってください。
実行中のシステムが削除または変更された挙動に依存していませんか?以下の項目について監査を実施してください。アプリケーションの状態を伝達するために使用されるプロトコルセッション、ログ出力やレベル設定(logging/setLevel)、リテラルなエラーコード -32002 にマッチするクライアントコード、そして Roots、Sampling、Logging への依存です。
ツールでelicitation や sampling を利用している場合、2026-07-28 ではこれらが永続的なセッションではなく、新しいリクエストごとのメカニズムを通じて Gateway で処理される点に注意してください。クライアントが対応する機能を宣言しているか確認してください。これを省略したクライアントはエラーコード -32021 で拒否されます。
両側のバージョンを制御する必要がありますか?必ずしも必要ではありません。バージョンの選択はリクエスト単位で行われるため、デュアルバージョン構成の Gateway は新旧のクライアントを同時にサポートできます。クライアントと Gateway のアップグレードは独立したスケジュールで、どちらの順序でも実施可能です。
詳細については、MCP 2026-07-28 仕様書、および 2025-11-25 版との変更点(changelog)をご覧ください:https://modelcontextprotocol.io/specification/2026-07-28/changelog
原文を表示
Today, the Model Context Protocol (MCP) published its 2026-07-28 specification, the largest and most significant revision of the protocol since its launch. With this release MCP becomes a stateless protocol that scales on ordinary HTTP infrastructure. Alongside the transport changes, this new version introduces a governed extensions system, strengthens authorization by aligning more closely with enterprise practices for OAuth 2.0 and OpenID Connect, and establishes lifecycle guarantees that limit future breakage.
You can start using the latest protocol on your AgentCore Gateway, a capability of Amazon Bedrock AgentCore, today by calling UpdateGateway with the list of versions you want your gateway to support. Existing clients keep working exactly as before, and there is no per-target step. In this post, we walk through what changed in the protocol and why, what it means for your agents and tools, and how to enable the new version on your gateways.
Already familiar with the spec changes? Jump straight to Updating your AgentCore Gateway.
What changes with the new spec and why it matters
This release contains backward-incompatible changes to the MCP protocol. The transition to statelessness is a foundational change that protocol maintainers believe is necessary to address scaling challenges with enterprise deployments. The introduction of breaking changes with new versions, however, is not expected to be the norm. To help facilitate backward-compatible updates in future revisions, maintainers have introduced new governance enhancements to the protocol specification (a feature lifecycle policy, an extensions framework, and a conformance-suite requirement). These enhancements are designed to support protocol evolution without breaking core capabilities.
Upgrading is also opt-in, and nothing changes until both you and your clients act. AgentCore Gateway advertises the protocol versions it speaks through a single configuration field. Clients select a version on every request. Adding 2026-07-28 to a gateway that also advertises 2025-11-25 does not change anything for clients that request the older version. Only a client that requests 2026-07-28 gets the new behavior. Nothing breaks on July 28.
1. MCP is now stateless
In prior versions of the protocol, every Streamable HTTP interaction with an MCP server began with an initialize/initialized handshake, in which the client and server exchanged protocol versions and capabilities. The server then issued an Mcp-Session-Id header that every subsequent request was required to carry:
POST /mcp HTTP/1.1
Mcp-Session-Id: 1868a90c-3a3f-4f5b
Content-Type: application/json
Accept: application/json
{"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{"name":"search","arguments":{"q":"otters"}}}That session pinned the client to the server that issued it. Therefore, to scale an MCP server horizontally, operators needed sticky sessions at the load balancer, a shared session store behind the fleet, or both.
By removing sessions, remote MCP servers effectively become standard HTTPS endpoints, which scale cleanly with enterprise workloads. As the protocol becomes stateless, the handshake and the protocol-level session are both no longer needed (SEP-2575 and SEP-2567 remove these requirements from the new protocol version). With 2026-07-28, every request now carries protocol version, client info, and client capabilities inside its _meta parameter, eliminating the need for a one-time initialization handshake. Clients that need to learn what a server supports can call the new server/discover method at any point. The net effect is that a single tool call is fully self-contained. It requires no prior session context and can be routed to any server instance. Removing the protocol session does not preclude support for stateful applications. When servers need continuity across calls, you can follow established patterns for HTTP requests by passing an explicit ID as a tool parameter, which should come from one of your own tools.
POST /mcp HTTP/1.1
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: create_basket
Content-Type: application/json
Accept: application/json,text/event-stream
{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"create_basket","arguments":{},
"_meta":{"io.modelcontextprotocol/clientInfo":{"name":"my-app","version":"1.0"}}}}Response:
{"jsonrpc":"2.0","id":1,
"result":{"resultType":"complete","content":[{"type":"text","text":"Created basket bsk_a1b2c3"}],"structuredContent":{"basket_id":"bsk_a1b2c3"},"isError": false}}You can then use the agent’s own capabilities to thread this state handle through subsequent requests:
POST /mcp HTTP/1.1
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: add_item
Content-Type: application/json
Accept: application/json,text/event-stream
{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"add_item","arguments":{"basket_id": "bsk_a1b2c3", "sku": "shoes"},
"_meta":{"io.modelcontextprotocol/clientInfo":{"name":"my-app","version":"1.0"}}}}AgentCore Gateway has always shielded agents from much of MCP’s session mechanics. It aggregates your AWS Lambda functions, APIs, and MCP servers behind a single MCP endpoint and manages the protocol conversation with each target on your behalf. With 2026-07-28, that gets simpler on both sides: an agent’s first tool call is one self-contained request rather than a handshake followed by a call. Each request carries an Mcp-Protocol-Version header. The gateway serves the request in that version when the version appears in supportedVersions, or rejects it with HTTP 400 (code -32022) and a list of supported versions when it does not. Requests that omit the header default to 2025-03-26.
2. Routing, caching, and tracing without parsing the body
In prior versions of the protocol, the operation a request performed was opaque to anything sitting between client and server. Load balancers, API gateways, and rate limiters all had to parse the JSON-RPC body to determine what method was being called. Detecting changes to a server’s tool catalog meant holding a long-lived SSE stream open and waiting for a push notification. MCP traffic, in short, did not play well with standard HTTP infrastructure.
2026-07-28 closes that gap in three ways. First, every Streamable HTTP request now surfaces its intent in standard headers: Mcp-Method and Mcp-Name (SEP-2243) travel outside the body, giving intermediaries enough information to route, throttle, and meter at the HTTP layer alone. A server that receives a request where the declared headers contradict the body rejects it outright. Second, responses to list and resource-read operations now include explicit freshness metadata, ttlMs and cacheScope, borrowed from the semantics of HTTP Cache-Control (SEP-2549). Clients can cache a tools/list response for a known duration and scope without maintaining a persistent connection only to watch for invalidations. Third, the spec now reserves the W3C Trace Context keys (traceparent, tracestate, baggage) inside _meta (SEP-414), formalizing what several SDKs had already adopted in practice. A distributed trace originating in your application can now propagate through the full call chain, from agent to MCP client to gateway to downstream service, and render as a unified span tree in any OpenTelemetry-compatible collector.
On the 2026-07-28 path, AgentCore Gateway surfaces these primitives directly. Every tool result from your gateway carries the new structured result envelope, and cacheable results include TTL and scope hints for conformant client SDKs. The gateway also enforces the custom-header binding: when a tool’s input schema marks a field as header-bound, the gateway rejects any request whose header is absent or contradicts the body (HTTP 400, code -32020).
3. Server-to-client interactions without persistent connections
A stateless protocol still needs a way for a server to talk back to the client mid-call. MCP has three such interactions: elicitation, where the server asks the end user for input (“this tool is about to delete three files. Confirm?”), roots, where the server asks for available directories and files in the filesystem, and sampling, where the server asks the client’s model to generate a response. In previous versions, delivering these requests meant the server held an SSE stream open back to the client.
With the latest protocol version, server-initiated requests are now only permitted while the server is actively processing a client request (SEP-2260). Every prompt a user sees traces back to something they or their agent started. Multi Round-Trip Requests (SEP-2322) replace the previous long-lived stream. Here, the server embeds questions in an InputRequiredResult and externalizes state through an opaque requestState token rather than pushing a question over SSE. Only tools that declare elicitation or sampling inputs trigger the multi-round-trip exchange, and only when the client advertises support for it.
{
"resultType": "input_required",
"inputRequests": {
"confirm": {
"method": "elicitation/create",
"params": {
"mode": "form",
"message": "Delete 3 files?",
"requestedSchema": {
"type": "object",
"properties": {
"confirm": {
"type": "boolean"
},
"required": ["confirm"]
}
}
}
},
"requestState": "eyJzdGVwIjoxLCJmaWxlcyI6WyJhIiwiYiIsImMiXX0="
}
}Clients collect the user’s answers and re-issue the original call with the responses and the requestState. Everything the server needs is in the payload, so any server instance can pick up the retry.
Separately, progress notifications and log delivery are now request-scoped. The gateway relays progress updates only when the client supplies a progress token on the originating request, and delivers log messages only when the client sets io.modelcontextprotocol/logLevel in per-request metadata.
4. Decoupling extensions from the core spec
Until now, MCP extensions were an informal concept with no governance behind them. SEP-2133 introduces one. Each extension carries a reverse-DNS ID, is negotiated through an extensions map in client and server capabilities, lives in a dedicated repository under delegated maintainers, and follows its own release cadence independent of the core spec. A new Extensions Track within the SEP process defines how an extension graduates from experimental to official status, which changes how the protocol grows. Rather than every new idea competing for space in the core specification and forcing a breaking version bump, capabilities can now mature as opt-in extensions on their own timelines. Clients and servers that do not negotiate a given extension are unaffected.
5. Authorization hardening
Six SEPs bring MCP’s authorization specification into closer alignment with production OAuth 2.0 and OpenID Connect deployments. Your gateway’s inbound authorization, whether IAM (SigV4) or OAuth/JWT, is unchanged by the protocol version. So are your outbound credential providers. Upgrading the protocol version does not require changing credentials or authorizer configuration.
6. Error handling and deprecations
On earlier protocol versions, nearly everything came back as HTTP 200 with an error tucked inside the JSON-RPC body, including transport-level failures. On 2026-07-28, the transport and application layers are cleanly separated. Transport failures return real HTTP status codes. Application-level outcomes stay in the body:
Situation
2025-* versions
2026-07-28
Unknown method
In-body JSON-RPC error, HTTP 200
HTTP 404
Unsupported protocol version
Varies
HTTP 400, code -32022. Body lists supported versions
Header-bound field absent or mismatched
Varies
HTTP 400, code -32020
Missing required client capability
Not applicable
Code -32021
These changes only matter for code that inspects error responses. They let your HTTP-level monitoring, alarming, and retry logic distinguish routing problems from application-level issues without parsing the body. The spec also reassigns the “*resource not found*” error code from the MCP-specific -32002 to JSON-RPC’s standard -32602 Invalid Params (SEP-2164). If your client matches on -32002 anywhere, audit those code paths. Additionally, on the 2026-07-28 path: logging/setLevel is retired, and a client that calls it is rejected. To opt into log delivery, you can set the per-request metadata field io.modelcontextprotocol/logLevel instead.
Three core features are deprecated under the protocol’s new feature lifecycle policy (SEP-2577): Roots (replaced by tool parameters, resource URIs, or server configuration), Sampling (replaced by direct integration with LLM provider APIs), and Logging (replaced by stderr for stdio transports and OpenTelemetry for structured observability). These deprecations are advisory. The methods, types, and capability flags remain functional in this release and in any specification version published within twelve months of it. However, we highly recommend that new implementations not take a dependency on them.
7. Schema support
Tool inputSchema and outputSchema now support the full JSON Schema 2020-12 vocabulary (SEP-2106). Input schemas retain the type: "object" root requirement but gain composition keywords (oneOf, anyOf, allOf), conditionals, and internal references ($ref, $defs). Output schemas have no root-type restriction, and structuredContent may be any valid JSON value. Implementations must not follow external $ref URIs automatically and should enforce depth and time limits during validation.
Deciding if you’re ready to update
Work through three questions before you enable the new version:
- Are your clients ready? Your agents reach Gateway through MCP client SDKs. Check that the SDKs your agent frameworks and host applications use have shipped 2026-07-28 support. Tier 1 SDKs were expected to ship support during the ten-week release candidate window, so most mainstream stacks are ready today. See the MCP SDK documentation for the current tier list. Test clients that support 2026-07-28 before you advertise it on a production gateway.
- Does anything you run depend on removed or changed behavior? Audit for: protocol sessions used to carry application state, logging/setLevel, client code matching the literal -32002 error code, and any dependence on Roots, Sampling, or Logging. If your tools use elicitation or sampling, note that the gateway carries these through a new per-request mechanism on 2026-07-28 rather than a persistent session. Confirm your clients declare the matching capability. A client that omits it is rejected with code -32021.
- Do you control both sides? You don’t need to. Version selection happens per request, so a dual-version gateway serves old and new clients simultaneously. You can upgrade clients and the gateway on independent schedules, in either order.
For the full details, see the MCP 2026-07-28 specification the changelog against 2025-11-25, and the
AI算出
主要ニュースainew評価高い
AI エージェント運用基盤である MCP プロトコルの最新仕様と、AWS AgentCore Gateway の対応は、開発者にとって具体的な実装・移行が必要な重要ニュースであるため、新規性と関連性を高く評価した。ただし、日本固有の企業事例や規制情報は含まれていないため、日本の関連性は低めとした。
6つの評価軸を見る
- AI関連度
- 75
- 情報源の信頼性
- 100
- 新規性
- 75
- 調べる価値
- 75
- 重複の少なさ
- 100
- 日本での有用性
- 25
関連記事
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み