Token导航 LogoToken导航TokenDH.com
Terraform MCP logo
开发工具stdio官方级别未说明来源级核验

Terraform MCP

MCP Server

Terraform MCP服务器是一个与Terraform Registry API无缝集成的模型上下文协议(MCP)服务器,为基础设施即代码(IaC)开发提供高级自动化和交互能力。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
基础设施即代码开发工具GoVS CodeClaude DesktopClaudeCursorVS CodeVS Code Insiders

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

saigandhi-pai

提供方

saigandhi-pai

最后核验

2026/5/17 20:23

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -p 8080:8080 --rm -e TRANSPORT_MODE=streamable-http -e TRANSPORT_HOST=0.0.0.0 hashicorp/terraform-mcp-server

详细介绍

Terraform MCP服务器

Terraform MCP服务器是一个 模型上下文协议(MCP) 服务器,提供与Terraform注册表API的无缝集成,实现高级 基础设施即代码(IaC)开发的自动化和交互能力。

特性

  • 双重运输支持:具有可配置端点的Stdio和StreamableHTTP传输
  • 地形注册表集成:与提供者、模块和策略的公共Terraform注册表API直接集成
  • HCP平台和平台企业支持:完整的工作区管理、组织/项目列表和私有注册表访问
  • 工作区操作:创建、更新、删除支持变量、标记和运行管理的工作区
安全说明: 在此阶段,MCP服务器仅供本地使用。如果使用StreamableHTTP传输,请始终配置MCP_ALLOWED_ORIGINS环境变量,以限制仅访问受信任的源。这有助于防止DNS重新绑定攻击和其他跨源漏洞。
安全说明: 根据查询,MCP服务器可能会向MCP客户端和LLM公开某些Terraform数据。不要将MCP服务器与不受信任的MCP客户端或LLM一起使用。
法律说明: 您对第三方MCP Client/LLM的使用仅受此类MCP/LLM使用条款的约束,IBM不对此类第三方工具的性能负责。IBM明确声明对第三方MCP客户/LLM不承担任何和所有保证和责任,并且可能无法提供支持来解决由第三方工具引起的问题。
注意: MCP服务器提供的输出和建议是动态生成的,可能因查询、模型和连接的MCP客户端而异。用户应在实施之前彻底审查所有输出/建议,以确保它们与组织的安全最佳实践、成本效益目标和合规要求保持一致。

先决条件

  1. 确保 码头工人 已安装并正在运行,以便在容器化环境中使用服务器。
  2. 安装一个支持模型上下文协议(MCP)的AI助手。

命令行选项

环境变量:

变量描述默认值
TFE_ADDRESSHCP地形或TFE地址"https://app.terraform.io"
TFE_TOKENTerraform Enterprise API令牌"" (空)
TFE_SKIP_TLS_VERIFY跳过HCP Terraform或Terraform Enterprise TLS验证false
TRANSPORT_MODE设置为 streamable-http 启用HTTP传输(传统 http 值仍受支持)stdio
TRANSPORT_HOST主机绑定HTTP服务器127.0.0.1
TRANSPORT_PORTHTTP服务器端口8080
MCP_ENDPOINTHTTP服务器端点路径/mcp
MCP_SESSION_MODE会话模式: statefulstatelessstateful
MCP_ALLOWED_ORIGINSCORS允许的源代码列表,以逗号分隔"" (空)
MCP_CORS_MODECORS模式: strict, development,或 disabledstrict
MCP_TLS_CERT_FILETLS证书文件的路径,非本地主机部署所需(例如。 /path/to/cert.pem)"" (空)
MCP_TLS_KEY_FILETLS密钥文件的路径,非本地主机部署所需(例如。 /path/to/key.pem)"" (空)
MCP_RATE_LIMIT_GLOBAL全球利率限制(格式: rps:burst)10:20
MCP_RATE_LIMIT_SESSION每会话速率限制(格式: rps:burst)5:10
ENABLE_TF_OPERATIONS启用需要明确批准的工具false
# Stdio mode
terraform-mcp-server stdio [--log-file /path/to/log]

# StreamableHTTP mode
terraform-mcp-server streamable-http [--transport-port 8080] [--transport-host 127.0.0.1] [--mcp-endpoint /mcp] [--log-file /path/to/log]

说明

