Amazon Bedrock AgentCore GatewayでMCP 2026-07-28を有効化してみた

Amazon Bedrock AgentCore GatewayでMCP 2026-07-28を有効化してみた

Amazon Bedrock AgentCore GatewayでMCP `2026-07-28` を有効化しました。最小構成の検証用Gatewayを新規作成し、`supportedVersions` に `2026-07-28` を追加しました。`Mcp-Session-Id` なしの `tools/list` が通ること、従来の `2025-11-25` の呼び出しが引き続き成功することを確認しました。
2026.07.30

はじめに

2026年7月28日、MCPの新仕様 2026-07-28 が公開されました。initialize ハンドシェイクと Mcp-Session-Id が廃止され、各リクエストがプロトコルバージョンやクライアント情報を _meta で自ら示すステートレスな設計になりました。

https://blog.modelcontextprotocol.io/posts/2026-07-28/

同日、AgentCore Gatewayがこの 2026-07-28 に対応したことが、AWSブログでも公開されました。

https://aws.amazon.com/jp/blogs/machine-learning/how-agentcore-gateway-supports-the-mcp-2026-07-28-spec/

検証用に新規作成したGatewayで、新仕様の応答を確認しました。

検証内容

検証環境

  • Gateway: 最小構成で新規作成し、認証方式は AWS_IAM
  • MCPターゲット: 検証用に実装したMCPサーバー(AWS Lambda Function URL)

supportedVersions の更新前後

get-gateway で確認すると、更新前は次の2つでした。

{ "mcp": { "supportedVersions": ["2025-03-26", "2025-11-25"] } }

2026-07-28 を追加すると、3版が並びました。

{ "mcp": { "supportedVersions": ["2025-03-26", "2025-11-25", "2026-07-28"] } }

UpdateGateway2026-07-28 を追加

UpdateGatewaysupportedVersions を指定した値で置き換えます。そのため既存の2バージョンも列挙し、2026-07-28 を加えました。

aws bedrock-agentcore-control update-gateway \
  --gateway-identifier "<GATEWAY_ID>" \
  --name "<GATEWAY_NAME>" \
  --role-arn "<GATEWAY_ROLE_ARN>" \
  --protocol-type MCP \
  --protocol-configuration '{
    "mcp": {
      "supportedVersions": ["2025-03-26", "2025-11-25", "2026-07-28"]
    }
  }' \
  --authorizer-type AWS_IAM

セッションなしで 2026-07-28tools/list を実行

ステートレスな呼び出しを確認するため、最初のリクエストとして tools/list を送信しました。initialize は実行せず、Mcp-Session-Id も付けていません。

<GATEWAY_URL> には、get-gateway が返すGatewayのURL(末尾は /mcp)を指定しました。

Mcp-Method ヘッダーは、JSON-RPC本文を解析せずにメソッドを識別するためのものです。2026-07-28 では必須です。tools/call ではツール名を示す Mcp-Name も必要ですが、tools/list では不要です。

クライアント情報とケーパビリティは、各リクエストの _meta で渡します。

POST <GATEWAY_URL>
Content-Type: application/json
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/list

{
  "jsonrpc": "2.0",
  "id": "new-tools-list",
  "method": "tools/list",
  "params": {
    "_meta": {
      "io.modelcontextprotocol/protocolVersion": "2026-07-28",
      "io.modelcontextprotocol/clientInfo": {
        "name": "<CLIENT_NAME>",
        "version": "<CLIENT_VERSION>"
      },
      "io.modelcontextprotocol/clientCapabilities": {}
    }
  }
}

HTTPステータスは200で、ツール一覧を取得できました。応答から抜粋します。

{
  "result": {
    "tools": [{ "name": "<TARGET_NAME>___<TOOL_NAME>", "inputSchema": { "type": "object" } }],
    "resultType": "complete",
    "ttlMs": 0,
    "cacheScope": "private"
  }
}

resultType は応答が完了したかを示し、サーバーが追加入力を求める場合は input_required になります。ttlMscacheScope は、一覧結果をクライアントがキャッシュする際の有効期間と適用範囲を示すフィールドです。

更新後の 2025-11-25 とヘッダー省略時の応答

新版を追加した後に 2025-11-25tools/call を実行したところ、HTTPステータスは200で、isErrorfalse でした。

MCP-Protocol-Version を省略して tools/list を送信しても、200でツール一覧が返りました。応答には resultTypettlMscacheScope が含まれておらず、この応答だけではどのバージョンが選択されたか判別できませんでした。AWSブログでは、ヘッダーを省略したリクエストは既定の 2025-03-26 として扱われると説明されています。

未対応バージョンの応答

サポート外の 2099-01-01 を指定したところ、HTTPステータスは400、error.code-32022 でした。応答は次のとおりです。

{
  "jsonrpc": "2.0",
  "id": "unsupported-version",
  "error": {
    "code": -32022,
    "message": "Unsupported protocol version: 2099-01-01",
    "data": {
      "requested": "2099-01-01",
      "supported": ["2025-03-26", "2025-11-25", "2026-07-28"]
    }
  }
}

まとめ

AgentCore Gatewayでは新旧バージョンを併存させられるため、旧版のクライアントを段階的に新版へ移行できます。実際、新版を追加した後も 2025-11-25tools/call は成功しました。

MCP公式ブログは、ステートレス化によってMCPサーバーが通常のHTTP基盤でスケールするようになると説明しています。負荷の変動が課題だったワークロードでは、2026-07-28 への移行が選択肢になります。有効化は UpdateGateway 1回で済むので、ぜひお試しください。

参考リンク


AI白書2026 配布中

クラスメソッドが独自に行なったAI診断調査をもとに、企業のAI活用の現在地を調査レポートとしてまとめました。企業規模別の活用度傾向に加え、規模を超えてAI活用を進める企業に共通する取り組みまで、自社の現在地を捉えるためのヒントにぜひ。

AI白書2026

無料でダウンロードする

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事