AWS Infrastructure as Code MCPサーバー
AWS インフラストラクチャのコード化(Infrastructure as Code)の作成とトラブルシューティングのための MCP サーバーです。ツールには、CloudFormation テンプレートの検証、コンプライアンスチェック、デプロイのトラブルシューティング、CloudFormation ドキュメント検索、公式 CDK ナレッジベースを利用した AWS CDK ドキュメント検索、CDK のコードサンプルとコンストラクト、CDK および CloudFormation のベストプラクティスが含まれます。
MCP のハイライト
- CloudFormation テンプレートをデプロイ前に検証し、エラーを早期に検出
- インテリジェントな失敗分析と解決ガイダンスにより、失敗した CloudFormation デプロイをデバッグ
- AWS のベストプラクティスに照らして、CloudFormation テンプレートのセキュリティコンプライアンスを確保
- リソースタイプ、プロパティ、テンプレート構文に関する CloudFormation ドキュメントを検索
- CDK ドキュメントを検索し、AWS CDK 開発向けの AWS 承認済みコード例を発見
- 一般的な実装パターンのための CDK コードサンプルとコミュニティコンストラクトを検索
- 安全で効率的なインフラストラクチャ開発のための CDK ベストプラクティスにアクセス
- CloudFormation テンプレートの検証エラーに対して、行番号付きの具体的な修正提案を取得
- CloudFormation デプロイのトラブルシューティングのための CloudTrail ディープリンクにアクセス
機能
テンプレート検証
- 構文およびスキーマの検証 - cfn-lint を使用して CloudFormation テンプレートを検証します
- 構文エラー、無効なプロパティ、スキーマ違反を具体的な修正提案付きで検出します
コンプライアンスチェック
- セキュリティおよびコンプライアンスルール - cfn-guard を使用してセキュリティ標準に照らしてテンプレートを検証します
- AWS Guard Rules Registry および Control Tower のプロアクティブコントロールに対してチェックします
デプロイのトラブルシューティング
- インテリジェントな失敗分析 - CloudFormation デプロイの失敗を分析し解決します
- CloudTrail ディープリンク付きで、30 件以上の既知の失敗ケースに対するパターンマッチングを行います
CloudFormation ドキュメント検索
- CloudFormation ナレッジへのアクセス - リソースタイプ、プロパティ、構文について公式 CloudFormation ドキュメントを検索します
- CloudFormation テンプレートの実装ガイダンスと例を見つけられます
CDK ドキュメント検索
- CDK ナレッジへのアクセス - AWS CDK のドキュメント、API リファレンス、ベストプラクティスを検索します
- CDK API リファレンス、ベストプラクティスガイド、コードサンプルとパターン、CDK-NAG セキュリティチェックにアクセスできます
CDK コードサンプルとコンストラクト
- 動作するコード例 - 一般的なパターンのための CDK コードサンプルとコミュニティコンストラクトを見つけられます
- 複数のプログラミング言語(TypeScript、Python、Java、C#、Go)を横断して検索できます
CDK ベストプラクティス
- セキュリティおよび開発ガイドライン - アプリケーション設定、コーディング、コンストラクト、セキュリティ、テストに関する包括的な CDK ベストプラクティスにアクセスできます
- 安全で効率的なインフラストラクチャのために AWS が推奨するパターンに従えます
利用可能な MCP ツール
ドキュメント読み取りツール
read_iac_documentation_page
任意の Infrastructure as Code(CDK または CloudFormation)ドキュメントページを取得し、マークダウン形式に変換します。
このツールの用途:
- 抜粋だけでなく、CDK ドキュメントページ全体を読む
- CloudFormation リソースタイプのドキュメントとプロパティリファレンス全体を読む
- CloudFormation テンプレートの詳細な構文と例を取得する
- CloudFormation API リファレンスドキュメントにアクセスする
- CloudFormation フックとライフサイクル管理ガイドを読む
- CFN Guard ポリシー検証のルールと構文を確認する
- CloudFormation CLI のドキュメントと使用パターンにアクセスする
CloudFormation ツール
validate_cloudformation_template
cfn-lint を使用して、CloudFormation テンプレートの構文、スキーマ、リソースプロパティを検証します。
このツールの用途:
- AI が生成した CloudFormation テンプレートをデプロイ前に検証する
- 各エラーに対して行番号付きの具体的な修正提案を取得する
パラメータ:
template_content(必須): 文字列としての CloudFormation テンプレートregions(任意): 検証対象とする AWS リージョンのリストignore_checks(任意): 無視する cfn-lint チェック ID のリスト
check_cloudformation_template_compliance
cfn-guard を使用して、セキュリティおよびコンプライアンスルールに照らして CloudFormation テンプレートを検証します。
このツールの用途:
- テンプレートがセキュリティおよびコンプライアンス要件を満たしていることを確認する
- 違反に対する詳細な修復ガイダンスを取得する
パラメータ:
template_content(必須): 文字列としての CloudFormation テンプレートcustom_rules(任意): 適用するカスタム cfn-guard ルール
troubleshoot_cloudformation_deployment
失敗した CloudFormation スタックを分析し、解決ガイダンスを提供します。
このツールの用途:
- 30 件以上の既知のケースに対するパターンマッチングでデプロイ失敗を診断する
- CloudTrail ディープリンクと具体的な解決手順を取得する
パラメータ:
stack_name(必須): 失敗した CloudFormation スタックの名前region(必須): スタックが存在する AWS リージョンinclude_cloudtrail(任意): CloudTrail 分析を含めるかどうか(デフォルトは true)
search_cloudformation_documentation
AWS CloudFormation ドキュメントのナレッジベースを検索し、関連するベストプラクティスを返します。
get_cloudformation_pre_deploy_validation_instructions
変更セット作成時にテンプレートを検証する、CloudFormation のデプロイ前検証機能の手順を返します。
パラメータ: なし - CLI コマンドと修復ガイダンスを含む JSON を返します。
CDK ツール
search_cdk_documentation
AWS CDK ドキュメントのナレッジベースを検索し、関連する抜粋を返します。
このツールの用途:
- CDK のコンストラクト、API、実装パターンに関する具体的な情報を見つける
- 公式 CDK ドキュメントから実装ガイダンスを取得する
- CDK パターンの構文と例を調べる
- ベストプラクティスとアーキテクチャガイドラインを調査する
ドキュメントソース:
- AWS CDK API リファレンス
- AWS CDK ベストプラクティスガイド
- AWS CDK コードサンプルとパターン
- CDK-NAG 検証ルール
パラメータ:
query(必須): CDK ドキュメントの検索クエリ
検索のヒント:
- 具体的なコンストラクト名を使用する(例: "aws-lambda.Function"、"aws-s3.Bucket")
- ターゲットを絞り込むためにサービス名を含める(例: "S3 AND encryption")
- ブール演算子を使用する: "DynamoDB AND table"、"Lambda OR Function"
- 特定のプロパティを検索する: "bucket encryption"、"lambda environment variables"
パラメータ:
url(必須): ページ全体の内容を読むための、検索結果に含まれる URLstarting_index(任意): ページネーション用の開始文字インデックス(デフォルト: 0)
search_cdk_samples_and_constructs
CDK のコードサンプル、例、コンストラクト、パターンのドキュメントを検索します。
パラメータ:
query(必須): CDK サンプルとコンストラクトの検索クエリlanguage(任意): プログラミング言語フィルター(デフォルト: "typescript")
cdk_best_practices
アプリケーション設定、コーディング、コンストラクト、セキュリティ、テストに関する CDK ベストプラクティスを提供します。
パラメータ:
- なし
使用例
CloudFormation の例
テンプレートの検証
Validate this CloudFormation template:
[paste your template content]
コンプライアンスのチェック
Check this template for security and compliance issues:
[paste your template content]
失敗したデプロイのトラブルシューティング
Troubleshoot my CloudFormation stack named "my-app-stack" in us-east-1
CloudFormation ドキュメントの検索
Search CloudFormation documentation for AWS::Lambda::Function properties
CDK の例
CDK ドキュメントの検索
Search CDK documentation for S3 bucket encryption best practices
Find CDK examples for Lambda function with VPC configuration
Show me CDK constructs for DynamoDB table with encryption
Infrastructure as Code ドキュメントページの読み取り
Read the full CDK documentation for aws-s3.Bucket from this URL: [URL from search results]
Read the complete CloudFormation documentation for AWS::S3::Bucket from this URL: [URL from search results]
CDK サンプルとコンストラクトの検索
Find CDK code samples for serverless API with TypeScript
Show me Python CDK examples for API Gateway with Lambda integration
CDK ベストプラクティスの参照
Suggest improvements to my CDK setup based on the best practices
What are the CDK security best practices for S3 buckets?
前提条件
- Astral または GitHub README から
uvをインストールします uv python install 3.10を使用して Python をインストールします- AWS 認証情報を設定します:
- AWS CLI 経由:
aws configure - または環境変数を設定(AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_DEFAULT_REGION)
- AWS CLI 経由:
- IAM ロールまたはユーザーに、CloudFormation および CloudTrail へのアクセスに必要な権限があることを確認します
インストール
| Kiro | Cursor | VS Code |
|---|---|---|
MCP クライアントの設定で MCP サーバーを構成します(例: Kiro の場合は ~/.kiro/settings/mcp.json を編集します):
{
"mcpServers": {
"awslabs.aws-iac-mcp-server": {
"command": "uvx",
"args": ["awslabs.aws-iac-mcp-server@latest"],
"env": {
"AWS_PROFILE": "your-named-profile",
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}
Windows でのインストール
Windows ユーザーの場合、MCP サーバーの設定形式は少し異なります:
{
"mcpServers": {
"awslabs.aws-iac-mcp-server": {
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "uv",
"args": [
"tool",
"run",
"--from",
"awslabs.aws-iac-mcp-server@latest",
"awslabs.aws-iac-mcp-server.exe"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"AWS_PROFILE": "your-aws-profile",
"AWS_REGION": "us-east-1"
}
}
}
}
または、docker build -t awslabs/aws-iac-mcp-server . の成功後に docker を使用します:
# fictitious `.env` file with AWS temporary credentials
AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
AWS_SESSION_TOKEN=AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
注: Docker でのインストールは任意です
{
"mcpServers": {
"awslabs.aws-iac-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"--interactive",
"--env",
"AWS_PROFILE=your-aws-profile",
"--env",
"FASTMCP_LOG_LEVEL=ERROR",
"--volume",
"${HOME}/.aws:/root/.aws:ro",
"awslabs/aws-iac-mcp-server:latest"
],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}
注: 認証情報はホスト側で常に最新の状態に保つ必要があります
セキュリティに関する考慮事項
⚠️ プライバシーに関する通知: この MCP サーバーは、お客様の認証情報を使用して AWS API 呼び出しを実行し、そのレスポンスデータをサードパーティの AI モデルプロバイダー(例: Kiro、Claude Desktop、Cursor、VS Code)と共有します。このツールを AWS リソースで使用する際は、AI プロバイダーのデータ取り扱い方針を理解し、組織のセキュリティおよびプライバシー要件への準拠を確保する責任はユーザーにあります。
IAM 権限
この MCP サーバーには、以下の AWS 権限が必要です:
テンプレート検証およびコンプライアンスの場合:
- AWS 権限は不要です(ローカル検証のみ)
デプロイのトラブルシューティングの場合:
cloudformation:DescribeStackscloudformation:DescribeStackEventscloudformation:DescribeStackResourcescloudtrail:LookupEvents(CloudTrail ディープリンク用)
IAM ポリシーの例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cloudformation:DescribeStacks",
"cloudformation:DescribeStackEvents",
"cloudformation:DescribeStackResources",
"cloudtrail:LookupEvents"
],
"Resource": "*"
}
]
}
開発
ローカル開発
# Clone the repository
git clone https://github.com/awslabs/mcp.git
cd mcp/src/aws-iac-mcp-server
# Install dependencies
uv sync
# Run the server
uv run awslabs.aws-iac-mcp-server
テストの実行
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov=awslabs.aws_iac_mcp_server --cov-report=term-missing
コントリビューション
このプロジェクトへの貢献方法のガイドラインについては、CONTRIBUTING.md を参照してください。
ライセンス
このプロジェクトは Apache-2.0 ライセンスの下でライセンスされています。詳細については LICENSE ファイルを参照してください。