Skip to main content
Glama

Terraform Cloud MCP サーバー

AIアシスタントとTerraform Cloud APIを統合するモデルコンテキストプロトコル(MCP)サーバー。自然な会話を通してインフラを管理できます。Pydanticモデルとドメイン固有のモジュールを基盤として構築されたこのサーバーは、Claude、Claude Code CLI、Claude Desktop、Cursor、Copilot Studioなど、あらゆるMCP対応プラットフォームと互換性があります。

バージョンパイソン型チェックコード品質


特徴

  • アカウント管理: 認証されたユーザーまたはサービス アカウントのアカウント詳細を取得します。

  • ワークスペース管理: ワークスペースの作成、読み取り、更新、削除、ロック/ロック解除。

  • プロジェクト管理: プロジェクトを作成、一覧表示、更新、削除し、プロジェクト タグ バインディングを管理し、プロジェクト間でワークスペースを移動します。

  • 実行管理: 実行の作成、実行の一覧表示、実行の詳細の取得、実行の適用/破棄/キャンセル。

  • プラン管理: 高度な HTTP リダイレクト処理を使用して、プランの詳細と JSON 実行出力を取得します。

  • 適用管理: 適用の詳細を取得し、失敗した状態のアップロードから回復します。

  • 組織管理: 組織の一覧表示、作成、更新、削除、組織の権限の表示を行います。

  • 将来の機能: 変数管理、状態バージョンなど。


Related MCP server: tfmcp

クイックスタート

前提条件

  • Python 3.12以上

  • MCP(FastMCPと開発ツールを含む)

  • uvパッケージ マネージャー (推奨) またはpip

  • Terraform Cloud API トークン


インストール

# Clone the repository git clone https://github.com/severity1/terraform-cloud-mcp.git cd terraform-cloud-mcp # Create virtual environment and activate it uv venv source .venv/bin/activate # Install package uv pip install .

クロード環境への追加

Claude Code CLIへの追加

# Add to Claude Code with your Terraform Cloud token claude mcp add -e TFC_TOKEN=YOUR_TF_TOKEN -s user terraform-cloud-mcp -- "terraform-cloud-mcp"

Claudeデスクトップに追加

claude_desktop_config.json構成ファイルを作成します。

  • mac: ~/ライブラリ/アプリケーションサポート/Claude/claude_desktop_config.json

  • 勝利: %APPDATA%\Claude\claude_desktop_config.json

