AWS Blog の「Harness the power of MCP servers with Amazon Bedrock Agents」が日本語に翻訳されていたので、実際に動かしながら読みました。
参照:Amazon Bedrock Agents で MCP サーバーを活用する
自分なりの解釈
このブログが言いたいことは、一言でまとめると以下の通り。
Amazon Bedrock Agentsを仲介役として、様々なデータソースにアクセスし、そのデータを生成AIに提供した上で命令できるよ!
ユースケースとして紹介されているのは、以下の流れでした。
-
Amazon Bedrock AgentsがAWS Cost Explorerから直近の利用状況データを取得 -
Perplexity AIなどの生成AIにデータを渡して自然言語での解釈やグラフ化を実行 - ユーザーは「最近7日間の利用コストをグラフにして」などの自然な問合せができる
つまり、データソースと生成AIの間にMCPサーバー+Amazon Bedrock Agentsが入り、自然な形でデータ取得と生成AIへの問合せをコントロールしてくれるという構造です。
これを応用すれば、「コスト削減のために何をすればいいか?」といった分析的な問いにも答えてくれる可能性があります。
実際に動かしてみたログ
1. GitHubリポジトリのクローンと初期準備
- sample-cloud-spend-mcp-server をUbuntuにクローンして利用開始
-
.envファイルを作成する際に、ブログ記載通りでは動かず、AWS_PROFILEの行追加が必要でした
AWS_PROFILE=my-dev
2. モデル指定の落とし穴
ブログでは Amazon Bedrock Agents の基盤モデルに Claude 3.5 Sonnet を利用している。
自分は ap-northeast-1(東京)の Claude 3.5 Sonnet モデルで試したが、エージェント連携が未サポートで動かなかった。
us-east-1 のus.anthropic.claude-3-5-sonnet-20241022-v2:0"モデルを指定することで解決。
3. モデルアクセス有効化
Bedrockの対象モデルは 事前にAWSコンソールのモデルアクセスで「アクセス有効化」しておかないと利用不可。
4. 実行時に発生したエラーと修正
- 引数の型エラー
- MCPサーバー呼び出しのプロンプト型が誤っており、修正が必要
- chatGPTに相談して修正 → 解決
Tool output: Error executing tool get_detailed_breakdown_by_day: 1 validation error for get_detailed_breakdown_by_dayArguments
params
Input should be a valid dictionary or instance of DaysParam [type=model_type, input_value='7', input_type=str]
For further information visit https://errors.pydantic.dev/2.11/v/model_type
- AWSプロファイルの参照エラー
- MCPサーバーのDockerにて
root/.aws/configを参照できない問題 -
config.pyにてhomeディレクトリをroot/.awsにマウントする設定になっていた
~/.awsをroot/.awsにマウントする形に修正 → 解決
- MCPサーバーのDockerにて
Tool output: Error executing tool get_detailed_breakdown_by_day: The config profile (my-dev) could not be found
5. Cost Explorerの利用初回制約
6. Bedrockの利用制限
- Cost Explorerにアクセスできた後、グラフの作成でBedrockの利用制限エラー
- throttlingExceptionと出ていることから、Service Quotasにて利用上限の引き上げ申請
(throttlingException) when calling the InvokeInlineAgent operation: Your request rate is too high. Reduce the frequency of requests. Check your Bedrock model invocation quotas to find the acceptable frequency.'))
今後の展望
今後は実際にCost Explorerのデータが集計された状態で「どこに無駄があるか?」の質問まで試してみたいです。Bedrockの請求額が怖いけど(笑)。
