AI ペルソナ MCP Server 設定ガイド

May 9, 2026 · View on GitHub

AI ペルソナシステムの主要機能(ペルソナ生成、議論シミュレーション、インサイト生成)を MCP ツールとして外部 AI エージェントから利用できるようにする MCP Server オプションの設定ガイドです。

概要

AgentCore Gateway を介して MCP プロトコルのエンドポイントを公開し、Amazon Quick や他の AI エージェントから AI ペルソナシステムの機能をツールとして呼び出せるようにします。

アーキテクチャ

graph LR
    Agent([外部 AI エージェント<br/>Amazon Quick 等]) --> Gateway[AgentCore Gateway<br/>MCP + Cognito M2M]
    Gateway -->|GATEWAY_IAM_ROLE| APIGW[API Gateway<br/>REST API / IAM]
    APIGW -->|VPC Link V2| ALB[Internal ALB]
    ALB --> ECS[Amazon ECS<br/>FastAPI]
  • AgentCore Gateway が MCP プロトコルのエンドポイントを提供し、Cognito M2M(Client Credentials)認証を自動管理します
  • API Gateway Target により、Gateway の IAM ロールで API Gateway を呼び出します(追加の credential provider 不要)
  • API Gateway + VPC Link V2 で Internal ALB に直接接続し、ECS 上の FastAPI アプリケーションの REST API エンドポイントに接続します

利用可能な MCP ツール

ツールエンドポイント処理方式説明
ペルソナ一覧取得GET /api/personas同期保存済みペルソナの一覧を取得
ペルソナ詳細取得GET /api/personas/{id}同期指定ペルソナの詳細情報を取得
ペルソナ生成POST /api/personas/generate非同期テキストデータから AI ペルソナを生成
議論実行POST /api/discussions非同期ペルソナ間の議論を実行
議論結果取得GET /api/discussions/{id}同期議論結果(メッセージ・インサイト)を取得
インサイト生成POST /api/discussions/{id}/insights非同期議論結果からインサイトを生成
インタビュー実行POST /api/interviews同期ペルソナに質問して回答を取得
ジョブステータス確認GET /api/jobs/{job_id}同期非同期ジョブの進捗・結果を確認

ペルソナ生成と議論実行は処理に時間がかかるため、非同期ジョブとして実行されます。ジョブ投入後に返される job_id を使って GET /api/jobs/{job_id} でステータスと結果をポーリングしてください。

前提条件

  • AI ペルソナシステムのメインスタック(AIPersona-{env})がデプロイ済みであること

セットアップ手順

1. パラメータの設定

deploy.sh を使う場合(推奨)

--enable-mcp オプションを付けてデプロイするだけで、パラメータ設定と MCP Gateway のデプロイが自動で行われます。

./deploy.sh --enable-mcp

再デプロイ時(コード更新のみ):

./deploy.sh --skip-memory --skip-cognito --enable-mcp

CDK を直接使う場合

cdk/parameters.tsenableMcpGatewaytrue に設定します。

// 開発環境の例
export const devParameter: AppParameter = {
  // ... 既存設定 ...

  // MCP Gateway設定(AgentCore Gateway)
  enableMcpGateway: true,
};

2. CDK デプロイ

deploy.sh --enable-mcp を使った場合はこのステップは不要です。

メインスタックが未デプロイまたは exportName の追加が必要な場合は、先にメインスタックをデプロイします。

cd cdk
npx cdk deploy AIPersona-dev

次に MCP Gateway スタックをデプロイします。

npx cdk deploy AIPersonaMcp-dev

3. デプロイ出力の確認

デプロイ完了後、以下の出力を確認します。

出力キー説明
GatewayIdAgentCore Gateway の ID
GatewayArnAgentCore Gateway の ARN
ApiGatewayUrlAPI Gateway の URL(VPC Link 経由で ECS に接続)
TokenEndpointUrlCognito トークンエンドポイント URL(M2M 認証用)
UserPoolClientIdCognito User Pool Client ID(M2M 認証用)

Client Secret は AWS コンソールの Cognito → ユーザープール → アプリケーションクライアント → クライアントシークレットを表示 から確認してください。

Gateway の MCP エンドポイント URL は以下の形式です:

https://{GatewayId}.gateway.bedrock-agentcore.{region}.amazonaws.com/mcp

GatewayId は CDK デプロイ時の出力から取得できます。

Amazon Quick との連携

Amazon Quick の MCP 統合機能を使って、AgentCore Gateway の MCP エンドポイントを外部ツールとして登録できます。これにより、Amazon Quick のアシスタントが AI ペルソナシステムの機能をツールとして利用できるようになります。

前提条件

  • Amazon Quick Enterprise サブスクリプションが有効であること
  • AI ペルソナシステムの MCP Gateway(AIPersonaMcp-{env})がデプロイ済みであること

接続情報の準備

MCP Gateway のデプロイ出力から以下の情報を控えておきます。

情報取得元
MCP エンドポイント URLhttps://{GatewayId}.gateway.bedrock-agentcore.{region}.amazonaws.com/mcp
Token URLCDK 出力の TokenEndpointUrl
Client IDCDK 出力の UserPoolClientId
Client SecretAWS コンソール → Cognito → ユーザープール → アプリケーションクライアント → クライアントシークレットを表示