MCP服务器的默认说明位于 cmd/terraform-mcp-server/instructions.md,如果这些似乎不适合您组织的Terraform实践,或者如果MCP服务器产生了不准确的响应,请用您自己的说明替换它们,并重建容器或二进制文件。此类说明的示例位于 instructions/example-mcp-instructions.md

AGENTS.md 本质上,它的行为就像编码代理的README:一个专门的、可预测的地方,提供上下文和说明,帮助AI编码代理在您的项目上工作。一 AGENTS.md 该文件适用于不同的编码代理。此类说明的示例位于 instructions/example-AGENTS.md,为了使用它,请提交一个文件名 AGENTS.md 转到您的Terraform配置所在的目录。

安装

与Visual Studio代码一起使用

将以下JSON块添加到VS Code中的用户设置(JSON)文件中。您可以按 Ctrl + Shift + P 和打字 Preferences: Open User Settings (JSON).

更多关于在VS Code中使用MCP服务器工具的信息 代理模式文档.

Version 0.3.0+ or greaterVersion 0.2.3 or lower

{
  "mcp": {
    "servers": {
      "terraform": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e", "TFE_TOKEN=${input:tfe_token}",
          "-e", "TFE_ADDRESS=${input:tfe_address}",
          "hashicorp/terraform-mcp-server:0.3.2"
        ]
      }
    },
    "inputs": [
      {
        "type": "promptString",
        "id": "tfe_token",
        "description": "Terraform API Token",
        "password": true
      },
      {
        "type": "promptString",
        "id": "tfe_address",
        "description": "Terraform Address",
        "password": false
      }
    ]
  }
}
{
  "mcp": {
    "servers": {
      "terraform": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "hashicorp/terraform-mcp-server:0.2.3"
        ]
      }
    }
  }
}

您可以选择将类似的示例(即不带mcp键)添加到名为的文件中 .vscode/mcp.json 在您的工作空间中。这将允许您与他人共享配置。

Version 0.3.0+ or greaterVersion 0.2.3 or lower

{
  "servers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "TFE_TOKEN=${input:tfe_token}",
        "-e", "TFE_ADDRESS=${input:tfe_address}",
        "hashicorp/terraform-mcp-server:0.3.2"
      ]
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "tfe_token",
      "description": "Terraform API Token",
      "password": true
    },
    {
      "type": "promptString",
      "id": "tfe_address",
      "description": "Terraform Address",
      "password": false
    }
  ]
}
{
  "servers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "hashicorp/terraform-mcp-server:0.2.3"
      ]
    }
  }
}

使用游标

将此添加到您的Cursor配置中(~/.cursor/mcp.json)或通过设置→ 光标设置→ MCP:

Version 0.3.0+ or greaterVersion 0.2.3 or lower

{
  "mcpServers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "TFE_ADDRESS=",
        "-e", "TFE_TOKEN=",
        "hashicorp/terraform-mcp-server:0.3.2"
      ]
    }
  }
}
{
  "servers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "hashicorp/terraform-mcp-server:0.2.3"
      ]
    }
  }
}

与Claude Desktop/Amazon Q Developer/Amazon Q CLI一起使用

更多关于在Claude Desktop中使用MCP服务器工具的信息 用户文档.从以下网址阅读更多关于在Amazon Q中使用MCP服务器的信息 文档.

Version 0.3.0+ or greaterVersion 0.2.3 or lower

{
  "mcpServers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "TFE_ADDRESS=",
        "-e", "TFE_TOKEN=",
        "hashicorp/terraform-mcp-server:0.3.2"
      ]
    }
  }
}
{
  "mcpServers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "hashicorp/terraform-mcp-server:0.2.3"
      ]
    }
  }
}

使用Claude代码

更多关于在Claude Code中使用和添加MCP服务器工具的信息 用户文档

  • 本地(stdio)运输
claude mcp add terraform -s user -t stdio -- docker run -i --rm hashicorp/terraform-mcp-server
  • 远程(streamable-http)运输
# Run server (example)
docker run -p 8080:8080 --rm -e TRANSPORT_MODE=streamable-http -e TRANSPORT_HOST=0.0.0.0 hashicorp/terraform-mcp-server

# Add to Claude Code
claude mcp add --transport http terraform http://localhost:8080/mcp

与Gemini扩展一起使用

