Terraform Cloud MCP Server
Ein Model Context Protocol (MCP)-Server, der KI-Assistenten in die Terraform Cloud API integriert und Ihnen die Verwaltung Ihrer Infrastruktur durch natürliche Kommunikation ermöglicht. Dieser Server basiert auf Pydantic-Modellen und ist um domänenspezifische Module herum strukturiert. Er ist mit allen MCP-unterstützenden Plattformen kompatibel, darunter Claude, Claude Code CLI, Claude Desktop, Cursor, Copilot Studio und andere.
Merkmale
- Kontoverwaltung : Erhalten Sie Kontodetails für authentifizierte Benutzer oder Dienstkonten.
- Arbeitsbereichsverwaltung : Erstellen, Lesen, Aktualisieren, Löschen, Sperren/Entsperren von Arbeitsbereichen.
- Projektmanagement : Erstellen, Auflisten, Aktualisieren und Löschen von Projekten; Verwalten von Projekt-Tag-Bindungen und Verschieben von Arbeitsbereichen zwischen Projekten.
- Laufverwaltung : Läufe erstellen, Läufe auflisten, Laufdetails abrufen, Läufe anwenden/verwerfen/abbrechen.
- Planverwaltung : Rufen Sie Plandetails und JSON-Ausführungsausgabe mit erweiterter HTTP-Umleitungsbehandlung ab.
- Bewerbungsverwaltung : Erhalten Sie Bewerbungsdetails und stellen Sie die Wiederherstellung nach fehlgeschlagenen Status-Uploads sicher.
- Organisationsverwaltung : Organisationen auflisten, erstellen, aktualisieren, löschen und Organisationsberechtigungen anzeigen.
- Zukünftige Funktionen : Variablenverwaltung, Statusversionen und mehr.
Schnellstart
Voraussetzungen
- Python 3.12+
- MCP (beinhaltet FastMCP und Entwicklungstools)
uv
Paketmanager (empfohlen) oderpip
- Terraform Cloud-API-Token
Installation
Hinzufügen zu Claude Environments
Hinzufügen zu Claude Code CLI
Hinzufügen zu Claude Desktop
Erstellen Sie eine Konfigurationsdatei claude_desktop_config.json
:
- mac: ~/Library/Application Support/Claude/claude_desktop_config.json
- gewinnen: %APPDATA%\Claude\claude_desktop_config.json
Ersetzen Sie your_terraform_cloud_token
durch Ihr tatsächliches Terraform Cloud API-Token.
Andere MCP-kompatible Plattformen
Für andere Plattformen (wie Cursor, Copilot Studio oder Glama) folgen Sie den plattformspezifischen Anweisungen zum Hinzufügen eines MCP-Servers. Die meisten Plattformen erfordern:
- Der Serverpfad oder Befehl zum Starten des Servers.
- Umgebungsvariablen für das Terraform Cloud API-Token.
- Konfiguration zum automatischen Starten des Servers bei Bedarf.
Verfügbare Tools
Konto-Tools
get_account_details()
: Ruft Kontoinformationen für das authentifizierte Benutzer- oder Dienstkonto ab.
Tools zur Arbeitsbereichsverwaltung
Auflisten und Suchen
list_workspaces(organization, page_number, page_size, search)
: Arbeitsbereiche auflisten und filtern.get_workspace_details(workspace_id, organization, workspace_name)
: Erhalten Sie detaillierte Informationen zu einem bestimmten Arbeitsbereich.
Erstellen und Aktualisieren
create_workspace(organization, name, params)
: Erstellen Sie einen neuen Arbeitsbereich mit optionalen Parametern.update_workspace(organization, workspace_name, params)
: Aktualisieren Sie die Konfiguration eines vorhandenen Arbeitsbereichs.
Löschen
delete_workspace(organization, workspace_name)
: Löscht einen Arbeitsbereich und seinen gesamten Inhalt.safe_delete_workspace(organization, workspace_name)
: Nur löschen, wenn der Arbeitsbereich keine Ressourcen verwaltet.
Sperren und Entsperren
lock_workspace(workspace_id, reason)
: Sperren Sie einen Arbeitsbereich, um Ausführungen zu verhindern.unlock_workspace(workspace_id)
: Entsperren Sie einen Arbeitsbereich, um Ausführungen zu ermöglichen.force_unlock_workspace(workspace_id)
: Erzwingen Sie die Entsperrung eines von einem anderen Benutzer gesperrten Arbeitsbereichs.
Ausführen von Verwaltungstools
create_run(workspace_id, params)
: Erstellen und stellen Sie einen Terraform-Lauf in einem Arbeitsbereich unter Verwendung seiner ID in die Warteschlange.list_runs_in_workspace(workspace_id, ...)
: Listet Läufe in einem bestimmten Arbeitsbereich anhand seiner ID auf und filtert sie.list_runs_in_organization(organization, ...)
: Listen- und Filterläufe für eine gesamte Organisation.get_run_details(run_id)
: Erhalten Sie detaillierte Informationen zu einem bestimmten Lauf.apply_run(run_id, comment)
: Wenden Sie einen Lauf an, der auf Bestätigung wartet.discard_run(run_id, comment)
: Verwerfen Sie einen Lauf, der auf eine Bestätigung wartet.cancel_run(run_id, comment)
: Bricht einen Lauf ab, der gerade geplant oder angewendet wird.force_cancel_run(run_id, comment)
: Erzwingt den sofortigen Abbruch eines Laufs.force_execute_run(run_id)
: Erzwingt die Ausführung eines ausstehenden Laufs durch Abbrechen vorheriger Läufe.
Planverwaltungstools
get_plan_details(plan_id)
: Erhalten Sie detaillierte Informationen zu einem bestimmten Plan.get_plan_json_output(plan_id)
: Ruft den JSON-Ausführungsplan für einen bestimmten Plan mit entsprechender Umleitungsbehandlung ab.get_run_plan_json_output(run_id)
: Ruft den JSON-Ausführungsplan aus einem Lauf mit entsprechender Umleitungsbehandlung ab.
Verwaltungstools anwenden
get_apply_details(apply_id)
: Erhalten Sie detaillierte Informationen zu einer bestimmten Bewerbung.get_errored_state(apply_id)
: Ruft den Fehlerstatus einer fehlgeschlagenen Anwendung zur Wiederherstellung ab.
Projektmanagement-Tools
create_project(organization, name, params)
: Erstellen Sie ein neues Projekt mit optionalen Parametern.update_project(project_id, params)
: Aktualisieren Sie die Konfiguration eines vorhandenen Projekts.list_projects(organization, ...)
: Projekte in einer Organisation auflisten und filtern.get_project_details(project_id)
: Erhalten Sie detaillierte Informationen zu einem bestimmten Projekt.delete_project(project_id)
: Löscht ein Projekt (schlägt fehl, wenn es Arbeitsbereiche enthält).list_project_tag_bindings(project_id)
: Listet an ein Projekt gebundene Tags auf.add_update_project_tag_bindings(project_id, tag_bindings)
: Tag-Bindungen für ein Projekt hinzufügen oder aktualisieren.move_workspaces_to_project(project_id, workspace_ids)
: Verschiebt Arbeitsbereiche in ein Projekt.
Tools zur Organisationsverwaltung
get_organization_details(organization)
: Erhalten Sie detaillierte Informationen zu einer bestimmten Organisation.get_organization_entitlements(organization)
: Zeigt den Berechtigungssatz für Organisationsfunktionen an.list_organizations(page_number, page_size, query, query_email, query_name)
: Organisationen auflisten und filtern.create_organization(name, email, params)
: Erstellen Sie eine neue Organisation mit optionalen Parametern.update_organization(organization, params)
: Aktualisieren Sie die Einstellungen einer vorhandenen Organisation.delete_organization(organization)
: Löscht eine Organisation und ihren gesamten Inhalt.
Entwicklungshandbuch
Ausführliche Entwicklungsanleitungen, einschließlich Codestandards, Pydantic-Mustern und Beitrags-Workflows, finden Sie in unserer Entwicklungsdokumentation .
Schnelles Entwicklungs-Setup
Grundlegende Entwicklungsbefehle
Ausführliche Informationen zur Codeorganisation, Architektur, Entwicklungsabläufen und Richtlinien zur Codequalität finden Sie unter docs/DEVELOPMENT.md .
Dokumentation
Die Codebasis enthält eine umfassende Dokumentation:
- Code-Kommentare : Konzentrieren sich auf die Erklärung des „Warum“ hinter Implementierungsentscheidungen
- Docstrings : Alle öffentlichen Funktionen und Klassen enthalten detaillierte Docstrings
- Beispieldateien : Das Verzeichnis
docs/
enthält ausführliche Beispiele für jede Domäne:docs/DEVELOPMENT.md
: Entwicklungsstandards und Codierungsrichtliniendocs/CONTRIBUTING.md
: Richtlinien für Beiträge zum Projektdocs/models/
: Anwendungsbeispiele für alle Modelltypendocs/tools/
: Detaillierte Anwendungsbeispiele für jedes Tooldocs/conversations/
: Beispiel-Konversationsabläufe mit der API
Fehlerbehebung
- Überprüfen Sie die Serverprotokolle (Debug-Protokollierung ist standardmäßig aktiviert)
- Verwenden Sie den MCP Inspector ( http://localhost:5173 ) zum Debuggen
- Die Debug-Protokollierung ist in
server.py
bereits aktiviert:
Beitragen
Beiträge sind willkommen! Bitte erstellen Sie ein Issue oder einen Pull Request, wenn Sie zu diesem Projekt beitragen möchten.
Detaillierte Anweisungen zum Einstieg, zu Codequalitätsstandards und zum Pull-Request-Prozess finden Sie in unserem Beitragsleitfaden .
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
Ein Model Context Protocol (MCP)-Server, der Claude in die Terraform Cloud API integriert, sodass Claude Ihre Terraform-Infrastruktur durch natürliche Konversation verwalten kann.
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 -239RustMIT 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