設定手順

  1. Amazon Quick コンソールを開き、Connectors を選択
  2. Create for your team タブを選択
  3. Model Context Protocol (MCP) を選択
  4. 統合の詳細を入力:
    • Name: AI Persona Research
    • Description: Generate customer personas from interview data, simulate multi-persona discussions, and extract structured insights for product planning and marketing strategy
    • MCP server endpoint: https://{GatewayId}.gateway.bedrock-agentcore.{region}.amazonaws.com/mcp
  5. Next を選択
  6. 認証方式で Service authentication (Service-to-Service) を選択
  7. 認証情報を入力:
    • Client ID: CDK 出力の UserPoolClientId
    • Client Secret: Cognito アプリケーションクライアント の Client Secret
    • Token URL: CDK 出力の TokenEndpointUrl
  8. Create and continue を選択
  9. ツール一覧が自動検出されるので、利用するツールを確認して有効化
  10. Next を選択し、必要に応じて他のユーザーと共有

利用例

設定完了後、Amazon Quick のチャットで以下のような指示が可能になります:

  • 「保存されているペルソナの一覧を見せて」
  • 「ペルソナ xxx と yyy で『新商品の価格設定』について議論して」
  • 「このデータをもとにペルソナを生成して」

60 秒タイムアウトへの対応

Amazon Quick の MCP 統合には 60 秒のタイムアウト制限があります。AI ペルソナシステムでは、処理時間が長いペルソナ生成と議論実行を非同期ジョブとして実装しているため、以下のフローで利用します:

  1. ペルソナ生成 / 議論実行のツールを呼び出す → job_id が即座に返る(60 秒以内)
  2. ジョブステータス確認ツールで job_id の進捗を確認 → completed になるまで繰り返す
  3. 結果が result フィールドに含まれる

AI エージェントがこのポーリングパターンを自動的に実行するため、ユーザーは非同期処理を意識する必要はありません。

注意事項

  • ツール一覧は初回登録時に固定されます。MCP エンドポイントの追加・変更後は、統合を削除して再作成してください

MCP ツールの使い方

ペルソナ生成(非同期)

# 1. ジョブ投入
JOB=$(curl -s -X POST "${GATEWAY_URL}/api/personas/generate" \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "data_type": "interview",
    "file_contents": ["インタビュー内容のテキスト..."],
    "count": 3
  }')

JOB_ID=$(echo $JOB | jq -r '.job_id')

# 2. ステータス確認(completed になるまでポーリング)
curl -s "${GATEWAY_URL}/api/jobs/${JOB_ID}" \
  -H "Authorization: Bearer ${TOKEN}"

data_type には以下を指定できます:

  • interview — N1 インタビューテキスト
  • market_report — 市場調査レポート
  • review — レビューデータ
  • purchase — 購買データ
  • other — その他(description で説明を追加)

議論実行(非同期)

# 1. ジョブ投入
JOB=$(curl -s -X POST "${GATEWAY_URL}/api/discussions" \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "persona_ids": ["persona-id-1", "persona-id-2"],
    "topic": "新商品のターゲット層について",
    "mode": "agent",
    "rounds": 3
  }')

JOB_ID=$(echo $JOB | jq -r '.job_id')

# 2. ステータス確認
curl -s "${GATEWAY_URL}/api/jobs/${JOB_ID}" \
  -H "Authorization: Bearer ${TOKEN}"

modeclassic(高速、1-3分)または agent(深い議論、5-15分)を指定できます。rounds(1-10、デフォルト3)で agent モードの議論ラウンド数を制御できます。

インタビュー(同期)

curl -s -X POST "${GATEWAY_URL}/api/interviews" \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "persona_ids": ["persona-id-1"],
    "question": "普段どのような基準で商品を選びますか?"
  }'

インサイト生成(非同期)

# 1. ジョブ投入
JOB=$(curl -s -X POST "${GATEWAY_URL}/api/discussions/${DISCUSSION_ID}/insights" \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "categories": [
      {"name": "顧客ニーズ", "description": "潜在的・顕在的ニーズ"},
      {"name": "市場機会", "description": "新たな市場セグメントや成長領域"}
    ]
  }')

JOB_ID=$(echo $JOB | jq -r '.job_id')

# 2. ステータス確認
curl -s "${GATEWAY_URL}/api/jobs/${JOB_ID}" \
  -H "Authorization: Bearer ${TOKEN}"

categories を省略するとデフォルトカテゴリ(顧客ニーズ、市場機会、商品開発、マーケティング、その他)が使用されます。

MCP Gateway の削除

MCP Gateway が不要になった場合、メインスタックに影響なく削除できます。

cd cdk
npx cdk destroy AIPersonaMcp-dev

削除後、次回の deploy.sh 実行時に --enable-mcp を付けなければ再作成されません。CDK を直接使う場合は parameters.tsenableMcpGatewayfalse に戻してください。

トラブルシューティング

問題対処
CDK デプロイで Export not found エラーメインスタック(AIPersona-{env})を先にデプロイしてください
認証エラー(401)Cognito の Client ID / Secret / Scope が正しいか確認してください
ジョブが failed になるerror フィールドのメッセージを確認。Bedrock のモデルアクセス権限やペルソナ ID の存在を確認してください

参考リンク