terraform-cloud-mcp

by severity1
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Supports loading Terraform Cloud API tokens from .env files for easier authentication configuration

  • Integrates with Terraform Cloud API, enabling workspace management (create, read, update, delete, lock/unlock) and authentication capabilities

Servidor MCP de Terraform Cloud

Un servidor de Protocolo de Contexto de Modelo (MCP) que integra asistentes de IA con la API de Terraform Cloud, lo que le permite gestionar su infraestructura mediante una conversación natural. Desarrollado con modelos de Pydantic y estructurado en torno a módulos específicos del dominio, este servidor es compatible con cualquier plataforma compatible con MCP, como Claude, Claude Code CLI, Claude Desktop, Cursor, Copilot Studio y otras.


Características

  • Gestión de cuentas : obtenga detalles de la cuenta para usuarios autenticados o cuentas de servicio.
  • Gestión del espacio de trabajo : crear, leer, actualizar, eliminar, bloquear/desbloquear espacios de trabajo.
  • Gestión de ejecuciones : crear ejecuciones, enumerar ejecuciones, obtener detalles de ejecuciones, aplicar/descartar/cancelar ejecuciones.
  • Gestión de la organización : enumere, cree, actualice, elimine organizaciones y vea los derechos de las organizaciones.
  • Características futuras : gestión de estados, gestión de variables y más.

Inicio rápido

Prerrequisitos

  • Python 3.12+
  • MCP (incluye FastMCP y herramientas de desarrollo)
  • Gestor de paquetes uv (recomendado) o pip
  • Token de API de Terraform Cloud

Instalación

# 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 .

Añadiendo a los entornos de Claude

Agregar a la CLI de Claude Code

# 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"

Añadiendo a Claude Desktop

Cree un archivo de configuración claude_desktop_config.json :

  • mac: ~/Biblioteca/Soporte de aplicaciones/Claude/claude_desktop_config.json
  • victoria: %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 } } } }

Reemplace your_terraform_cloud_token con su token de API de Terraform Cloud real.

Otras plataformas compatibles con MCP

Para otras plataformas (como Cursor, Copilot Studio o Glama), siga las instrucciones específicas de cada plataforma para agregar un servidor MCP. La mayoría de las plataformas requieren:

  1. La ruta del servidor o el comando para iniciar el servidor.
  2. Variables de entorno para el token de API de Terraform Cloud.
  3. Configuración para iniciar automáticamente el servidor cuando sea necesario.

Herramientas disponibles

Herramientas de cuenta

  • get_account_details() : obtiene información de la cuenta del usuario o cuenta de servicio autenticado.

Herramientas de gestión del espacio de trabajo

Lista y búsqueda

  • list_workspaces(organization, page_number, page_size, search) : enumera y filtra espacios de trabajo.
  • get_workspace_details(workspace_id, organization, workspace_name) : obtiene información detallada sobre un espacio de trabajo específico.

Crear y actualizar

  • create_workspace(organization, name, params) : crea un nuevo espacio de trabajo con parámetros opcionales.
  • update_workspace(organization, workspace_name, params) : actualiza la configuración de un espacio de trabajo existente.

Borrar

  • delete_workspace(organization, workspace_name) : elimina un espacio de trabajo y todo su contenido.
  • safe_delete_workspace(organization, workspace_name) : eliminar solo si el espacio de trabajo no administra ningún recurso.

Bloquear y desbloquear

  • lock_workspace(workspace_id, reason) : bloquea un espacio de trabajo para evitar ejecuciones.
  • unlock_workspace(workspace_id) : desbloquea un espacio de trabajo para permitir ejecuciones.
  • force_unlock_workspace(workspace_id) : Fuerza el desbloqueo de un espacio de trabajo bloqueado por otro usuario.

Retención de datos

  • set_data_retention_policy(workspace_id, days) : establece una política de retención de datos.
  • get_data_retention_policy(workspace_id) : obtiene la política de retención de datos actual.
  • delete_data_retention_policy(workspace_id) : elimina la política de retención de datos.

