AWS Common MCP Servers with CDK Deployment について
AWS Location Service、S3、RDS Data API経由のAurora PostgreSQL向けMCPサーバーと、デプロイ用のAWS CDKコードを提供します。MCPでAWSサービスを利用するAI開発者向けです。
主な機能
- 01場所検索、詳細取得、ルート計算
- 02S3バケットとオブジェクトの操作
- 03Data API経由のAurora PostgreSQL SQL実行
- 04CDKによるECS Fargateへのインフラデプロイ
活用シーン
- 01Location Serviceで場所検索やルート計算
- 02S3オブジェクトの一覧、取得、アップロード、削除
- 03Aurora PostgreSQLクラスターへのSQL実行
- 04AWSアカウントへのMCPサービスのデプロイ
MCP 対応
AWS Location Service、S3、Aurora PostgreSQLの操作をMCPクライアント向けのツールとして公開します。AWS CDKコードでサーバー実行用のインフラを構築し、通常はECS Fargateにデプロイします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
AWS Common MCP Servers with CDK Deployment
このプロジェクトでは、一般的な AWS サービス向けにデプロイ可能な Model Context Protocol(MCP)サーバーと、これらのサーバーを実行するために必要なインフラストラクチャ(通常は ECS Fargate 上)をプロビジョニングする AWS Cloud Development Kit(CDK)のコード(Python)を提供します。
AI 開発者(Amazon Bedrock、LangChain などを使用する開発者)が、標準化された MCP インターフェースを通じて AWS サービスと連携するため、AWS アカウントに簡単にデプロイできる再利用可能なコンポーネントを提供することを目指しています。
含まれる MCP サーバー
- AWS Location Service:(TypeScript)場所の検索、場所の詳細取得、ルートの計算などの機能を公開します。aws-location-server をベースにしています。
- Amazon S3:(Python)バケットやオブジェクトの一覧表示、オブジェクトの取得、追加、削除など、基本的な S3 操作のツールを提供します。
- Amazon Aurora PostgreSQL(RDS Data API 経由):(Python)セキュアな RDS Data API を使用して、指定した Aurora PostgreSQL クラスターに対して SQL ステートメントを実行できます。
前提条件
- AWS アカウント
- 適切な権限を持つようにローカルで設定された AWS CLI(CDK のデプロイ用)。認証情報は
~/.aws/credentialsまたは環境変数で設定してください。 - Node.js と npm(Location Service サーバーのビルドプロセスおよび CDK 用)
- Python 3.9 以降(CDK および Python ベースの MCP サーバー用)
- AWS CDK CLI(
npm install -g aws-cdk) - Docker(CDK でコンテナイメージをビルドするため、ローカルで実行中であること)
- Git
Aurora PostgreSQL Data API サーバー固有の前提条件:
- デプロイ先の AWS リージョンで稼働している、既存の Aurora PostgreSQL 互換クラスター。
- クラスターで RDS Data API が有効になっていること。
- クラスターのデータベース認証情報(ユーザー名、パスワード)を格納した AWS Secrets Manager シークレット。デプロイには、このシークレットの ARN が必要です。
プロジェクト構成
aws-mcp-infra/
├── mcp_servers/ # Source code for the MCP servers
│ ├── location_service/ # TypeScript server for AWS Location Service
│ ├── s3/ # Python server for S3
│ └── aurora_pg_data_api/ # Python server for Aurora PG Data API
├── cdk_deployment/ # AWS CDK code (Python)
│ ├── app.py # CDK App entry point
│ ├── cdk.json # CDK configuration
│ ├── requirements.txt # CDK Python dependencies
│ └── aws_mcp_infra/ # CDK Stack definitions
│ ├── __init__.py
│ ├── location_service_stack.py
│ ├── s3_stack.py
│ └── aurora_pg_data_api_stack.py
├── .gitignore
└── README.md # This file
デプロイ
- リポジトリをクローンします:
git clone https://github.com/vAirpower/aws-common-mcp-servers.git cd aws-common-mcp-servers - Aurora の前提条件を設定します(Aurora サーバーをデプロイする場合):
- Aurora PostgreSQL クラスターが存在し、Data API が有効になっていることを確認します。
- データベース認証情報(例:
username、passwordキー)を格納したシークレットを、AWS Secrets Manager に作成します(デプロイ先と同じリージョン)。 cdk_deployment/aws_mcp_infra/aurora_pg_data_api_stack.pyのdb_cluster_arnおよびdb_secret_arn変数を、対象クラスターの ARN と作成したシークレットの ARN に更新します。
- CDK の依存関係をインストールします:
cd cdk_deployment python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt - CDK をブートストラップします(このアカウント/リージョンで CDK を初めて使用する場合):
cdk bootstrap aws://ACCOUNT-NUMBER/REGION # Replace with your AWS account number and region - スタックをデプロイします: すべてのスタックをデプロイします(VPC、クラスター、および 3 つのサービスすべてを作成します)。
または、特定のスタックをデプロイします:cdk deploy --all --require-approval nevercdk deploy LocationServiceMcpStack S3McpStack AuroraPgDataApiMcpStack --require-approval never
デプロイ時に各サーバーの Docker イメージがビルドされ、CDK によって作成された ECR リポジトリにプッシュされ、ECS Fargate サービスがプロビジョニングされます。
使用方法
デプロイ後、MCP サーバーは ECS Fargate サービス内のタスクとして実行されます。デフォルトでは、これらは一般公開されません。通常、操作は AWS 環境内から行います。
- Lambda 関数/Bedrock Agents から: AWS SDK(Python の
boto3など)を使用して ECS タスクを呼び出すか、AWS Systems Manager Session Manager(設定されている場合)経由で操作します。具体的な方法は、クライアントアプリケーションが ECS で実行されている MCP サーバーと通信するよう設計されている方法によって異なります。 - ローカルテスト(要調整): デプロイ前にこれらのサーバーをローカルでテストするには、通常、それぞれの依存関係(
npm installまたはpip install -r requirements.txt)をインストールし、ローカル環境に AWS 認証情報を設定したうえで、サーバーを直接実行します(node build/index.jsまたはpython aurora_pg_data_api_server.py)。Aurora サーバーの場合は、ローカルでDB_CLUSTER_ARNとDB_SECRET_ARNの環境変数も設定する必要があります。
クリーンアップ
デプロイしたすべてのリソースを削除するには、次を実行します。
cd cdk_deployment
source .venv/bin/activate
cdk destroy --all
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。