MCP プロトコル契約
エージェントがツールとエージェントサーバーを呼び出すことができるように、モデルコンテキストプロトコル (MCP) を実装するための要件を理解します。
コード例については、AgentCore ランタイムで MCP サーバーをデプロイする」を参照してください。
プロトコル実装要件
MCP サーバーは、以下の特定のプロトコル要件を実装する必要があります。
-
トランスポート: Streamable-http トランスポートが必要です。デフォルトでは、ステートレスモード ()
stateless_http=Trueを使用して、 AWSのセッション管理とロードバランシングとの互換性を確保します。 -
セッション管理: プラットフォームはセッション分離の
Mcp-Session-Idヘッダーを自動的に追加します。ステートレスモードでは、プラットフォームで生成されたMcp-Session-Idヘッダーを拒否しないように、サーバーはステートレスオペレーションをサポートする必要があります。
ヒント
Amazon Bedrock AgentCore は、誘発 (マルチターンユーザーインタラクション) stateless_http=False やサンプリング (LLM 生成コンテンツ) などの機能を有効にするステートフル MCP サーバー () もサポートしています。MCP サーバーが同じツール呼び出し内の複数のリクエストにわたってセッションコンテキストを維持する必要がある場合は、ステートフルモードが必要です。詳細と例については、「ステートフル MCP サーバー機能」を参照してください。
MCP セッション管理と microVM の維持
Model Context Protocol (MCP) は、 Mcp-Session-Idヘッダーを使用してセッション状態とルートリクエストを管理します。MCP の仕様については、「MCP Streamable HTTP Transport
MicroVM の永続性: Amazon Bedrock AgentCore は Mcp-Session-Idヘッダーを使用して、リクエストを同じ microVM インスタンスにルーティングします。クライアントは、レスポンスでMcp-Session-Id返された をキャプチャし、以降のすべてのリクエストに含めて、セッションのアフィニティを確保する必要があります。一貫したセッション ID がないと、各リクエストが新しいmicroVM にルーティングされ、コールドスタートによるレイテンシーが増加する可能性があります。
ステートレス MCP ( stateless_http=True ):
-
プラットフォームは を生成
Mcp-Session-Idし、それを MCP サーバーへのリクエストに含めます。 -
MCP サーバーは、プラットフォームが提供するセッション ID を受け入れる必要があります (拒否しないでください)。
-
プラットフォームは、レスポンスで同じ をクライアント
Mcp-Session-Idに返します。 -
クライアントは、microVM アフィニティの後続のすべてのリクエストにこのセッション ID を含める必要があります。
ステートフル MCP ( stateless_http=False ):
-
クライアントは、
Mcp-Session-Idヘッダーなしで初期化リクエストを送信します。 -
プラットフォームはレスポンス
Mcp-Session-Idで を返します。 -
クライアントは、セッション状態とmicroVM アフィニティの両方の後続のすべてのリクエスト
Mcp-Session-Idにこれを含める必要があります。
ステートフル MCP セッション管理の詳細については、「MCP セッション管理仕様
注記
どちらのモードでも、Amazon Bedrock AgentCore は常にクライアントに Mcp-Session-Idヘッダーを返します。最適なパフォーマンスを得るには、常にこのヘッダーをキャプチャして再利用してください。
コンテナの要件
MCP サーバーは、以下の仕様を満たすコンテナ化されたアプリケーションとしてデプロイする必要があります。
-
ホスト:
0.0.0.0 -
ポート :
8000- MCP サーバー通信の標準ポート (HTTP プロトコルとは異なります) -
プラットフォーム : ARM64 コンテナ - AWS Amazon Bedrock AgentCore ランタイム環境との互換性のために必要です
パスの要件
/mcp - POST
目的
MCP RPC メッセージを受信し、エージェントのツール機能を通じて処理します。標準の MCP RPC メッセージを使用して InvokeAgentRuntime API ペイロードを完全にパススルーします。
レスポンスの形式
JSON-RPC ベースのリクエスト/レスポンス形式。 application/jsonと の両方をレスポンスコンテンツタイプtext/event-streamとしてサポート
ユースケース
/mcp エンドポイントには、いくつかの重要な目的があります。
-
ツールの呼び出しと管理
-
エージェント機能検出
-
リソースのアクセスと操作
-
マルチステップエージェントワークフロー
OAuth 認証レスポンス
OAuth 設定のエージェントは、RFC 6749 (OAuth 2.0)
401 Unauthorized
認可ヘッダーが欠落しているか空の場合に返されます。
レスポンスには WWW-Authenticate ヘッダーが含まれます。
WWW-Authenticate: Bearer resource_metadata="https://bedrock-agentcore.{region}.amazonaws.com/runtimes/{ESCAPED_ARN}/invocations/.well-known/oauth-protected-resource?qualifier={QUALIFIER}"
注記
SigV4-configuredのエージェントはACCESS_DENIEDエラーで HTTP 403 を返し、WWW-Authenticateヘッダーは含まれません。