为了安全起见,避免硬编码您的凭据,创建或更新 ~/.gemini/.env (其中~是您的主目录或项目目录),用于存储HCP Terraform或Terraform Enterprise凭据

# ~/.gemini/.env
TFE_ADDRESS=your_tfe_address_here
TFE_TOKEN=your_tfe_token_here

安装扩展并运行Gemini

gemini extensions install https://github.com/hashicorp/terraform-mcp-server
gemini

从源代码安装

使用最新版本:

go install github.com/hashicorp/terraform-mcp-server/cmd/terraform-mcp-server@latest

使用主分支:

go install github.com/hashicorp/terraform-mcp-server/cmd/terraform-mcp-server@main

Version 0.3.0+ or greaterVersion 0.2.3 or lower

{
  "mcp": {
    "servers": {
      "terraform": {
        "type": "stdio",
        "command": "/path/to/terraform-mcp-server",
        "env": {
          "TFE_TOKEN": ">"
        },
      }
    }
  }
}
{
  "mcp": {
    "servers": {
      "terraform": {
        "type": "stdio",
        "command": "/path/to/terraform-mcp-server"
      }
    }
  }
}

在本地构建Docker镜像

在使用服务器之前,您需要在本地构建Docker镜像:

  1. 克隆存储库:
git clone https://github.com/hashicorp/terraform-mcp-server.git
cd terraform-mcp-server
  1. 构建Docker镜像:
make docker-build
  1. 这将创建一个本地Docker镜像,您可以在以下配置中使用。
# Run in stdio mode
docker run -i --rm terraform-mcp-server:dev

# Run in streamable-http mode
docker run -p 8080:8080 --rm -e TRANSPORT_MODE=streamable-http -e TRANSPORT_HOST=0.0.0.0 terraform-mcp-server:dev
注: 在Docker中运行时,您应该设置 TRANSPORT_HOST=0.0.0.0 以允许从容器外部进行连接。
  1. (可选)在http模式下测试连接
# Test the connection
curl http://localhost:8080/health
  1. 您可以在AI助手上使用它,如下所示:
{
  "mcpServers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "terraform-mcp-server:dev"
      ]
    }
  }
}

可用工具

在此处查看可用工具:链接:

可用资源

在此处查看可用资源:链接:

运输支持

Terraform MCP服务器支持多种传输协议:

1.标准运输(默认)

使用JSON-RPC消息的标准输入/输出通信。非常适合本地开发和与MCP客户直接集成。

2.可流式HTTP传输

现代基于HTTP的传输支持直接HTTP请求和服务器发送事件(SSE)流。这是远程/分布式设置的推荐传输方式。

特征:

  • 端点: http://{hostname}:8080/mcp
  • 健康检查: http://{hostname}:8080/health
  • 环境配置:设置 TRANSPORT_MODE=httpTRANSPORT_PORT=8080 启用

会话模式

使用StreamableHTTP传输时,Terraform MCP服务器支持两种会话模式:

  • 状态模式(默认):维护请求之间的会话状态,启用上下文感知操作。
  • 无状态模式:每个请求都是独立处理的,无需维护会话状态,这对于高可用性部署或使用负载均衡器时非常有用。

要启用无状态模式,请设置环境变量:

export MCP_SESSION_MODE=stateless

发展

先决条件

  • 去(检查 go.mod 特定版本的文件)
  • Docker(可选,用于容器构建)

可用的生成命令

命令描述
make build构建二进制文件
make test运行所有测试
make test-e2e运行端到端测试
make docker-build构建Docker镜像
make run-http在本地运行HTTP服务器
make docker-run-http在Docker中运行HTTP服务器
make test-http测试HTTP健康端点
make clean删除构建工件
make help显示所有可用命令

贡献

  1. 分叉存储库
  2. 创建功能分支
  3. 进行更改
  4. 运行测试
  5. 提交拉取请求

许可证

此项目根据MPL-2.0开源许可证的条款获得许可。请参考 许可证 提交完整条款的文件。

安全

有关安全问题,请联系security@hashicorp.com或跟随我们 安全策略.

支持

有关错误报告和功能请求,请在GitHub上打开问题。

有关一般问题和讨论,请打开GitHub讨论。

目录标签

目录标签

基础设施即代码开发工具GoVS Code本地部署Terraform集成自动化工具MCP协议

支持客户端

Claude DesktopClaudeCursorVS CodeVS Code Insiders

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP