tfmcp is a command-line tool that helps you interact with Terraform via the Model Context Protocol (MCP). It allows LLMs to manage and operate your
tfmcp is a command-line tool that helps you interact with Terraform via the Model Context Protocol (MCP). It allows LLMs to manage and operate your Terraform
PATH - Claude Desktop (for AI assistant integration) - Docker (optional, for containerized deployment)Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.
Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.
| Tool | What it does |
|---|---|
| init_terraform | Initialize Terraform working directory |
| get_terraform_plan | Generate a saved plan, or retrieve its redacted result and status by plan ID |
| list_terraform_plans | List saved plan IDs, targets, statuses, and destroy flags |
| discard_terraform_plan | Remove an unneeded saved plan and free retention capacity |
| analyze_plan | NEW Analyze plan with risk scoring and recommendations |
| apply_terraform | Apply the reviewed saved plan ID and verify state resource addresses |
| destroy_terraform | Apply a reviewed saved destroy plan with explicit deletion permissions |
| validate_terraform | Validate configuration syntax |
| validate_terraform_detailed | Detailed validation with guidelines |
| get_terraform_state | Show current state |
| analyze_state | NEW Analyze state with drift detection |
| review_terraform_plan | Review plan risk, blockers, destructive changes, and recommendations |
| summarize_plan_for_pr | Generate markdown plan summary for PR comments |
| run_terraform_quality_checks | Run CI-friendly validation, module health, guideline, and lockfile checks |
| inspect_state_safety | Inspect state readability, drift risk, lockfile status, and blockers |
| detect_drift_candidates | Detect drift candidates from readable state without modifying infrastructure |
| prepare_terraform_change | Generate blockers, warnings, and a recommended change sequence |
| list_terraform_resources | List all managed resources |
| set_terraform_directory | Change active project directory |
| terraform_workspace | NEW Manage workspaces (list, show, new, select, delete) |
| terraform_import | NEW Import existing resources |
| terraform_taint | NEW Taint/untaint resources |
| terraform_refresh | NEW Refresh state |
| terraform_fmt | NEW Format code |
| terraform_graph | NEW Generate dependency graph |
| terraform_output | Get output values with sensitive values redacted, including named queries |
| terraform_providers | NEW Get provider info with lock file |
| check_provider_lockfile | Check .terraform.lock.hcl for reproducible provider selections |
| analyze_terraform | Analyze configuration |
| inspect_terraform_project | Inspect local Terraform directories, modules, and likely entrypoints |
| detect_terraform_entrypoints | Detect likely root module entrypoints |
| analyze_module_health | Module health with cohesion/coupling metrics |
| get_resource_dependency_graph | Resource dependencies visualization |
| suggest_module_refactoring | Refactoring suggestions |
| get_security_status | Security scan with secret detection |
| search_providers | Search providers (HashiCorp-compatible alias) |
| search_terraform_providers | Search providers |
| get_provider_details | Provider details (HashiCorp-compatible alias) |
| get_provider_info | Provider details |
| get_provider_docs | Provider documentation |
| get_provider_capabilities | Provider resources, data sources, functions, and guides |
| search_modules | Search modules (HashiCorp-compatible alias) |
| search_terraform_modules | Search modules |
| get_module_details | Module details |
| get_latest_module_version | Latest module version |
| get_latest_provider_version | Latest provider version |
| search_policies | Search Sentinel/OPA policy libraries |
| get_policy_details | Policy library details |
| get_token_permissions | Inspect configured token account details without exposing the token |
| list_terraform_orgs | List visible organizations |
| list_terraform_projects | List projects in an organization |
| list_workspaces | List workspaces in an organization |
| get_workspace_details | Get workspace details by ID or organization/name |
| list_runs | List workspace runs |
| get_run_details | Get run details |
| get_plan_details | Get plan details |
| get_plan_logs | Get plan logs |
| get_plan_json_output | Get Terraform JSON plan output |
| get_apply_details | Get apply details |
| get_apply_logs | Get apply logs |
| get_workspace_policy_sets | Get policy sets attached to a workspace |
| list_workspace_variables | List workspace variables |
| list_variable_sets | List organization variable sets |
| read_workspace_tags | Read workspace tags |
| list_stacks | List Terraform stacks |
| get_stack_details | Get Terraform stack details |
| search_private_modules | Search private registry modules |
| get_private_module_details | Get private registry module details |
| search_private_providers | Search private registry providers |
| get_private_provider_details | Get private registry provider details |
| create_workspace | Create a workspace when ENABLE_TF_OPERATIONS=true |
| update_workspace | Update workspace settings when ENABLE_TF_OPERATIONS=true |
| delete_workspace_safely | Use the safe-delete workspace action when ENABLE_TF_OPERATIONS=true |
| create_run | Queue a run when ENABLE_TF_OPERATIONS=true |
| action_run | Apply, discard, cancel, force-cancel, or force-execute a run when ENABLE_TF_OPERATIONS=true |
| create_workspace_variable | Create a workspace variable when ENABLE_TF_OPERATIONS=true |
| update_workspace_variable | Update a workspace variable when ENABLE_TF_OPERATIONS=true |
| attach_policy_set_to_workspace | Attach a policy set to a workspace when ENABLE_TF_OPERATIONS=true |
| create_variable_set | Create a variable set when ENABLE_TF_OPERATIONS=true |
| create_variable_in_variable_set | Create a variable in a variable set when ENABLE_TF_OPERATIONS=true |
| delete_variable_in_variable_set | Delete a variable from a variable set when ENABLE_TF_OPERATIONS=true |
| attach_variable_set_to_workspaces | Attach a variable set to workspaces when ENABLE_TF_OPERATIONS=true |
| detach_variable_set_from_workspaces | Detach a variable set from workspaces when ENABLE_TF_OPERATIONS=true |
| create_workspace_tags | Create or attach workspace tags when ENABLE_TF_OPERATIONS=true |
| URI | Description |
{
"mcpServers": {
"tfmcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-v",
"/path/to/your/terraform:/app/terraform",
"tfmcp",
"mcp"
],
"env": {
"TERRAFORM_DIR": "/app/terraform"
}
}
}
}From the project documentation. Replace placeholders and example paths before connecting.
PATH - Claude Desktop (for AI assistant integration) - Docker (optional, for containerized deployment)| Variable | Description | Required |
|---|---|---|
| TERRAFORM_DIR | Declared in the maintainer’s client configuration. | Optional |
Stop letting your assistant hallucinate n8n node parameters — this server hands it the real schemas, templates and validation.
AWS Labs' official server suite — current AWS docs, CDK guidance, cost analysis and service tools.
Cloud browsers for AI agents — automation sessions that run in Browserbase's fleet, not on your machine.
Workers, KV, R2 and D1 by conversation — Cloudflare's official remote servers for building and observability.
Dashboards, Prometheus and Loki queries, incidents and alerts — observability by conversation.
kubectl with a conversational interface — inspect pods, read logs, diagnose clusters and manage workloads.