
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.
Related MCP server: Calculator MCP Server
Schnellstart
Voraussetzungen
Python 3.12+
MCP (beinhaltet FastMCP und Entwicklungstools)
uvPaketmanager (empfohlen) oderpipTerraform 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.pybereits aktiviert:import logging logging.basicConfig(level=logging.DEBUG)
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 .