AWS Documentation MCP Server をリモート化し、Claude.ai から HTTP 経由で利用できるようにするプロジェクトです。
このプロジェクトは、AWS Documentation MCP Server を AWS App Runner と Lambda Function URL を使用してリモートホストします。自動起動・停止機能により、使用時のみ課金される仕組みになっています。
Claude.ai (Client)
↓ (HTTP POST)
Lambda Function URL (auto_resume)
↓ (Proxy)
App Runner (Supergateway + AWS Docs MCP Server)
↑
EventBridge (定期実行) → Lambda (auto_pause) ← CloudWatch Metrics
-
App Runner
- Supergateway (stateful モード) + AWS Documentation MCP Server
- Docker コンテナでホスト
- 自動スケーリング対応
-
Lambda Function (auto_resume)
- Function URL で HTTP リクエストを受信
- App Runner へリクエストをプロキシ
- App Runner が停止中の場合は自動起動
-
Lambda Function (auto_pause)
- EventBridge で定期実行(5分ごと)
- CloudWatch Metrics から過去5分間のリクエスト数を確認
- リクエストがなければ App Runner を停止
-
CloudWatch Metrics
- App Runner の
Requestsメトリクスを監視
- App Runner の
-
AWS CDK (Python)
- 全リソースをコード管理
supergateway-aws-document-server/
├── README.md
├── CLAUDE.md # プロジェクト仕様書
├── Dockerfile # Supergateway + AWS Docs MCP
├── .gitignore
├── app.py # CDK app entry point
├── cdk.json
├── requirements.txt # CDK dependencies
├── requirements-dev.txt
├── stacks/
│ ├── __init__.py
│ ├── config.py # 設定ファイル
│ └── aws_docs_mcp_stack.py # メインスタック
└── lambda/
├── auto_resume/
│ ├── lambda_function.py
│ └── requirements.txt
└── auto_pause/
├── lambda_function.py
└── requirements.txt
# Python 3.11 以上
python --version
# AWS CLI の設定
aws configure
# AWS CDK CLI のインストール
npm install -g aws-cdk
# Docker のインストール(Docker Desktop など)
docker --version# Python 仮想環境の作成
python -m venv .venv
# 仮想環境の有効化
source .venv/bin/activate # macOS/Linux
# または
.venv\Scripts\activate # Windows
# 依存関係のインストール
pip install -r requirements.txtcdk bootstrap# スタックのデプロイ
cdk deploy
# 確認プロンプトで "y" を入力デプロイが完了すると、以下の情報が出力されます:
AutoResumeFunctionUrl: Lambda Function URL(Claude.ai で使用)AppRunnerServiceUrl: App Runner の URL- その他の ARN 情報
デプロイ完了後、Claude.ai の MCP 設定に以下を追加:
{
"mcpServers": {
"aws-documentation": {
"url": "https://YOUR_FUNCTION_URL.lambda-url.ap-northeast-1.on.aws",
"transport": {
"type": "http"
}
}
}
}YOUR_FUNCTION_URL は AutoResumeFunctionUrl の出力値に置き換えてください。
stacks/config.py で以下の設定を変更できます:
APPRUNNER_CONFIG = {
"service_name": "supergateway-aws-docs-mcp",
"cpu": "1024", # 1 vCPU
"memory": "2048", # 2 GB
"port": 8000,
# ...
}AUTO_RESUME_CONFIG = {
"timeout_seconds": 300, # 5分
"max_wait_seconds": 180, # 起動待機時間
# ...
}
AUTO_PAUSE_CONFIG = {
"idle_minutes": 5, # アイドル時間のしきい値
# ...
}EVENTBRIDGE_CONFIG = {
"schedule_expression": "rate(5 minutes)", # 5分ごと
# または "cron(*/5 * * * ? *)"
}curl -X POST https://YOUR_FUNCTION_URL.lambda-url.ap-northeast-1.on.aws \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}'# サービス情報の取得
aws apprunner describe-service \
--service-arn <ServiceArn>
# ログの確認
aws logs tail /aws/apprunner/<ServiceName> --follow# auto_resume のログ
aws logs tail /aws/lambda/aws-docs-mcp-auto-resume --follow
# auto_pause のログ
aws logs tail /aws/lambda/aws-docs-mcp-auto-pause --follow-
App Runner: 停止中は課金なし、稼働時のみ課金
- CPU: 1 vCPU = $0.064/hour
- メモリ: 2 GB = $0.007/hour
- 合計: 約 $0.071/hour(稼働時のみ)
-
Lambda:
- Function URL: 無料枠内
- 実行時間: 無料枠内(月間100万リクエスト)
-
CloudWatch: メトリクス取得(無料枠内)
-
EventBridge: 定期実行(無料枠内)
想定コスト: 月額 $5-10 程度(使用頻度による)
# 変更内容の確認
cdk diff
# デプロイ
cdk deploycdk destroy注意: App Runner サービスと Lambda 関数が削除されます。
# Docker が起動しているか確認
docker ps
# Docker Desktop を再起動stacks/config.pyのMAX_WAIT_SECONDSを増やす- 初回起動は2-3分かかる場合があります
stacks/config.pyのtimeout_secondsを調整
- AWS Documentation MCP Server
- Supergateway
- AWS CDK Python
- App Runner
- Lambda Function URLs
- CloudWatch Metrics
このプロジェクトは MIT ライセンスの下で公開されています。
プルリクエストやイシューの報告を歓迎します。
注意: このプロジェクトは AWS リソースを作成するため、料金が発生する可能性があります。使用後は必要に応じてリソースを削除してください。