/ Directorio / Playground / tfmcp
● Comunidad nwiizo ⚡ Instantáneo

tfmcp

por nwiizo · nwiizo/tfmcp

Permite que Claude lea tus configuraciones de Terraform, ejecute dry-run de planes y (opcionalmente) aplique cambios — sin necesidad de compartir tus claves de la nube.

tfmcp envuelve el CLI de Terraform local como un servidor MCP. Lee HCL, ejecuta plan/validate/format, explora el estado y — solo cuando explícitamente activas TFMCP_ALLOW_DANGEROUS_OPS — puede aplicar o destruir. Las credenciales permanecen en tu entorno AWS/GCP/Azure existente; tfmcp nunca las ve directamente.

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

tfmcp.replay ▶ listo
0/0

Instalar

Elige tu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "tfmcp": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/nwiizo/tfmcp"
      ],
      "_inferred": true
    }
  }
}

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "tfmcp": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/nwiizo/tfmcp"
      ],
      "_inferred": true
    }
  }
}

Cursor usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "tfmcp": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/nwiizo/tfmcp"
      ],
      "_inferred": true
    }
  }
}

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "tfmcp": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/nwiizo/tfmcp"
      ],
      "_inferred": true
    }
  }
}

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "tfmcp",
      "command": "TODO",
      "args": [
        "See README: https://github.com/nwiizo/tfmcp"
      ]
    }
  ]
}

Continue usa un array de objetos de servidor en lugar de un mapa.

~/.config/zed/settings.json
{
  "context_servers": {
    "tfmcp": {
      "command": {
        "path": "TODO",
        "args": [
          "See README: https://github.com/nwiizo/tfmcp"
        ]
      }
    }
  }
}

Añádelo a context_servers. Zed recarga en caliente al guardar.

claude mcp add tfmcp -- TODO 'See README: https://github.com/nwiizo/tfmcp'

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: tfmcp

Revisar un plan de Terraform antes de fusionar la solicitud de cambios

👤 Ingenieros de plataforma, SREs revisando solicitudes de cambios de IaC ⏱ ~10 min intermediate

Cuándo usarlo: Una solicitud de cambios modifica 40+ recursos y quieres verificar el radio de impacto antes de aprobar.

Requisitos previos
  • CLI de Terraform instalado y credenciales de nube configuradasaws configure o equivalente; tfmcp usa lo que tu shell tenga
  • tfmcp instalado vía cargo — cargo install tfmcp
Flujo
  1. Apunta tfmcp al directorio de Terraform
    Establece TERRAFORM_DIR en ~/work/infra/prod y ejecuta terraform plan. Resume qué está cambiando.✓ Copiado
    → Resumen limpio del plan con conteos de add/change/destroy
  2. Solicita un desglose puntuado por riesgos
    Para cada recurso siendo destruido o reemplazado, califica el riesgo (bajo/medio/alto) y explica por qué. Marca cualquier cosa con estado.✓ Copiado
    → Tabla de riesgos destacando recursos de DB, cola o datos
  3. Obtén un comentario de revisión listo para PR
    Redacta un comentario de revisión de PR: aprueba, solicita cambios o bloquea — con justificación.✓ Copiado
    → Texto de revisión procesable listo para pegar

Resultado: Una revisión de plan consciente del riesgo en 3 minutos en lugar de 30, sin gastar pulsaciones de teclas en apply.

Errores comunes
  • El plan tiene éxito localmente pero fallará en CI debido a diferentes versiones del proveedor — Asegúrate de que la versión de terraform de tfmcp coincida con la que usa tu CI — fija vía .terraform-version o tfenv
  • El estado es remoto y tfmcp se queda atascado en autenticación — Ejecuta terraform init una vez manualmente para cachear credenciales del backend antes de invocar tfmcp
Combinar con: github · filesystem

Detecta y explica la divergencia de Terraform en producción

👤 SREs auditando 'qué cambió fuera de Terraform' ⏱ ~20 min intermediate

Cuándo usarlo: Verificación mensual de divergencia, o cuando se sospecha un cambio en la consola de la nube.

Flujo
  1. Ejecuta un plan contra producción y busca cambios
    Ejecuta terraform plan contra prod y dime si hay divergencia — recursos donde el estado real diverge de .tf.✓ Copiado
    → Lista de recursos con divergencia y diffs
  2. Clasifica cada divergencia
    Para cada divergencia, di si es seguro refrescar (reconciliar Terraform con la realidad) o requiere re-aplicar (reconciliar la realidad con Terraform).✓ Copiado
    → Dos listas: refresh-candidates y re-apply-candidates

Resultado: Un reporte de divergencia con plan de remediación específico por recurso.

