
- MCP AppsはMCPを拡張し、AIホスト内で対話型HTMLウィジェットを描画する標準
- AgentCore runtimeがサーバーレスなホスティング、AgentCore Gatewayが単一の公開エンドポイントを担う
- 業務ロジックはMCPを意識せず、既存のLambdaやECS上に残せる設計になっている
発表の概要
Amazon Web Services(AWS)は、Model Context Protocol(MCP)を拡張するMCP Appsと、エージェント基盤Amazon Bedrock AgentCoreを組み合わせ、対話型のHTMLウィジェットをAIホスト内に表示するMCPアプリの構築方法を公開しました。MCP Appsは、テキストだけでなくリッチなUIをAIホスト上で描画するための仕組みです。背景には、ChatGPTやClaudeといったAIホスト経由でサービスを利用する顧客が増え、特定のホストに依存せずに自社サービスを届けたいという企業側のニーズがあります。
記事では、ユニコーンの貸し出しを題材にしたサンプルアプリ「Unicorn Rentals」を使って、動作とデプロイ手順が説明されています。利用者はユニコーンの一覧表示、予約、予約内容の確認、返却という4つの操作を自然言語で行えます。予約や一覧表示では画像や時間単価を含むカードが描画される一方、予約確認と返却はテキストで応答します。すべての要求にリッチな画面が必要なわけではない、という設計意図がうかがえます。
MCP Appsがホストに依存しない標準であるため、ChatGPTでもClaudeでも、対応する他のホストでも同じ見た目と操作感になるとしています。1つのMCPサーバーを用意すれば複数のホストに対応できる点が、この構成の要点です。
構成と2つのフェーズ
サンプルの構成は、MCPサーバーと業務ロジックを分離した形になっています。MCPアプリはAgentCore runtime上で動作し、AgentCore Gatewayが単一のマネージドエンドポイントとして外部のAIホストに公開します。業務ロジックは専用のAWS Lambda関数が担い、データの永続化にはAmazon DynamoDBを使います。ウィジェットが必要とする画像はAmazon CloudFront経由で配信され、配信元はAmazon S3です。
MCPアプリをAIホストに登録する際は、まずMCPサーバーのURLを含むアプリ情報を指定します。AIホストは、AgentCore Gatewayが公開するURLに対してtools/listとresources/listを呼び出し、利用できるツールとリソースを取得します。サンプルではlist_unicorns、book_unicorn、view_bookings、return_unicornというツールと、unicorn-listやbooking-confirmationといったウィジェット用HTMLを返すリソースが用意されています。取得した情報はAIホスト側でキャッシュされる場合があります。
処理は2つのフェーズに分かれます。Phase 1では、AIホストが自然言語の要求をtools/callメッセージに変換してGatewayに送り、GatewayがAgentCore runtime上のMCPアプリを呼び出します。MCPアプリはLambdaに業務処理を委譲し、結果をMCP形式で返します。Phase 2では、ツールに紐づくリソースURIがある場合に限り、AIホストがresources/readを送り、MCPアプリがウィジェットのHTMLを返します。HTMLはサンドボックス化されたiframe内で描画され、ツール応答の構造化データが流し込まれます。
実装のポイント
MCPアプリはTypeScriptで書かれ、公式の@modelcontextprotocol/sdkと、対話型ウィジェットを配信するための拡張@modelcontextprotocol/ext-appsを基盤にしています。AgentCore runtimeが内部で管理するExpress.jsのHTTPサーバーとして動作します。ツールはregisterAppToolで、ウィジェットはregisterAppResourceで登録します。ツール設定の_meta.ui.resourceUriが、応答の表示に使うウィジェットをAIホストに伝える役割を持ちます。
業務ロジックがMCPを意識していない点も重要です。Lambda関数は在庫照会や予約処理をDynamoDBに対して実行するだけで、MCPに関する知識を持ちません。記事では、実際の実装ではAmazon ECSやAmazon EKS上で動く既存サービスをそのまま使えると説明されています。MCPサーバーは薄いプロトコルアダプターとして位置づけられ、既存の業務ロジックをHTTP呼び出しやSDKクライアントなどの標準的な方法で接続する形です。
配備にあたっては、ビルド処理がMCPアプリのコードをzipファイルにまとめ、配備処理がそれをAmazon S3にアップロードしてAgentCore runtimeリソースを作成します。runtimeの設定ではNODE_22環境、エントリーポイント、MCPプロトコルモードを指定します。MCPプロトコルモードを指定することで、MCPサーバー向けの最適化が有効になると説明されています。
認証とセキュリティ
AgentCore runtimeはIAM(SigV4)とOAuthによる呼び出しをサポートします。この構成では、Gatewayが認証なしの受信リクエストを受け、自身のIAM実行ロールでSigV4を使ってruntimeを呼び出します。そのため、呼び出し側がAWS認証情報を扱う必要はありません。runtime側のリソースベースポリシーは、Gatewayの実行ロールだけに呼び出しを許可し、それ以外のプリンシパルを拒否します。
GatewayのエンドポイントはAWS WAFで保護されます。具体的には、IP許可リスト、マネージドの脅威検知ルール、レート制限が適用されると記載されています。外部のAIホストに公開する入り口を1つにまとめ、その手前で検査する構成です。
runtimeはサーバーレスで、受信リクエスト量に応じて自動的にスケールし、セッションが分離される環境として説明されています。基盤の運用をAWS側に任せ、開発者はプロトコルアダプターとウィジェットの設計に集中できるという整理になっています。
デプロイと接続
デプロイは、CDKスタックの構築と配備をまとめて実行する単一のdeploy.shスクリプトで行います。GitHubのリポジトリ(aws-samples/sample-agentcore-mcp-apps)を複製し、スクリプトを実行すると必要なリソースがAWSアカウント上に作成されます。事前準備として、AgentCore runtimeを配備する権限を持つAWSアカウント、AWS CLI V2.0以上、グローバルにインストールしたAWS CDK CLIが必要です。配備後に出力されるGatewayResourceUrlを、AIホストへの接続に使います。
接続手順はAIホストごとに用意されており、リポジトリに詳しいセットアップガイドが含まれるとされています。ChatGPTの場合は開発者モードを有効にし、新しいプラグインとしてUnicornRentalsを登録する流れが示されています。ただし原文ではChatGPT側の設定項目の説明が途中で終わっており、Claudeを含む他ホストの具体的な設定手順は記事内では確認できません。
対応ホストの一覧、利用可能なリージョン、料金に関する記載も原文にはありません。サンプルアプリの動作と構成は具体的に説明されていますが、本番導入を判断するための運用面の情報は、今後の公式ドキュメントの確認が必要です。
| 項目 | ウィジェット付きツール | テキストのみのツール |
|---|---|---|
| ツール例 | list_unicorns、book_unicorn | view_bookings、return_unicorn |
| リソースURI | あり(例: ui://widget/unicorn-list) | なし |
| 応答の形式 | HTMLウィジェットをiframeで描画 | テキストのみ |
| 描画フェーズ | Phase 2を実行 | Phase 2をスキップ |
Because MCP Apps is a host-agnostic standard, the app delivers the same rich experience across AI hosts that support the Apps extension.
MCP Appsはホストに依存しない標準であるため、アプリはApps拡張をサポートするAIホスト間で同じリッチな体験を提供します。
今後の見通し
今後は、MCP Apps拡張に対応するAIホストの広がりが焦点になるとみられます。記事ではChatGPTとClaudeが例示され、対応する他のホストでも同じサーバーが動くとされていますが、具体的な対応ホストの一覧は示されていません。また、AgentCore runtimeとAgentCore Gatewayが利用できるリージョン、料金、サンプル以外のユースケースでの制約が明らかになれば、日本企業が本番導入を判断する材料になると考えられます。公式SDKと@modelcontextprotocol/ext-apps拡張の更新状況も、実装を続けるうえで確認しておきたい点です。
日本の開発者・IT企業にとっての意味
MCP Appsがホストに依存しない標準である点は、日本のIT企業にとって実務上の意味が大きいと考えられます。ChatGPT向け、Claude向けと個別にUIを作り分けるのではなく、MCPサーバーを1つ用意すれば、対応する複数のAIホストで同じ体験を提供できます。AgentCore runtimeはサーバーレスで、リクエスト量に応じて自動的にスケールし、セッションが分離されるため、ホスティング基盤の運用負荷を抑えられます。また、業務ロジックをLambdaや既存のECS・EKSに残したまま、MCP層を薄いアダプターとして後付けできる設計は、既存システムを大きく作り替えずにAIホスト経由の接客チャネルを追加したい企業に向いています。予約や在庫照会のような対話型インターフェースが適用候補として考えられます。
気になる点
- 既存の業務ロジックをそのまま流用できますか
- 記事では、MCPサーバーは薄いプロトコルアダプターであり、中核の業務ロジックは既存の場所に置いたままでよいと説明されています。サンプルではLambdaとDynamoDBを使っていますが、実装によってはAmazon ECSやAmazon EKS上の既存サービスを、HTTP呼び出しやSDKクライアント経由で接続できるとされています。
- 日本でも利用できますか
- 原文にはリージョンや提供地域に関する記載がないため、日本で利用できるかどうかは現時点で判断できません。AgentCore runtimeとGatewayはAWSのマネージドサービスとして説明されており、利用可否はAWS側の提供状況に依存するとみられます。正確な対応リージョンはAWSの公式情報で確認する必要があります。
- コストはどのくらいかかりますか
- 原文には料金の記載がありません。構成にはAgentCore runtime、AgentCore Gateway、AWS Lambda、Amazon DynamoDB、Amazon S3、Amazon CloudFront、AWS WAFが登場するため、実際の費用はこれらの利用量に依存するとみられます。具体的な金額や試算は示されていないため、導入時に個別に確認する必要があります。
用語解説
- MCP
- Model Context Protocol。AIモデルと外部のツールやデータを接続するための標準プロトコル。
- MCP Apps
- MCPを拡張し、AIホスト内で対話型のHTMLウィジェットを描画する仕組み。
- Amazon Bedrock AgentCore
- 任意のフレームワークやモデルでエージェントを構築・接続・最適化するAWSのプラットフォーム。
- AgentCore runtime
- MCPをネイティブにサポートする、サーバーレスでセッション分離されたホスティング環境。
- AgentCore Gateway
- MCP Apps対応ホストが到達できる単一のセキュアなエンドポイントを提供する機能。
- AWS WAF
- Webアプリケーション向けのファイアウォール。IP許可リストやマネージドルールでリクエストを検査する。
出典
Build interactive MCP Apps using Amazon Bedrock AgentCore
AI導入も顧問も、お任せください
何から手をつけるか、どこまでAIに任せるか。自社の業務に合わせて整理し、導入から運用まで伴走します。相談だけでも構いません。
AI導入について相談する