{ "mcpServers": { "terraform-cloud-mcp": { "command": "/path/to/uv", # Get this by running: `which uv` "args": [ "--directory", "/path/to/your/terraform-cloud-mcp", # Full path to this project "run", "terraform-cloud-mcp" ], "env": { "TFC_TOKEN": "my token..." # replace with actual token } } } }

your_terraform_cloud_tokenを実際の Terraform Cloud API トークンに置き換えます。

その他のMCP互換プラットフォーム

その他のプラットフォーム(Cursor、Copilot Studio、Glamaなど)の場合は、各プラットフォーム固有の手順に従ってMCPサーバーを追加してください。ほとんどのプラットフォームでは、以下の要件があります。

  1. サーバーを起動するためのサーバー パスまたはコマンド。

  2. Terraform Cloud API トークンの環境変数。

  3. 必要に応じてサーバーを自動的に起動するための構成。


利用可能なツール

アカウントツール

  • get_account_details() : 認証されたユーザーまたはサービス アカウントのアカウント情報を取得します。

ワークスペース管理ツール

リストと検索

  • list_workspaces(organization, page_number, page_size, search) : ワークスペースを一覧表示し、フィルタリングします。

  • get_workspace_details(workspace_id, organization, workspace_name) : 特定のワークスペースに関する詳細情報を取得します。

作成と更新

  • create_workspace(organization, name, params) : オプションのパラメータを使用して新しいワークスペースを作成します。

  • update_workspace(organization, workspace_name, params) : 既存のワークスペースの構成を更新します。

消去

  • delete_workspace(organization, workspace_name) : ワークスペースとそのすべてのコンテンツを削除します。

  • safe_delete_workspace(organization, workspace_name) : ワークスペースがリソースを管理していない場合にのみ削除します。

ロックとロック解除

  • lock_workspace(workspace_id, reason) : 実行を防ぐためにワークスペースをロックします。

  • unlock_workspace(workspace_id) : 実行を許可するためにワークスペースのロックを解除します。

  • force_unlock_workspace(workspace_id) : 別のユーザーによってロックされたワークスペースを強制的にロック解除します。

実行管理ツール

  • create_run(workspace_id, params) : ID を使用してワークスペースに Terraform 実行を作成し、キューに追加します。

  • list_runs_in_workspace(workspace_id, ...) : ID を使用して特定のワークスペース内の実行を一覧表示し、フィルター処理します。

  • list_runs_in_organization(organization, ...) : 組織全体の実行を一覧表示し、フィルタリングします。

  • get_run_details(run_id) : 特定の実行に関する詳細情報を取得します。

  • apply_run(run_id, comment) : 確認を待つ実行を適用します。

  • discard_run(run_id, comment) : 確認待ちの実行を破棄します。

  • cancel_run(run_id, comment) : 現在計画中または適用中の実行をキャンセルします。

  • force_cancel_run(run_id, comment) : 実行を直ちに強制的にキャンセルします。

  • force_execute_run(run_id) : 以前の実行をキャンセルして、保留中の実行を強制的に実行します。

計画管理ツール

  • get_plan_details(plan_id) : 特定のプランの詳細情報を取得します。

  • get_plan_json_output(plan_id) : 適切なリダイレクト処理を使用して、特定のプランの JSON 実行プランを取得します。

  • get_run_plan_json_output(run_id) : 適切なリダイレクト処理を使用して実行から JSON 実行プランを取得します。

管理ツールを適用する

  • get_apply_details(apply_id) : 特定の応募に関する詳細情報を取得します。

  • get_errored_state(apply_id) : リカバリのために失敗した適用からエラー状態を取得します。

プロジェクト管理ツール

  • create_project(organization, name, params) : オプションのパラメータを使用して新しいプロジェクトを作成します。

  • update_project(project_id, params) : 既存のプロジェクトの構成を更新します。

  • list_projects(organization, ...) : 組織内のプロジェクトを一覧表示し、フィルタリングします。

  • get_project_details(project_id) : 特定のプロジェクトの詳細情報を取得します。

  • delete_project(project_id) : プロジェクトを削除します (ワークスペースが含まれている場合は失敗します)。

  • list_project_tag_bindings(project_id) : プロジェクトにバインドされているタグを一覧表示します。

  • add_update_project_tag_bindings(project_id, tag_bindings) : プロジェクトのタグ バインディングを追加または更新します。

  • move_workspaces_to_project(project_id, workspace_ids) : ワークスペースをプロジェクトに移動します。

組織管理ツール

  • get_organization_details(organization) : 特定の組織に関する詳細情報を取得します。

  • get_organization_entitlements(organization) : 組織機能の権限セットを表示します。

  • list_organizations(page_number, page_size, query, query_email, query_name) : 組織を一覧表示し、フィルタリングします。

  • create_organization(name, email, params) : オプションのパラメータを使用して新しい組織を作成します。

  • update_organization(organization, params) : 既存の組織の設定を更新します。

  • delete_organization(organization) : 組織とそのすべてのコンテンツを削除します。


開発ガイド

コード標準、Pydantic パターン、貢献ワークフローなどの詳細な開発ガイダンスについては、開発ドキュメントを参照してください。

クイック開発セットアップ

# Clone the repository git clone https://github.com/severity1/terraform-cloud-mcp.git cd terraform-cloud-mcp # Create virtual environment and activate it uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate # Install in development mode with development dependencies uv pip install -e . uv pip install black mypy pydantic ruff

基本的な開発コマンド

# Run the server in development mode mcp dev terraform_cloud_mcp/server.py # Run tests and quality checks uv run -m mypy . uv run -m ruff check . uv run -m black .

コードの構成、アーキテクチャ、開発ワークフロー、コード品質ガイドラインの詳細については、 docs/DEVELOPMENT.mdを参照してください。


ドキュメント

コードベースには包括的なドキュメントが含まれています。

  • コードコメント: 実装決定の背後にある「理由」を説明することに重点を置いています

  • Docstrings : すべての公開関数とクラスには詳細なdocstringが含まれています

  • サンプル ファイル: docs/ディレクトリには、各ドメインの詳細な例が含まれています。

    • docs/DEVELOPMENT.md : 開発標準とコーディングガイドライン

    • docs/CONTRIBUTING.md : プロジェクトへの貢献に関するガイドライン

    • docs/models/ : すべてのモデルタイプの使用例

    • docs/tools/ : 各ツールの詳細な使用例

    • docs/conversations/ : API を使用したサンプル会話フロー

トラブルシューティング

  1. サーバーログを確認します(デバッグログはデフォルトで有効になっています)

  2. デバッグにはMCPインスペクタ( http://localhost:5173 )を使用します。

  3. デバッグ ログはserver.pyですでに有効になっています。

    import logging logging.basicConfig(level=logging.DEBUG)

貢献

貢献を歓迎します!このプロジェクトに貢献したい場合は、問題を開くか、プルリクエストを送信してください。

開始方法、コード品質基準、プル リクエスト プロセスに関する詳細な手順については、貢献ガイドを参照してください。

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/severity1/terraform-cloud-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server