Amazon Bedrock AgentCore と Mistral AI Studio を使用した本番環境対応の e コマース MCP サーバーの構築と接続
この記事では、Amazon Bedrock AgentCore と Mistral AI Studio を使用して、本番環境対応の e コマース MCP サーバーを構築し接続する方法を詳しく説明します。MCP ツールの実装、2 層 JWT 認証、AWS CDK によるデプロイ、Mistral AI の Vibe との統合、DynamoDB と Cognito を使用したデータと ID 管理のベストプラクティスをカバーしています。
e コマースチームが AI 搭載の顧客体験を迅速に市場に投入しようとすると、カスタム統合作業に数週間を要し、リリースが遅延し、セキュリティリスクが増大します。本番環境対応の AI アシスタントを構築するには、通常、クライアントごとにカスタム API コード、コンテナインフラの管理、複雑な認証が必要です。Amazon Bedrock AgentCore と Mistral AI Studio はこのプロセスを効率化します。AgentCore Runtime でホストされる MCP サーバーにより、開発者は運用の詳細を気にすることなくビジネスロジックに集中できます。
このチュートリアルでは、e コマース MCP サーバーをゼロから構築して接続する手順を説明します。MCP ツールの実装、2 層 JWT 認証のセットアップ、AWS CDK によるデプロイ、結果を Mistral AI の Vibe に接続します。サーバーは商品検索、注文、レビュー、返品処理をサポートし、データストレージに Amazon DynamoDB、ID 管理に Amazon Cognito を使用します。
Amazon Bedrock AgentCore は、AI エージェントを大規模に構築、接続、最適化するためのプラットフォームです。内部の AgentCore Runtime は、エージェントと MCP ワークロードをホストする完全マネージドのサーバーレスコンポーネントであり、セッション分離、長時間リクエストのサポート、組み込みの JWT 検証、可観測性を提供するため、コンテナやロードバランサー、認証ミドルウェアを管理する必要はありません。このチュートリアルでは、Python と FastMCP を使用して MCP サーバーを構築し、Runtime にデプロイしてマネージドホスティングを実現します。Amazon Cognito は OAuth 2.1 を通じてユーザー ID を管理し、顧客ごとにデータを分離します。MCP を使用すると、複数の AI クライアントが接続できるサーバーを 1 つ作成するだけで、クライアントごとに個別の統合を構築する必要はありません。Mistral AI の Vibe は、Web、iOS、Android 上でユーザーに会話型インターフェースを提供します。
ソリューションアーキテクチャ
ソリューションは 3 つの層で構成されます。
- アプリケーション層:FastMCP ベースの Python MCP サーバーが /mcp エンドポイントで 6 つの e コマースツールを公開し、/health エンドポイントでヘルスチェックを提供します。
- データ層:5 つの DynamoDB テーブルが製品、顧客、注文、レビュー、返品データを保存し、オンデマンド容量で自動スケーリング、グローバルセカンダリインデックスで効率的なクエリをサポートします。
- セキュリティ層:2 層認証によりデータプライバシーを確保。Amazon Cognito が ID プロバイダー、AgentCore Runtime がインフラ層で JWT トークンを検証し、アプリケーション層がユーザー属性を抽出してデータアクセスを認証済み顧客に限定します。
デプロイには AWS CDK を使用し、4 つのインフラスタックを作成します。DynamoDBStack がデータテーブルを作成、CognitoStack がユーザープールと OAuth クライアントを構成、DataLoaderStack が Lambda カスタムリソースでテストデータを投入、AgentCoreRuntimeStack が IAM ロール、ECR リポジトリ、設定パラメータを作成します。
技術実装
MCP ツールの定義では、FastMCP デコレータを使用して Python 関数をツールとして公開します。関数のパラメータ、型ヒント、ドキュメント文字列が自動的にツールスキーマになります。たとえば、get_order_history ツールはまずユーザーが認証されているかを確認し、顧客 ID に基づいて DynamoDB をクエリし、注文データに製品情報を追加して返します。サーバーは http_app(path="/mcp", stateless_http=True) でステートレスに構成され、AgentCore の負荷分散要件を満たします。
2 層認証:AgentCore Runtime がインフラ層で JWT の署名と有効期限を検証し、アプリケーション層が Cognito を呼び出して custom:customer_id 属性を取得し、トークンを特定の顧客 ID にマッピングしてデータの分離を保証します。
デプロイと接続
開発後、agentcore deploy コマンドでサーバーを AgentCore Runtime にデプロイし、.bedrock_agentcore.yaml 設定ファイルで Cognito ユーザープールと許可されたクライアント ID を指定します。デプロイ後、ユーザーは Mistral Vibe にログインし、「最近の注文を表示」などの自然言語リクエストを送信します。AI モデルが適切な MCP ツールを呼び出し、構造化データを返し、最終的に自然言語で応答します。
この記事では、完全な GitHub リポジトリへのリンクも提供しており、すべてのソースコードと詳細な実装手順を確認できます。