Herramientas de gestión de ejecuciones

  • create_run(workspace_id, params) : crea y pone en cola una ejecución de Terraform en un espacio de trabajo usando su ID.
  • list_runs_in_workspace(workspace_id, ...) : enumera y filtra las ejecuciones en un espacio de trabajo específico utilizando su ID.
  • list_runs_in_organization(organization, ...) : enumera y filtra ejecuciones en toda una organización.
  • get_run_details(run_id) : obtiene información detallada sobre una ejecución específica.
  • apply_run(run_id, comment) : Aplicar una ejecución esperando confirmación.
  • discard_run(run_id, comment) : descartar una ejecución en espera de confirmación.
  • cancel_run(run_id, comment) : Cancelar una ejecución que se esté planificando o aplicando actualmente.
  • force_cancel_run(run_id, comment) : cancela forzosamente una ejecución inmediatamente.
  • force_execute_run(run_id) : ejecuta de forma forzada una ejecución pendiente cancelando ejecuciones anteriores.

Herramientas de gestión organizacional

  • get_organization_details(organization) : obtiene información detallada sobre una organización específica.
  • get_organization_entitlements(organization) : muestra el conjunto de derechos para las funciones de la organización.
  • list_organizations(page_number, page_size, query, query_email, query_name) : enumera y filtra las organizaciones.
  • create_organization(name, email, params) : crea una nueva organización con parámetros opcionales.
  • update_organization(organization, params) : actualiza la configuración de una organización existente.
  • delete_organization(organization) : elimina una organización y todo su contenido.

Guía de desarrollo

Para obtener una guía de desarrollo detallada, incluidos estándares de código, patrones de Pydantic y flujos de trabajo de contribución, consulte nuestra Documentación de desarrollo .

Configuración de desarrollo rápido

# 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

Comandos básicos de desarrollo

# 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 .

Para obtener información detallada sobre la organización del código, la arquitectura, los flujos de trabajo de desarrollo y las pautas de calidad del código, consulte docs/DEVELOPMENT.md .


Documentación

La base del código incluye documentación completa:

  • Comentarios del código : centrados en explicar el "por qué" detrás de las decisiones de implementación
  • Docstrings : todas las funciones y clases públicas incluyen docstrings detallados
  • Archivos de ejemplo : El directorio docs/ contiene ejemplos detallados para cada dominio:
    • docs/DEVELOPMENT.md : Estándares de desarrollo y pautas de codificación
    • docs/CONTRIBUTING.md : Pautas para contribuir al proyecto
    • docs/models/ : Ejemplos de uso para todos los tipos de modelos
    • docs/tools/ : Ejemplos de uso detallados para cada herramienta
    • docs/conversations/ : Ejemplos de flujos de conversación con la API

Solución de problemas

  1. Comprobar los registros del servidor (el registro de depuración está habilitado de forma predeterminada)
  2. Utilice el Inspector MCP ( http://localhost:5173 ) para depurar
  3. El registro de depuración ya está habilitado en server.py :
    import logging logging.basicConfig(level=logging.DEBUG)

Contribuyendo

¡Agradecemos sus contribuciones! Si desea contribuir a este proyecto, abra un problema o una solicitud de incorporación de cambios.

Consulta nuestra Guía de contribución para obtener instrucciones detalladas sobre cómo comenzar, los estándares de calidad del código y el proceso de solicitud de extracción.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Un servidor de Protocolo de Contexto de Modelo (MCP) que integra a Claude con la API de Terraform Cloud, lo que le permite a Claude administrar su infraestructura de Terraform a través de una conversación natural.

  1. Features
    1. Quick Start
      1. Prerequisites
      2. Installation
      3. Adding to Claude Environments
    2. Available Tools
      1. Account Tools
      2. Workspace Management Tools
      3. Run Management Tools
      4. Organization Management Tools
    3. Development Guide
      1. Quick Development Setup
      2. Basic Development Commands
    4. Documentation
      1. Troubleshooting
        1. Contributing
          ID: iukijjkm1e