mcpField
A
AWS Bedrock MCP Client and Server

AWS Bedrock MCP Client and Server

ローカル
github.com/sverzeクラウド・インフラ173 週間前に更新

AWS Bedrock MCP Client and Server について

Amazon BedrockモデルとMCPツールをREST APIで連携させるSpring Bootアプリケーションです。ツールを使うモデルクエリを必要とする用途向けで、API Gatewayの背後にあるAWS Lambdaへデプロイできます。

主な機能

  1. 01REST APIによるAmazon Bedrockクエリ
  2. 02計算と天気のMCPツール
  3. 03ウェブページ取得とMarkdown変換
  4. 04複数ツールを使う複雑なクエリへの対応
  5. 05API Gateway経由のAWS Lambdaデプロイ

活用シーン

  1. 01ツールを使ったBedrockでの数値計算
  2. 02指定地域の天気の取得
  3. 03モデルクエリによるウェブページ要約

MCP 対応

このアプリケーションはMCPクライアントとサーバーを備えます。クライアントはAmazon Bedrockとの対話でMCPツールを利用し、サーバーは計算、天気、ウェブページ取得のツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

AWS Bedrock MCP クライアントとサーバー

ツールを使用できる Amazon Bedrock AI モデルとのやり取りを可能にする、Model Context Protocol(MCP)クライアントとして機能する Spring Boot アプリケーションです。

アプリケーションの概要

このアプリケーションは、次の機能を提供する REST API を実装しています。

  • Amazon Bedrock モデルとの通信
  • 計算、天気情報、Web ページの取得に MCP ツールを使用
  • 複数のツールが必要になる可能性のある複雑な AI クエリへの対応
  • このアプリケーションは API Gateway の背後で AWS Lambda 関数として実行されるため、サーバーレスでスケーラブルです。

前提条件

  • Java 21 以降
  • Maven 3.8+
  • 適切な認証情報を設定した AWS CLI
  • AWS CDK がインストールされていること(npm install -g aws-cdk)
  • https://www.weatherapi.com/my/ で取得した Weather API キー

環境設定

リポジトリのクローン
git clone https://github.com/sverze/aws-bedrock-mcp-client-server
cd aws-bedrock-mcp-client-server
AWS の設定

次のサービスを利用する権限を持つ認証情報が必要です。

  • Lambda
  • API Gateway
  • Bedrock
  • Bedrock モデル Anthropic Sonnet 4.0

ローカル認証情報を設定するには、次のコマンドを実行します。

aws configure
アプリケーションのビルド

このプロジェクトは、マルチモジュールの Maven 構成を採用しています。すべてのモジュールをビルドするには、親ディレクトリで次のコマンドを実行します。

mvn clean package install -DWEATHER_API_KEY=<your_api_key_here>

これにより、すべてのモジュールが正しい順序でビルドされます。

  • aws-bedrock-mcp-server
  • aws-bedrock-mcp-client
  • aws-bedrock-mcp-client-server-cdk
AWS へのデプロイ

AWS のデプロイは AWS CDK を使用して管理します。アプリケーションをデプロイするには、次のコマンドを実行します。

cd aws-bedrock-mcp-client-server-cdk
cdk bootstrap
cdk deploy --context WEATHER_API_KEY=<your_api_key_here>

デプロイが完了すると、CDK によって API Gateway の URL がターミナルに出力されます。 API を操作し、以下のテストを実行するには、この URL が必要です。

API のテスト

デプロイ後、curl または Postman などのツールを使用して API エンドポイントをテストできます。

  1. Hello World エンドポイントをテストする

    curl https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/hello
    

    期待される応答:MCP Client からの Hello World!

  2. 利用可能なツールを一覧表示する

    curl https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/tools
    
  3. 計算を実行する

    curl -X POST "https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/calculate?operation=add&a=5&b=3"
    
  4. 天気情報を取得する

    curl -X POST "https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/weather?location=New%20York&format=celsius"
    
  5. Web ページを Markdown に変換する

    curl -X POST "https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/webpage?url=https://example.com"
    
  6. 複雑なクエリを実行する — 天気

    curl -X POST "https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/query?query=What%20is%20the%20weather%20in%20London%20and%20calculate%2045%20divided%20by%209"
    
  7. 複雑なクエリを実行する — Web ページの要約

    curl -X POST "https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/query?query=Summarise%20the%20following%20webpage%20https://example.com"
    

モニタリングとログ

CloudWatch Logs でアプリケーションログを確認します。

  • AWS CloudWatch コンソールに移動します
  • /aws/lambda/McpClientServerFunction ロググループを確認します

クリーンアップ

デプロイしたすべてのリソースを削除するには、次を実行します。

cd aws-bedrock-mcp-client-server-cdk
cdk destroy

アーキテクチャ

このアプリケーションは、サーバーレスアーキテクチャを実装しています。

  • API Gateway が HTTP エンドポイントとして機能します
  • AWS Lambda が Spring Boot アプリケーションを実行します
  • Amazon Bedrock が AI モデルの機能を提供します
  • MCP サーバーがツールの実装を提供します
  • AWS CDK スタックが、Amazon Bedrock へのアクセスに必要な適切な権限を持つ IAM ロールを含め、必要なすべての AWS リソースを作成して設定します。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。