Terraform Cloud MCP サーバー
AIアシスタントとTerraform Cloud APIを統合するモデルコンテキストプロトコル(MCP)サーバー。自然な会話を通してインフラを管理できます。Pydanticモデルとドメイン固有のモジュールを基盤として構築されたこのサーバーは、Claude、Claude Code CLI、Claude Desktop、Cursor、Copilot Studioなど、あらゆるMCP対応プラットフォームと互換性があります。
特徴
- アカウント管理: 認証されたユーザーまたはサービス アカウントのアカウント詳細を取得します。
- ワークスペース管理: ワークスペースの作成、読み取り、更新、削除、ロック/ロック解除。
- プロジェクト管理: プロジェクトを作成、一覧表示、更新、削除し、プロジェクト タグ バインディングを管理し、プロジェクト間でワークスペースを移動します。
- 実行管理: 実行の作成、実行の一覧表示、実行の詳細の取得、実行の適用/破棄/キャンセル。
- プラン管理: 高度な HTTP リダイレクト処理を使用して、プランの詳細と JSON 実行出力を取得します。
- 適用管理: 適用の詳細を取得し、失敗した状態のアップロードから回復します。
- 組織管理: 組織の一覧表示、作成、更新、削除、組織の権限の表示を行います。
- 将来の機能: 変数管理、状態バージョンなど。
クイックスタート
前提条件
- Python 3.12以上
- MCP(FastMCPと開発ツールを含む)
uv
パッケージ マネージャー (推奨) またはpip
- Terraform Cloud API トークン
インストール
クロード環境への追加
Claude Code CLIへの追加
Claudeデスクトップに追加
claude_desktop_config.json
構成ファイルを作成します。
- mac: ~/ライブラリ/アプリケーションサポート/Claude/claude_desktop_config.json
- 勝利: %APPDATA%\Claude\claude_desktop_config.json
your_terraform_cloud_token
を実際の Terraform Cloud API トークンに置き換えます。
その他のMCP互換プラットフォーム
その他のプラットフォーム(Cursor、Copilot Studio、Glamaなど)の場合は、各プラットフォーム固有の手順に従ってMCPサーバーを追加してください。ほとんどのプラットフォームでは、以下の要件があります。
- サーバーを起動するためのサーバー パスまたはコマンド。
- Terraform Cloud API トークンの環境変数。
- 必要に応じてサーバーを自動的に起動するための構成。
利用可能なツール
アカウントツール
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 パターン、貢献ワークフローなどの詳細な開発ガイダンスについては、開発ドキュメントを参照してください。
クイック開発セットアップ
基本的な開発コマンド
コードの構成、アーキテクチャ、開発ワークフロー、コード品質ガイドラインの詳細については、 docs/DEVELOPMENT.mdを参照してください。
ドキュメント
コードベースには包括的なドキュメントが含まれています。
- コードコメント: 実装決定の背後にある「理由」を説明することに重点を置いています
- Docstrings : すべての公開関数とクラスには詳細なdocstringが含まれています
- サンプル ファイル:
docs/
ディレクトリには、各ドメインの詳細な例が含まれています。docs/DEVELOPMENT.md
: 開発標準とコーディングガイドラインdocs/CONTRIBUTING.md
: プロジェクトへの貢献に関するガイドラインdocs/models/
: すべてのモデルタイプの使用例docs/tools/
: 各ツールの詳細な使用例docs/conversations/
: API を使用したサンプル会話フロー
トラブルシューティング
- サーバーログを確認します(デバッグログはデフォルトで有効になっています)
- デバッグにはMCPインスペクタ( http://localhost:5173 )を使用します。
- デバッグ ログは
server.py
ですでに有効になっています。
貢献
貢献を歓迎します!このプロジェクトに貢献したい場合は、問題を開くか、プルリクエストを送信してください。
開始方法、コード品質基準、プル リクエスト プロセスに関する詳細な手順については、貢献ガイドを参照してください。
You must be authenticated.
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
Claude を Terraform Cloud API と統合し、自然な会話を通じて Claude が Terraform インフラストラクチャを管理できるようにする Model Context Protocol (MCP) サーバー。
Related Resources
Related MCP Servers
- AsecurityFlicenseAqualityA Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with your AWS environment. This allows for natural language querying and management of your AWS resources during conversations. Think of better Amazon Q alternative.Last updated -3264TypeScript
- -securityAlicense-quality🌍 Terraform Model Context Protocol (MCP) Tool - An experimental CLI tool that enables AI assistants to manage and operate Terraform environments. Supports reading Terraform configurations, analyzing plans, applying configurations, and managing state with Claude Desktop integration. ⚡️Last updated -292RustMIT License
- -securityFlicense-qualityA starter template for building Model Context Protocol (MCP) servers, enabling developers to create and add custom tools that can be integrated with Claude Desktop.Last updated -TypeScript
- AsecurityFlicenseAqualityA server built on mcp-framework that enables integration with Claude Desktop through the Model Context Protocol.Last updated -11