terraform-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GITHUB_ORG | Yes | Nombre de la organización de GitHub | |
| GITHUB_TOKEN | Yes | Personal access token de GitHub con scope repo | |
| IAC_ROLE_NAME | No | Rol IAM que asume el provider generado | terraform-iac |
| MODULE_PREFIX | No | Prefijo de los repos de módulos | terraform-aws-module- |
| BACKEND_CONFIG | No | Configuración de backend S3 en JSON, usada por get_backend_config (opcional) | |
| TF_MIN_VERSION | No | Versión mínima de Terraform en las configuraciones generadas | 1.10 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_modulesA | Busca los módulos de Terraform disponibles en la organización de GitHub. Lista los repos que coinciden con el prefijo 'terraform-aws-module-'. Si se pasa una query, los resultados se filtran además por el nombre del servicio. Args: query: Filtro opcional para acotar los resultados por nombre de servicio. Returns: Lista JSON de módulos con name, service_name, description, last_updated y default_branch. |
| get_moduleA | Obtiene información detallada de un módulo de Terraform concreto. Recupera el README, variables.tf, outputs.tf y el último tag de versión del módulo identificado por su nombre de servicio. Args: service_name: Nombre del servicio (por ejemplo, 'vpc', 'ec2'). El nombre del repo se construye como 'terraform-aws-module-{service_name}'. Returns: Objeto JSON con el detalle del módulo: readme, variables, outputs y última versión. |
| list_module_versionsA | Lista las versiones disponibles (tags git) de un módulo de Terraform. Devuelve todos los tags ordenados por versión semántica descendente. Args: service_name: Nombre del servicio (por ejemplo, 'vpc', 'ec2'). Returns: Objeto JSON con la lista de versiones. |
| scaffold_terraformA | Genera una configuración completa de Terraform usando un módulo de . Crea la estructura de archivos estándar: versions.tf, providers.tf, variables.tf, terraform.tfvars, main.tf, outputs.tf y data.tf. El provider generado siempre asume el rol IAM IAC_ROLE_NAME; las credenciales
estáticas no son una opción. Rellena Args: service_name: Nombre del servicio (por ejemplo, 'vpc', 'ec2'). variables: Dict opcional de valores para precargar en terraform.tfvars. Returns: Dict JSON con el nombre de archivo como key y su contenido como value. |
| get_backend_configA | Obtiene la configuración del backend S3 de un proyecto Terraform. Devuelve el bucket, la key, la region y la configuración de locking correctos según el team, el project y el environment. Normalmente se resuelve desde la variable de entorno BACKEND_CONFIG (string JSON). Si BACKEND_CONFIG no está definida, esta tool devuelve Args: team: Nombre del equipo (por ejemplo, 'platform', 'backend', 'data'). project: Nombre del proyecto (por ejemplo, 'onboarding', 'payments'). environment: Environment (por ejemplo, 'dev', 'staging', 'prod'). bucket: Bucket de state indicado por el usuario. Tiene prioridad sobre BACKEND_CONFIG. region: Region del bucket indicada por el usuario. Tiene prioridad sobre BACKEND_CONFIG. Returns:
Objeto JSON con la configuración completa del bloque backend "s3" y el
archivo destino ( |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
Each tool targets a distinct resource and action: search_modules finds modules, list_module_versions lists versions, get_module retrieves details, scaffold_terraform generates config, and get_backend_config retrieves backend setup. No two tools overlap in purpose.
All tool names follow a consistent verb_noun snake_case pattern (search_modules, list_module_versions, get_module, scaffold_terraform, get_backend_config). The convention is uniform and predictable.
With 5 tools, the server is well-scoped for its purpose of discovering, inspecting, and scaffolding Terraform modules. Each tool serves a clear function without redundancy or overload.
The surface covers the core lifecycle of module discovery and usage: search, version listing, detail retrieval, scaffolding, and backend config. Missing operations like module creation/update or plan/apply are outside the apparent scope, so the gap is minor.