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 proyectos : crear, enumerar, actualizar y eliminar proyectos; administrar enlaces de etiquetas de proyectos y mover espacios de trabajo entre proyectos.
- Gestión de ejecuciones : crear ejecuciones, enumerar ejecuciones, obtener detalles de ejecuciones, aplicar/descartar/cancelar ejecuciones.
- Gestión de planes : recupere detalles del plan y la salida de ejecución JSON con manejo avanzado de redireccionamiento HTTP.
- Gestión de solicitudes : obtenga detalles de las solicitudes y recupérese de cargas de estados fallidos.
- Gestión de la organización : enumere, cree, actualice, elimine organizaciones y vea los derechos de las organizaciones.
- Características futuras : gestión de variables, versiones de estado y más.
Inicio rápido
Prerrequisitos
- Python 3.12+
- MCP (incluye FastMCP y herramientas de desarrollo)
- Gestor de paquetes
uv
(recomendado) opip
- Token de API de Terraform Cloud
Instalación
Añadiendo a los entornos de Claude
Agregar a la CLI de Claude Code
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
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:
- La ruta del servidor o el comando para iniciar el servidor.
- Variables de entorno para el token de API de Terraform Cloud.
- 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.
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 de planes
get_plan_details(plan_id)
: obtiene información detallada sobre un plan específico.get_plan_json_output(plan_id)
: recupera el plan de ejecución JSON para un plan específico con un manejo de redirección adecuado.get_run_plan_json_output(run_id)
: recupera el plan de ejecución JSON de una ejecución con un manejo de redirección adecuado.
Aplicar herramientas de gestión
get_apply_details(apply_id)
: obtiene información detallada sobre una solicitud específica.get_errored_state(apply_id)
: recupera el estado de error de una solicitud fallida para su recuperación.
Herramientas de gestión de proyectos
create_project(organization, name, params)
: Crea un nuevo proyecto con parámetros opcionales.update_project(project_id, params)
: actualiza la configuración de un proyecto existente.list_projects(organization, ...)
: enumera y filtra los proyectos de una organización.get_project_details(project_id)
: obtiene información detallada sobre un proyecto específico.delete_project(project_id)
: eliminar un proyecto (falla si contiene espacios de trabajo).list_project_tag_bindings(project_id)
: Lista de etiquetas vinculadas a un proyecto.add_update_project_tag_bindings(project_id, tag_bindings)
: agrega o actualiza los enlaces de etiquetas en un proyecto.move_workspaces_to_project(project_id, workspace_ids)
: Mueve espacios de trabajo a un proyecto.
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
Comandos básicos de desarrollo
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óndocs/CONTRIBUTING.md
: Pautas para contribuir al proyectodocs/models/
: Ejemplos de uso para todos los tipos de modelosdocs/tools/
: Ejemplos de uso detallados para cada herramientadocs/conversations/
: Ejemplos de flujos de conversación con la API
Solución de problemas
- Comprobar los registros del servidor (el registro de depuración está habilitado de forma predeterminada)
- Utilice el Inspector MCP ( http://localhost:5173 ) para depurar
- El registro de depuración ya está habilitado en
server.py
:
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.
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
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.
- Características
- Inicio rápido
- Herramientas disponibles
- Guía de desarrollo
- Documentación
- Solución de problemas
- Contribuyendo
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