
Amazon Bedrock AgentCore GatewayでMCP 2026-07-28を有効化してみた
はじめに
2026年7月28日、MCPの新仕様 2026-07-28 が公開されました。initialize ハンドシェイクと Mcp-Session-Id が廃止され、各リクエストがプロトコルバージョンやクライアント情報を _meta で自ら示すステートレスな設計になりました。
同日、AgentCore Gatewayがこの 2026-07-28 に対応したことが、AWSブログでも公開されました。
検証用に新規作成した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"] } }
UpdateGateway で 2026-07-28 を追加
UpdateGateway は supportedVersions を指定した値で置き換えます。そのため既存の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-28 の tools/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 になります。ttlMs と cacheScope は、一覧結果をクライアントがキャッシュする際の有効期間と適用範囲を示すフィールドです。
更新後の 2025-11-25 とヘッダー省略時の応答
新版を追加した後に 2025-11-25 で tools/call を実行したところ、HTTPステータスは200で、isError は false でした。
MCP-Protocol-Version を省略して tools/list を送信しても、200でツール一覧が返りました。応答には resultType、ttlMs、cacheScope が含まれておらず、この応答だけではどのバージョンが選択されたか判別できませんでした。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-25 の tools/call は成功しました。
MCP公式ブログは、ステートレス化によってMCPサーバーが通常のHTTP基盤でスケールするようになると説明しています。負荷の変動が課題だったワークロードでは、2026-07-28 への移行が選択肢になります。有効化は UpdateGateway 1回で済むので、ぜひお試しください。
参考リンク
- Amazon Bedrock AgentCore Developer Guide「List available tools in an AgentCore gateway」
- Amazon Bedrock AgentCore Control Plane API Reference「MCPGatewayConfiguration」









