Sign inSign up

hackerdogs/terraform-mcp

By hackerdogs

•Updated 3 months ago

Terraform MCP Server

Image
0

244

hackerdogs/terraform-mcp repository overview

Hackerdogs
hackerdogs ⁠

⁠Terraform MCP Server

MCP server wrapper for Terraform⁠ — access Terraform provider documentation, resource schemas, and module registry data.

⁠What is Terraform?

Terraform by HashiCorp is the industry-standard infrastructure-as-code tool for provisioning and managing cloud and on-premises resources across 3,000+ providers. This MCP server exposes the Terraform provider registry and documentation — letting AI assistants look up resource schemas, find module examples, explore provider argument references, and assist in writing and debugging .tf configuration files. See hashicorp/terraform-mcp-server⁠ for full documentation.

No API keys required — the server queries the public Terraform Registry and runs locally inside the Docker container.

Summary. MCP server wrapper for Terraform⁠ — access Terraform provider documentation, resource schemas, and module registry data.

⁠Tools Reference

ToolDescription
providerDetailsProviderdetails
resourceUsageResourceusage
moduleSearchModulesearch
listDataSourcesListdatasources
resourceArgumentDetailsResourceargumentdetails
moduleDetailsModuledetails
functionDetailsFunctiondetails
providerGuidesProviderguides
policySearchPolicysearch
policyDetailsPolicydetails

⁠Example Prompts

Here are example prompts you can use with Claude (or any MCP client) when this tool is connected:

  • "Show me the Terraform resource schema for aws_vpc including all required and optional arguments."
  • "Help me write a Terraform module to create an S3 bucket with versioning and server-side encryption."
  • "Look up the azurerm_kubernetes_cluster resource documentation and explain the required arguments."
  • "Find Terraform modules on the registry for setting up a VPC with private subnets on AWS."
  • "What are the required provider configurations for the Google Cloud Terraform provider?"
  • "Debug this Terraform config — it's failing on the aws_iam_role resource with a trust policy error."

⁠Deploy

docker-compose up -d
⁠Docker Run (stdio mode)
docker run -i --rm hackerdogs/terraform-mcp:latest
⁠Docker Run (HTTP streamable mode)
docker run -d -p 8670:8670 \
  -e MCP_TRANSPORT=streamable-http \
  -e MCP_PORT=8670 \
  hackerdogs/terraform-mcp:latest

⁠MCP Client Configuration

⁠Stdio mode (default)

Add to your Claude Desktop or Cursor MCP config:

{
  "mcpServers": {
    "terraform-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "MCP_TRANSPORT",
        "hackerdogs/terraform-mcp:latest"
      ],
      "env": {
        "MCP_TRANSPORT": "stdio"
      }
    }
  }
}
⁠HTTP mode (streamable-http)

First, start the server using Docker Compose or docker run with HTTP mode (see Deploy⁠ above), then point your MCP client at the running server:

{
  "mcpServers": {
    "terraform-mcp": {
      "url": "http://localhost:8670/mcp"
    }
  }
}

When to use HTTP mode: HTTP mode is ideal for shared/remote deployments, multi-user setups, and Hackerdogs⁠ scheduled prompts. The server runs as a long-lived process and accepts connections from multiple MCP clients concurrently.

⁠Environment Variables

VariableDefaultDescription
MCP_TRANSPORTstdioTransport mode: stdio or streamable-http
MCP_PORT8670HTTP port (only used with streamable-http)

⁠Installing in Hackerdogs

The fastest way to get started is through Hackerdogs⁠:

  1. Log in to your Hackerdogs account.
  2. Go to the Tools Catalog.
  3. Search for the tool by name.
  4. Expand the tool card and click Install — you're ready to go.

Give it a couple of minutes to go live. Then start querying by asking Hackerdogs to use the tool explicitly. If you don't specify, Hackerdogs will automatically choose the best tool for the job.

  1. Vendor API key required? Add your key in the config environment variable field before clicking Install. Your key will be encrypted at rest.
  2. Enable / Disable the tool anytime from the Enabled Tools page.
  3. Need to update a key or parameter? Go to My Tools → toggle Show Decrypted Values → edit → Save.

Want to contribute or chat with the team? Join our Discord⁠.

⁠Build

docker build -t hackerdogs/terraform-mcp:latest .

⁠Testing

⁠Automated tests
./test.sh
⁠Test directly with Docker

1. Start the server in HTTP mode:

docker run -d --rm --name terraform-mcp-test -p 8670:8670 \
  -e MCP_TRANSPORT=streamable-http \
  hackerdogs/terraform-mcp:latest

2. Initialize the MCP session:

SESSION_ID=$(curl -s -D - -X POST http://localhost:8670/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0.1"}}}' \
  2>&1 | grep -i mcp-session-id | awk '{print $2}' | tr -d '\r\n')

curl -s -X POST http://localhost:8670/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "mcp-session-id: $SESSION_ID" \
  -d '{"jsonrpc":"2.0","method":"notifications/initialized"}'

3. List available tools:

curl -s -X POST http://localhost:8670/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "mcp-session-id: $SESSION_ID" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

4. Clean up:

docker stop terraform-mcp-test

Tag summary

Content type

Image

Digest

sha256:fe7c08fec…

Size

102.7 MB

Last updated

3 months ago

docker pull hackerdogs/terraform-mcp