GCP Terraform MCP Server について
GCP Terraform MCP Serverは、GCP上でTerraformインフラを構築するチームに、ガイダンスやモジュール分析、セキュリティチェックを提供します。TerraformのワークフローにCheckovスキャンとGCPプロバイダーのドキュメントを組み合わせています。
主な機能
- 01GCP Terraformのベストプラクティス案内
- 02Checkovによるセキュリティスキャンと修正
- 03GCPプロバイダーのリソースドキュメント
- 04Terraform Registryモジュールの分析
- 05Terraformの初期化・計画・検証・適用・破棄
- 06GenAIモジュールテンプレート
活用シーン
- 01GCP向けTerraform設定の設計
- 02インフラコードのセキュリティ問題のスキャン
- 03Registryモジュールの入力と依存関係の確認
- 04プロジェクトの検証やデプロイ手順の実行
MCP 対応
このMCPサーバーは、Terraformワークフロー、Checkov、GCPドキュメント、モジュール分析、GenAIモジュールのツールとガイダンスリソースをMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
GCP Terraform MCP サーバー
GCP における Terraform のベストプラクティス、Infrastructure as Code のパターン、Checkov によるセキュリティコンプライアンスに対応する MCP サーバーです。
機能
-
Terraform のベストプラクティス - GCP 上でアプリケーションを構築するための具体的な Terraform のアドバイスを取得します
- Terraform の設定に関する GCP アーキテクチャのガイダンス
- セキュリティとコンプライアンスに関する推奨事項
- GCP プロバイダーの設定に関するベストプラクティス
-
セキュリティ優先の開発ワークフロー - セキュアなコードを作成するための体系的なプロセスに従います
- 検証とセキュリティスキャンの手順ごとのガイダンス
- 開発の適切な段階で Checkov を統合
- AI による支援と開発者によるデプロイの明確な引き継ぎポイント
-
Checkov の統合 - Checkov によるセキュリティおよびコンプライアンスのスキャンに対応します
- Terraform コードのセキュリティスキャンを実行し、脆弱性を特定
- 可能な場合は、特定されたセキュリティ問題を自動修正
- コンプライアンス上の問題に対する詳細な修正ガイダンスを取得
-
GCP プロバイダーのドキュメント - Google Cloud プロバイダーのリソースを検索します
- 特定のリソースや属性のドキュメントを検索
- コード例と実装ガイダンスを取得
- GCP サービスの設定に関するベストプラクティスにアクセス
-
GCP GenAI モジュール - AI/ML ワークロード向けの専用モジュールにアクセスします
- 生成 AI アプリケーション向けの Vertex AI モジュール
- データストレージ機能向けの BigQuery と BigTable
- サーバーレスワークロード向けの Cloud Functions
- AI ワークロードのオーケストレーション向けの Google Kubernetes Engine
-
Terraform Registry モジュールの分析 - Terraform Registry モジュールを分析します
- URL または識別子でモジュールを検索
- 入力変数、出力変数、README の内容を抽出
- モジュールの使用方法と設定オプションを把握
- モジュールの構造と依存関係を分析
-
Terraform ワークフローの実行 - Terraform コマンドを直接実行します
- 初期化、計画、検証、適用、破棄の各操作
- 変数の受け渡しと GCP リージョンの指定
- 分析用に整形されたコマンド出力を取得
ツールとリソース
- Terraform 開発ワークフロー:
terraform://workflow_guideを通じて、セキュリティを重視した開発プロセスに従います - GCP のベストプラクティス:
terraform://gcp_best_practicesを通じて、GCP 固有のガイダンスにアクセスします - GCP プロバイダーのリソース:
terraform://gcp_provider_resources_listingを通じて、リソース一覧にアクセスします
前提条件
- Astral または GitHub README から
uvをインストールします uv python install 3.10を使用して Python をインストールします- ワークフローを実行するために Terraform CLI をインストールします
- セキュリティスキャン用に Checkov をインストールします
- GCP 認証を設定します(gcloud CLI を推奨)
インストール
FastMCP のインストール
FastMCP のインストールと管理には uv の使用を推奨します。
uv add fastmcp
または、pip か uv pip で直接インストールします。
uv pip install fastmcp
# or
pip install fastmcp
FastMCP のインストール(models サポート付き)
FastMCP の PyPI リリースには、CLI が必要とする fastmcp.models サブモジュールが含まれていない場合があります。最新のコードを GitHub から直接インストールするには、次のコマンドを実行します。
pip install --upgrade git+https://github.com/jlowin/fastmcp.git@main#egg=fastmcp
その後、次のコマンドで確認します。
fastmcp version
インストールの確認
次のコマンドを実行します。
fastmcp version
詳細については、FastMCP のドキュメントを参照してください:https://github.com/jlowin/fastmcp
MCP の使用方法の例を以下に示します(MCP クライアントの設定など)。
{
"mcpServers": {
"gcp-terraform-mcp-server": {
"command": "uvx",
"args": ["gcp-terraform-mcp-server@latest"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}
または、docker build -t gcp-terraform-mcp-server . の実行が成功した後に Docker を使用します。
{
"mcpServers": {
"gcp-terraform-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"--interactive",
"--env",
"FASTMCP_LOG_LEVEL=ERROR",
"gcp-terraform-mcp-server:latest"
],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}
ローカル開発
ローカルで実行および開発するには、次の手順に従います。
- 仮想環境を作成して有効化します
python3 -m venv venv
source venv/bin/activate
- pip をアップグレードして、プロジェクトの依存関係をインストールします
pip install --upgrade pip
pip install -e .
- MCP サーバーを実行します
uvicorn gcp_terraform_mcp_server.main:app --host 0.0.0.0 --port 8080
- (任意)スクリプトのエントリポイントを使用する場合
gcp-terraform-mcp-server
fastmcp およびその他の依存関係が正常にインストールされていることを確認してください。ModuleNotFoundError: No module named 'fastmcp.models' が表示される場合は、仮想環境が有効になっていること、および依存関係のインストールがエラーなく完了していることを確認してください。
サーバーの実行
メインモジュールを直接呼び出すのではなく、FastMCP CLI を使ってサーバーを起動します。
# Start with stdio transport (default)
fastmcp run src/gcp_terraform_mcp_server/main.py:mcp
# Or start as an SSE server on port 8080
fastmcp run src/gcp_terraform_mcp_server/main.py:mcp --transport sse --host 0.0.0.0 --port 8080
アクティブな環境に fastmcp がインストールされていることを確認してください。この CLI は、main.py でエクスポートされている mcp = FastMCP(...) インスタンスを自動的に検出します。
利用可能な MCP コマンド
このサーバーを GitHub Copilot Chat や他の MCP クライアントで使用する際は、以下のコマンドを利用できます。
Terraform ワークフローツール
| コマンド | 説明 | 例 |
|---|---|---|
terraform_workflow_guide | GCP での Terraform に関する包括的なガイドを取得します | /mcp gcp-terraform-mcp terraform_workflow_guide |
terraform_init | Terraform プロジェクトを初期化します | /mcp gcp-terraform-mcp terraform_init path="./my-project" |
terraform_validate | Terraform プロジェクトを検証します | /mcp gcp-terraform-mcp terraform_validate path="./my-project" |
terraform_plan | Terraform プロジェクトのプランを作成します | /mcp gcp-terraform-mcp terraform_plan path="./my-project" |
terraform_apply | Terraform のプランを適用します | /mcp gcp-terraform-mcp terraform_apply path="./my-project" plan_file="tfplan" |
terraform_destroy | Terraform リソースを破棄します | /mcp gcp-terraform-mcp terraform_destroy path="./my-project" |
Checkov セキュリティツール
| コマンド | 説明 | 例 |
|---|---|---|
terraform_run_checkov | Checkov のセキュリティスキャンを実行します | /mcp gcp-terraform-mcp terraform_run_checkov path="./my-project" |
terraform_fix_security_issues | Checkov でセキュリティ上の問題を修正します | /mcp gcp-terraform-mcp terraform_fix_security_issues path="./my-project" |
GCP のベストプラクティスとセキュリティ
| コマンド | 説明 | 例 |
|---|---|---|
terraform_gcp_best_practices | GCP のベストプラクティスを取得します | /mcp gcp-terraform-mcp terraform_gcp_best_practices |
terraform_gcp_security_recommendations | GCP のセキュリティに関する推奨事項を取得します | /mcp gcp-terraform-mcp terraform_gcp_security_recommendations impact="HIGH" |
GCP プロバイダーのドキュメント
| コマンド | 説明 | 例 |
|---|---|---|
terraform_gcp_provider_resources_listing | GCP プロバイダーのリソースを一覧表示します | /mcp gcp-terraform-mcp terraform_gcp_provider_resources_listing service="compute" |
terraform_gcp_resource_documentation | GCP リソースのドキュメントを取得します | /mcp gcp-terraform-mcp terraform_gcp_resource_documentation resource_name="google_storage_bucket" |
Terraform Registry ツール
| コマンド | 説明 | 例 |
|---|---|---|
terraform_search_modules | Terraform モジュールを検索します | /mcp gcp-terraform-mcp terraform_search_modules query="gcp storage" |
terraform_analyze_module | Terraform モジュールを分析します | /mcp gcp-terraform-mcp terraform_analyze_module module_id="GoogleCloudPlatform/storage/google/latest" |
GenAI モジュールツール
| コマンド | 説明 | 例 |
|---|---|---|
terraform_genai_modules | GenAI モジュールを一覧表示します | /mcp gcp-terraform-mcp terraform_genai_modules |
terraform_vertex_ai_module | Vertex AI モジュールのテンプレートを取得します | /mcp gcp-terraform-mcp terraform_vertex_ai_module |
terraform_gke_ai_module | GKE AI モジュールのテンプレートを取得します | /mcp gcp-terraform-mcp terraform_gke_ai_module |
GitHub Copilot との統合
この MCP サーバーを GitHub Copilot Chat で使用するには、以下の設定を VS Code の settings.json に追加します。
"mcp": {
"inputs": [],
"servers": {
"gcp-terraform-mcp": {
"command": "/path/to/your/venv/bin/fastmcp",
"args": [
"run",
"/path/to/your/src/gcp_terraform_mcp_server/main.py:mcp"
],
"env": {
"FASTMCP_LOG_LEVEL": "INFO"
},
"autoApprove": ["terraform_"]
}
}
}
この設定を追加して VS Code を再起動すると、GitHub Copilot Chat パネルで上記のコマンドを使用できます。
セキュリティに関する考慮事項
この MCP サーバーを使用する際は、以下を考慮してください。
- 検証とセキュリティスキャンを組み込んだ構造化された開発ワークフローに従う
- Checkov の警告とエラーをすべて手動で確認する
- 可能な限り、セキュリティ上の問題を無視せず修正する
- 必要な例外については、明確な根拠を記録する
- セキュリティコンプライアンスを確認するために、RunCheckovScan ツールを定期的に使用する
- インフラストラクチャについて、GCP のセキュリティに関するベストプラクティスに従う
本番環境に Terraform の変更を適用する前に、独自のセキュリティおよび品質管理の慣行と基準、ならびに適用されるコンテンツに関する地域の法律、規則、規制にインフラストラクチャが準拠することを確認するため、独自に評価を実施してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。