A Model Context Protocol (MCP) server that integrates AI assistants with the Terraform Cloud API, allowing you to manage your infrastructure through
A Model Context Protocol (MCP) server that integrates AI assistants with the Terraform Cloud API, allowing you to manage your infrastructure through natural
uv package manager (recommended) or pip - Terraform Cloud API tokenCompare 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 |
|---|---|
| get_account_details | ): Gets account information for the authenticated user or service account. |
| list_workspaces | organization, page_number, page_size, search): List and filter workspaces. |
| get_workspace_details | workspace_id, organization, workspace_name): Get detailed information about a specific workspace. |
| create_workspace | organization, name, params): Create a new workspace with optional parameters. |
| update_workspace | organization, workspace_name, params): Update an existing workspace's configuration. |
| delete_workspace | organization, workspace_name): Delete a workspace and all its content. |
| safe_delete_workspace | organization, workspace_name): Delete only if the workspace isn't managing any resources. |
| lock_workspace | workspace_id, reason): Lock a workspace to prevent runs. |
| unlock_workspace | workspace_id): Unlock a workspace to allow runs. |
| force_unlock_workspace | workspace_id): Force unlock a workspace locked by another user. |
| set_data_retention_policy | workspace_id, days): Set a data retention policy. |
| get_data_retention_policy | workspace_id): Get the current data retention policy. |
| delete_data_retention_policy | workspace_id): Delete the data retention policy. --> |
| create_run | workspace_id, params): Create and queue a Terraform run in a workspace using its ID. |
| list_runs_in_workspace | workspace_id, ...): List and filter runs in a specific workspace using its ID. |
| list_runs_in_organization | organization, ...): List and filter runs across an entire organization. |
| get_run_details | run_id): Get detailed information about a specific run. |
| apply_run | run_id, comment): Apply a run waiting for confirmation. |
| discard_run | run_id, comment): Discard a run waiting for confirmation. |
| cancel_run | run_id, comment): Cancel a run currently planning or applying. |
| force_cancel_run | run_id, comment): Forcefully cancel a run immediately. |
| force_execute_run | run_id): Forcefully execute a pending run by canceling prior runs. |
| get_plan_details | plan_id): Get detailed information about a specific plan. |
| get_plan_json_output | plan_id): Retrieve the JSON execution plan for a specific plan with proper redirect handling. |
| get_run_plan_json_output | run_id): Retrieve the JSON execution plan from a run with proper redirect handling. |
| get_plan_logs | plan_id): Retrieve logs from a plan operation. |
| get_apply_details | apply_id): Get detailed information about a specific apply. |
| get_errored_state | apply_id): Retrieve the errored state from a failed apply for recovery. |
| get_apply_logs | apply_id): Retrieve logs from an apply operation. |
| create_project | organization, name, params): Create a new project with optional parameters. |
| update_project | project_id, params): Update an existing project's configuration. |
| list_projects | organization, ...): List and filter projects in an organization. |
| get_project_details | project_id): Get detailed information about a specific project. |
| delete_project | project_id): Delete a project (fails if it contains workspaces). Requires ENABLE_DELETE_TOOLS=true |
| list_project_tag_bindings | project_id): List tags bound to a project. |
| add_update_project_tag_bindings | project_id, tag_bindings): Add or update tag bindings on a project. |
| move_workspaces_to_project | project_id, workspace_ids): Move workspaces into a project. |
| get_organization_details | organization): Get detailed information about a specific organization. |
| get_organization_entitlements | organization): Show entitlement set for organization features. |
| list_organizations | page_number, page_size, query, query_email, query_name): List and filter organizations. |
| create_organization | name, email, params): Create a new organization with optional parameters. |
| update_organization | organization, params): Update an existing organization's settings. |
| delete_organization | organization): Delete an organization and all its content. Requires ENABLE_DELETE_TOOLS=true |
| get_cost_estimate_details | cost_estimate_id): Get detailed information about a specific cost estimate, including resource counts (matched and unmatched), prior monthly cost, proposed mont |
| get_assessment_result_details | assessment_result_id): Get detailed information about a specific health assessment result. |
| get_assessment_json_output | assessment_result_id): Retrieve the JSON execution plan from an assessment result. |
| get_assessment_json_schema | assessment_result_id): Retrieve the JSON schema file from an assessment result. |
| get_assessment_log_output | assessment_result_id): Retrieve logs from an assessment result operation. |
| list_state_versions | organization, workspace_name, page_number, page_size, filter_status): List and filter state versions in a workspace. |
| get_current_state_version | workspace_id): Get the current state version for a workspace. |
| get_state_version | state_version_id): Get details for a specific state version. |
| create_state_version | workspace_id, serial, md5, params): Create a new state version in a workspace. |
| download_state_file | state_version_id, json_format): Download the raw or JSON formatted state file. |
| list_state_version_outputs | state_version_id, page_number, page_size): List outputs for a specific state version. |
| get_state_version_output | state_version_output_id): Get details for a specific state version output. |
| list_workspace_variables | workspace_id): List all variables (Terraform and environment) for a workspace. |
| create_workspace_variable | workspace_id, key, category, params): Create a new variable in a workspace. |
| update_workspace_variable | workspace_id, variable_id, params): Update an existing workspace variable. |
| delete_workspace_variable | workspace_id, variable_id): Delete a workspace variable. Requires ENABLE_DELETE_TOOLS=true |
| list_variable_sets | organization, page_number, page_size): List variable sets in an organization. |
| get_variable_set | varset_id): Get details for a specific variable set. |
| create_variable_set | organization, name, params): Create a new variable set. |
| update_variable_set | varset_id, params): Update an existing variable set. |
| delete_variable_set | varset_id): Delete a variable set and all its variables. Requires ENABLE_DELETE_TOOLS=true |
| assign_variable_set_to_workspaces | varset_id, workspace_ids): Assign a variable set to workspaces. |
| unassign_variable_set_from_workspaces | varset_id, workspace_ids): Remove a variable set from workspaces. |
| assign_variable_set_to_projects | varset_id, project_ids): Assign a variable set to projects. |
| unassign_variable_set_from_projects | varset_id, project_ids): Remove a variable set from projects. |
| list_variables_in_variable_set | varset_id): List all variables in a variable set. |
| create_variable_in_variable_set | varset_id, key, category, params): Create a variable in a variable set. |
| update_variable_in_variable_set | varset_id, var_id, params): Update a variable in a variable set. |
| delete_variable_from_variable_set | varset_id, var_id): Delete a variable from a variable set. Requires ENABLE_DELETE_TOOLS=true |
{
"mcpServers": {
"terraform-cloud-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"TFC_TOKEN",
"-e",
"TFC_ADDRESS",
"-e",
"ENABLE_DELETE_TOOLS",
"-e",
"READ_ONLY_TOOLS",
"terraform-cloud-mcp:latest"
],
"env": {
"TFC_TOKEN": "YOUR_TFC_TOKEN",
"TFC_ADDRESS": "https://app.terraform.io",
"ENABLE_DELETE_TOOLS": "false",
"READ_ONLY_TOOLS": "false"
}
}
}
}From the project documentation. Replace placeholders and example paths before connecting.
uv package manager (recommended) or pip - Terraform Cloud API token| Variable | Description | Required |
|---|---|---|
| TFC_TOKEN | Declared in the maintainer’s client configuration. | Yes |
| TFC_ADDRESS | Declared in the maintainer’s client configuration. | Optional |
| ENABLE_DELETE_TOOLS | Declared in the maintainer’s client configuration. | Optional |
| READ_ONLY_TOOLS | 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.
Model Context Protocol (MCP) server for the **Rancher ecosystem**: multi-cluster Kubernetes, Harvester HCI (VMs, storage, networks), and Fleet GitOps.
Discover and publish AI agents via DNS using SVCB records (RFC 9460)
Wanaku MCP Router
This repository provides a collection of Multi-tool Control Protocol (MCP) servers for managing Oracle Cloud Infrastructure (OCI) resources. Each