Errores comunes
  • La divergencia es normal para algunos campos auto-escalados o gestionados por el proveedor — Añade una lista de ignorar-divergencia (vía bloque de ciclo de vida ignore_changes) para campos conocidos como ruidosos como last_modified timestamps

Comprender un módulo de Terraform desconocido

👤 Nuevos miembros del equipo dejados en un repositorio terraform de 500 archivos ⏱ ~15 min beginner

Cuándo usarlo: Heredaste un repositorio de infra y necesitas un mapa de lo que hay antes de tocar nada.

Flujo
  1. Escanea el directorio
    Lista cada módulo en ~/work/infra. Para cada uno, cuéntame qué recursos gestiona y qué entradas espera.✓ Copiado
    → Inventario de módulos con propósito e entradas por módulo
  2. Genera un gráfico de dependencias
    Ejecuta terraform graph y describe el árbol de dependencias de módulos — qué módulos dependen de cuáles.✓ Copiado
    → Árbol ASCII claro o lista numerada

Resultado: Un mapa mental del repositorio sin tener que leer cada archivo .tf manualmente.

Errores comunes
  • Algunos módulos son código muerto no utilizado — Solicita a tfmcp que marque módulos no referenciados en ninguna parte del root u otro módulo
Combinar con: filesystem

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

tfmcp + github

Revisar una PR de Terraform de principio a fin: extrae diff de GitHub, planifica localmente vía tfmcp, publica comentario de revisión

Obtén la PR #42 de acme/infra, revisa la rama, ejecuta tfmcp terraform plan y redacta un comentario de revisión.✓ Copiado
tfmcp + filesystem

Refactorizar archivos HCL en lote y verificar que el plan no cambie la salida

Renombra la variable aws_region a region en todos los archivos .tf en ~/infra, luego confirma que el plan no muestra cambios de recursos.✓ Copiado

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
terraform_plan dir?: str, var_file?: str Seguro — siempre ejecuta antes de apply 1 ejecución de terraform plan
terraform_apply dir?: str, auto_approve?: bool Solo con TFMCP_ALLOW_DANGEROUS_OPS=true e intención explícita del usuario cambios reales en la nube
terraform_validate dir?: str Antes de commit — verificación barata de sintaxis/tipo gratis
terraform_state_list dir?: str Inventariar lo que Terraform conoce gratis (lee estado)
terraform_show dir?: str, resource?: str Inspecciona el estado almacenado para un recurso específico gratis
terraform_graph dir?: str Comprender dependencias de módulo/recurso gratis

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
Sin cuota a nivel de tfmcp; limitado por los límites de velocidad de API del proveedor de la nube
Tokens por llamada
La salida del plan para repositorios grandes puede alcanzar 20k+ tokens — usa targeting
Monetario
Gratuito y MIT; el costo real es lo que apply toque en tu nube
Consejo
Mantén apply desactivado por defecto. Usa terraform plan -target=module.x para limitar planes ruidosos y ahorrar tokens de contexto.

Seguridad

Permisos, secretos, alcance

Ámbitos mínimos: Binario terraform local + credenciales de lectura de proveedor de nube para plan/validate
Almacenamiento de credenciales: Lo que terraform ya usa — variables de entorno AWS, ~/.aws/credentials, identidad de carga de trabajo, etc.
Salida de datos: Llama a las APIs del proveedor de la nube directamente desde tu máquina; tfmcp no llama de vuelta a casa
No conceder nunca: TFMCP_ALLOW_DANGEROUS_OPS=true en sesiones compartidas Credenciales de nube de administrador cuando solo lectura sería suficiente

Resolución de problemas

Errores comunes y soluciones

binario terraform no encontrado

Instala Terraform y asegúrate de que esté en PATH. tfmcp se comunica con terraform; no lo agrupa.

Verificar: terraform version
Error: Sin fuentes de credenciales válidas

Las credenciales de nube de tu shell no se exportan. Ejecuta aws sts get-caller-identity (o equivalente) primero.

Verificar: aws sts get-caller-identity
El plan dice 'apply denegado: TFMCP_ALLOW_DANGEROUS_OPS no está establecido'

Por diseño. Si realmente quieres aplicar, exporta TFMCP_ALLOW_DANGEROUS_OPS=true solo para esa sesión.

Verificar: echo $TFMCP_ALLOW_DANGEROUS_OPS
Inicialización de backend requerida

Ejecuta terraform init una vez manualmente en el directorio de destino antes de llamar a las herramientas tfmcp.

Verificar: terraform init

Alternativas

tfmcp vs otros

AlternativaCuándo usarlaContrapartida
terraform-mcp-server (hashicorp official)Quieres un MCP respaldado por un proveedor con soporte de registroMenos paridad CLI; menos herramientas de estado/divergencia
Raw shell MCP + terraformQuieres flexibilidad totalSin barreras de seguridad — fácil ejecutar terraform destroy por accidente

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills