Airsc is free for everyone. If it helps you, support it with $2–$20.

Support
SkillSafeDeploy & DevOpsAdvanced

terraform-mcp-server

hashicorp · hashicorp/terraform-mcp-server

Official MCP server for Terraform and HCP Terraform to automate infrastructure-as-code tasks, registry searches, and workspace management.

The Terraform MCP Server provides seamless integration with Terraform ecosystem, enabling advanced automation and interaction capabilities for Infrastructure as Code (IaC) development.

1.5k stars200License: MPL-2.0Updated 11 days ago0 opens

Preview

▍

What you can do with it

  • Search for and integrate Terraform modules via an AI agent
  • Manage HCP Terraform workspaces and variables through chat
  • Automate complex infrastructure refactoring across multiple files

Safety check

Safe

No risky patterns found in the files we scanned.

Automated scan of the repo files. Always review code you run.

From the README

Terraform MCP Server

The Terraform MCP Server is a Model Context Protocol (MCP) server that integrates seamlessly with Terraform Registry and HCP Terraform APIs, enabling advanced automation and interaction capabilities for Infrastructure as Code (IaC) development.

Table of Contents

Get started Client integrations Build and run

Features Prerequisites Command Line Options Instructions

Installation Visual Studio Code Cursor Claude Desktop, Amazon Q Developer, and Kiro CLI Claude Code Codex CLI Gemini extensions Bob IDE and Shell

Install from source Building the Docker Image locally Transport Support Stdio Transport StreamableHTTP Transport

Server capabilities Deployment and security Help and contributing

Available Tools Available Resources Available Metrics Tool Filtering

Session Modes Token Passthrough for Centralized Deployments Client IP Forwarding Trust model Trusted hops Limitations Migrating from earlier versions Supported Headers Security Considerations Centralized Deployment Example

Troubleshooting Corporate Proxy and TLS Inspection Development Contributing License Security Support

Features

  • Dual Transport Support: Both Stdio and StreamableHTTP transports with configurable endpoints
  • Terraform Registry Integration: Direct integration with public Terraform Registry APIs for providers, modules, and policies
  • HCP Terraform & Terraform Enterprise Support: Full workspace management, organization/project listing, and private registry access
  • Workspace Operations: Create, update, delete workspaces with support for variables, tags, and run management
  • OTel metrics for monitoring tool usage: Integration with open telemetry meters to track tool-call volume, latency and failures in Streamable HTTP mode. Also exposes default http server metrics when this feature is enabled

Security Note: Depending on the query, the MCP server may expose certain Terraform data to the MCP client and LLM. Do not use the MCP server with untrusted MCP clients or LLMs.

Legal Note: Your use of a third party MCP Client/LLM is subject solely to the terms of use for such MCP/LLM, and IBM is not responsible for the performance of such third party tools. IBM expressly disclaims any and all warranties and liability for third party MCP Clients/LLMs, and may not be able to provide support to resolve issues which are caused by the third party tools.

Caution: The outputs and recommendations provided by the MCP server are generated dynamically and may vary based on the query, model, and the connected MCP client. Users should thoroughly review all outputs/recommendations to ensure they align with their organization’s security best practices, cost-efficiency goals, and compliance requirements before implementation.

Prerequisites

  1. Ensure Docker is installed and running to use the server in a containerized environment.
  2. Install an AI assistant that supports the Model Context Protocol (MCP).

Command Line Options

Environment Variables:

VariableDescriptionDefault
TFE_ADDRESSSets the Terraform Enterprise/HCP Terraform address for API calls. Must include the protocol (e.g., https://app.terraform.io). In streamable-http mode this is the only way to set the address; it cannot be supplied by clients via header or query parameter.Optional
TFE_TOKENTerraform Enterprise API token"" (empty)
TF_MCP_SHARED_SECRETShared secret sent as the X-Tf-Mcp-Secret header on requests to HCP Terraform / TFE, used to identify requests originating from a hosted MCP deployment. Should only be used over TLS."" (empty)
TFE_SKIP_TLS_VERIFYSkip HCP Terraform or Terraform Enterprise TLS verificationfalse
LOG_LEVELLogging level: trace, debug, info, warn, error, fatal, panic (overrides --log-level flag)info
LOG_FORMATLogging format: text or json (overrides --log-format flag)text
TRANSPORT_MODESet to streamable-http to enable HTTP transport (legacy http value still supported)stdio
TRANSPORT_HOSTHost to bind the HTTP server127.0.0.1
TRANSPORT_PORTHTTP server port8080
MCP_ENDPOINTHTTP server endpoint path/mcp
MCP_REDIRECT_ROOT_URLURL to redirect requests to / to""
MCP_KEEP_ALIVEKeep-alive interval for SSE connections (e.g., 30s, 1m). 0 to disable0
MCP_SESSION_MODESession mode: stateful or statelessstateful
MCP_ALLOWED_ORIGINSComma-separated list of allowed origins for CORS"" (empty)
MCP_CORS_MODECORS mode: strict, development, or disabledstrict
MCP_TLS_CERT_FILEPath to TLS cert file, required for non-localhost deployment (e.g. /path/to/cert.pem)"" (empty)
MCP_TLS_KEY_FILEPath to TLS key file, required for non-localhost deployment (e.g. /path/to/key.pem)"" (empty)
MCP_RATE_LIMIT_GLOBALGlobal rate limit (format: rps:burst)10:20
MCP_RATE_LIMIT_SESSIONPer-session rate limit (format: rps:burst)5:10
MCP_ORGANIZATION_ALLOWLISTCSV list of HCP Terraform organization names allowed to access the HTTP server"" (empty)
MCP_FORWARD_CLIENT_IPForward the client IP to HCP Terraform / TFE via X-Forwarded-For. Set to true to enablefalse
MCP_REMOTE_IP_METHODHow the client IP is sourced when forwarding is enabled: RemoteAddr (direct connection only), X-Real-IP, or X-Forwarded-ForRemoteAddr
MCP_XFF_TRUSTED_HOPSNumber of trusted proxy hops counted from the right of the X-Forwarded-For chain. Only used when MCP_REMOTE_IP_METHOD=X-Forwarded-For0
ENABLE_TF_OPERATIONSEnable tools that
View source on GitHub