terraform-mcp-server
terraform-mcp-server 是一款基于模型上下文协议(MCP)构建的服务工具,旨在将人工智能助手与 Terraform 基础设施即代码(IaC)生态无缝连接。它让 AI 能够直接读取公共 Terraform 注册表中的提供者、模块和策略信息,并深度集成 HCP Terraform 及 Terraform Enterprise,实现工作空间的创建、变量管理及运行监控等自动化操作。
这一工具主要解决了传统 IaC 开发中人工查阅文档繁琐、环境配置重复以及自动化程度不足的痛点。通过赋予 AI 直接操控基础设施的能力,开发者可以更高效地编写、验证和管理云资源,大幅缩短从代码到部署的周期。
terraform-mcp-server 特别适合 DevOps 工程师、云平台开发者以及希望利用 AI 辅助基础设施管理的团队使用。其技术亮点包括支持 Stdio 和 StreamableHTTP 双重传输模式,便于灵活部署;内置 OpenTelemetry 指标监控,可实时追踪工具调用的延迟与失败率;同时提供细粒度的安全控制,如跨域访问限制和 TLS 配置,确保本地或受控环境下的数据安全。需要注意的是,目前该服务主要面向本地受信任环境,使用时需严格配置访问权限以防范潜在风险。
使用场景
某云原生团队的后端工程师需要在短时间内为新产品搭建一套包含数据库、负载均衡和安全组的多环境基础设施,同时必须确保代码符合公司最新的合规策略。
没有 terraform-mcp-server 时
- 模块检索低效:工程师需手动切换浏览器访问 Terraform Registry 查找官方认证的数据库模块,反复对比版本和参数,耗时且容易选错。
- 上下文频繁断裂:在编写 HCL 代码时,为了确认 HCP Terraform 上现有工作空间的变量配置或运行状态,不得不离开 IDE 去控制台查询,打断开发心流。
- 多环境同步困难:创建测试、预发和生产环境的工作空间时,需重复执行 CLI 命令或手动在网页点击,极易因漏配标签(Tags)或变量导致环境不一致。
- 合规检查滞后:无法在编码阶段实时获取组织内的最新策略模块,往往要等到 CI/CD 流水线报错或人工审计时才发现违规,修复成本高昂。
使用 terraform-mcp-server 后
- 智能模块推荐:直接在 AI 助手对话框中询问“推荐的 AWS RDS 模块”,terraform-mcp-server 即时调用 Registry API 返回最佳实践模块及参数示例,秒级完成选型。
- 无缝状态感知:工程师自然语言询问“生产环境工作空间的数据库版本变量是多少”,工具直接连接 HCP Terraform 返回实时数据,无需离开代码编辑器。
- 一键环境编排:通过指令“基于当前配置为预发环境创建工作空间并打上 CostCenter 标签”,工具自动调用 API 完成创建、变量注入和标签管理,确保零误差。
- 实时策略对齐:在定义资源前,AI 结合工具获取的组织私有策略模块,主动提示当前架构潜在的安全风险并给出修正后的代码建议,将合规左移至开发阶段。
terraform-mcp-server 通过将基础设施的查询、管理与策略能力深度融入开发对话流,把原本割裂的手动操作转变为流畅的自动化闭环,显著提升了 IaC 开发的效率与安全性。
运行环境要求
- Linux
- macOS
- Windows
未说明
未说明

快速开始
Terraform MCP 服务器
Terraform MCP 服务器是一个 模型上下文协议 (MCP) 服务器,它与 Terraform Registry API 进行无缝集成,为基础设施即代码 (IaC) 开发提供了先进的自动化和交互功能。
特性
- 双传输支持:同时支持 Stdio 和 StreamableHTTP 传输,并可配置端点
- Terraform 注册表集成:直接集成公共 Terraform 注册表 API,用于提供程序、模块和策略
- HCP Terraform 和 Terraform Enterprise 支持:全面的工作区管理、组织/项目列表以及私有注册表访问
- 工作区操作:创建、更新、删除工作区,支持变量、标签和运行管理
- OTel 指标用于监控工具使用情况:与 OpenTelemetry 计量器集成,以跟踪 Streamable HTTP 模式下的工具调用量、延迟和失败情况
安全提示: 目前阶段,MCP 服务器仅适用于本地使用。如果使用 StreamableHTTP 传输,请务必配置 MCP_ALLOWED_ORIGINS 环境变量,以限制仅允许受信任的来源访问。这有助于防止 DNS 重绑定攻击和其他跨域漏洞。
安全提示: 根据查询内容,MCP 服务器可能会将某些 Terraform 数据暴露给 MCP 客户端和 LLM。请勿将 MCP 服务器与不受信任的 MCP 客户端或 LLM 一起使用。
法律提示: 您对第三方 MCP 客户端/LLM 的使用完全受该等 MCP/LLM 使用条款的约束,IBM 对此类第三方工具的性能不承担任何责任。IBM 明确声明不对第三方 MCP 客户端/LLM 承担任何保证或责任,并且可能无法为您提供因第三方工具引起的问题的支持服务。
注意事项: MCP 服务器提供的输出和建议是动态生成的,可能会根据查询、模型以及连接的 MCP 客户端而有所不同。用户应在实施之前仔细审查所有输出/建议,以确保其符合贵组织的安全最佳实践、成本效益目标和合规要求。
先决条件
- 确保已安装并运行 Docker,以便在容器化环境中使用该服务器。
- 安装一个支持模型上下文协议 (MCP) 的 AI 助手。
命令行选项
环境变量:
| 变量 | 描述 | 默认值 |
|---|---|---|
TFE_ADDRESS |
HCP Terraform 或 TFE 地址 | "https://app.terraform.io" |
TFE_TOKEN |
Terraform Enterprise API 令牌 | ""(空) |
TFE_SKIP_TLS_VERIFY |
跳过 HCP Terraform 或 Terraform Enterprise TLS 验证 | false |
LOG_LEVEL |
日志级别:trace、debug、info、warn、error、fatal、panic(覆盖 --log-level 标志) |
info |
LOG_FORMAT |
日志格式:text 或 json(覆盖 --log-format 标志) |
text |
TRANSPORT_MODE |
设置为 streamable-http 以启用 HTTP 传输(仍支持旧版 http 值) |
stdio |
TRANSPORT_HOST |
绑定 HTTP 服务器的主机 | 127.0.0.1 |
TRANSPORT_PORT |
HTTP 服务器端口 | 8080 |
MCP_ENDPOINT |
HTTP 服务器端点路径 | /mcp |
MCP_KEEP_ALIVE |
SSE 连接的保持活动间隔(例如 30 秒、1 分钟)。设置为 0 可禁用 | 0 |
MCP_SESSION_MODE |
会话模式:stateful 或 stateless |
stateful |
MCP_ALLOWED_ORIGINS |
允许的 CORS 来源逗号分隔列表 | ""(空) |
MCP_CORS_MODE |
CORS 模式:strict、development 或 disabled |
strict |
MCP_TLS_CERT_FILE |
TLS 证书文件路径,非本地部署时必需(例如 /path/to/cert.pem) |
""(空) |
MCP_TLS_KEY_FILE |
TLS 密钥文件路径,非本地部署时必需(例如 /path/to/key.pem) |
""(空) |
MCP_RATE_LIMIT_GLOBAL |
全局速率限制(格式:rps:burst) |
10:20 |
MCP_RATE_LIMIT_SESSION |
每会话速率限制(格式:rps:burst) |
5:10 |
ENABLE_TF_OPERATIONS |
启用需要明确批准的工具 | false |
OTEL_METRICS_ENABLED |
使用 OTel 启用工具指标 | false |
OTEL_METRICS_SERVICE_VERSION |
发送指标的 terraform-mcp-server 版本,用于设置指标属性。也有助于跟踪不同部署中的指标 | latest |
OTEL_METRICS_SERVICE_NAME |
标识指标来源(例如“terraform-mcp-server”) | terraform-mcp-server |
OTEL_METRICS_EXPORT_INTERVAL |
控制指标刷新频率 | 2 |
OTEL_METRICS_ENDPOINT |
您的 OTel Collector 或后端 URL | localhost:4318 |
# Stdio 模式
terraform-mcp-server stdio [--log-file /path/to/log] [--log-level info] [--log-format text] [--toolsets <toolsets>] [--tools <tools>]
# StreamableHTTP 模式
terraform-mcp-server streamable-http [--transport-port 8080] [--transport-host 127.0.0.1] [--mcp-endpoint /mcp] [--log-file /path/to/log] [--log-level info] [--log-format text] [--toolsets <toolsets>] [--tools <tools>]
指令
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 Code 中的使用
将以下 JSON 块添加到 VS Code 的用户设置(JSON)文件中。您可以通过按 Ctrl + Shift + P 并输入 Preferences: Open User Settings (JSON) 来完成此操作。
有关在 VS Code 的代理模式下使用 MCP 服务器工具的更多信息,请参阅 代理模式文档。
| 版本 0.3.0 及以上 | 版本 0.2.3 或更低 |
|---|---|
|
|
可选地,您可以将类似的示例(即不包含 mcp 键)添加到工作区中的 .vscode/mcp.json 文件中。这将允许您与他人共享配置。
| 版本 0.3.0 及以上 | 版本 0.2.3 或更低 |
|---|---|
|
|
在 Cursor 中的使用
将以下内容添加到您的 Cursor 配置文件 (~/.cursor/mcp.json) 中,或通过“设置”→“Cursor 设置”→“MCP”进行配置:
| 版本 0.3.0 及以上 | 版本 0.2.3 或更低 |
|---|---|
|
|
在 Claude Desktop / Amazon Q Developer / Amazon Q CLI 中的使用
有关在 Claude Desktop 中使用 MCP 服务器工具的更多信息,请参阅 用户文档。有关在 Amazon Q 中使用 MCP 服务器的更多信息,请参阅 文档。
| 版本 0.3.0 及以上 | 版本 0.2.3 或更低 |
|---|---|
|
|
在 Claude Code 中的使用
有关在 Claude Code 中使用和添加 MCP 服务器工具的更多信息,请参阅 用户文档。
- 本地(
stdio)传输
claude mcp add terraform -s user -t stdio -- docker run -i --rm hashicorp/terraform-mcp-server
- 远程(
streamable-http)传输
# 启动服务器(示例)
docker run -p 8080:8080 --rm -e TRANSPORT_MODE=streamable-http -e TRANSPORT_HOST=0.0.0.0 hashicorp/terraform-mcp-server
# 添加到 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
与 Bob IDE / Shell 的使用
关于在 Bob IDE 或 Shell 中使用和添加 MCP 服务器工具的更多信息,请参阅 在 Bob 中使用 MCP。
| 版本 0.3.0 及以上 | 版本 0.2.3 或以下 |
|---|---|
|
|
从源代码安装
使用最新发布版本:
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
| 版本 0.3.0 及以上 | 版本 0.2.3 或以下 |
|---|---|
|
|
在本地构建 Docker 镜像
在使用服务器之前,您需要在本地构建 Docker 镜像:
- 克隆仓库:
git clone https://github.com/hashicorp/terraform-mcp-server.git
cd terraform-mcp-server
- 构建 Docker 镜像:
make docker-build
- 这将创建一个本地 Docker 镜像,您可以在以下配置中使用。
# 以 stdio 模式运行
docker run -i --rm terraform-mcp-server:dev
# 以可流式传输的 HTTP 模式运行
docker run -p 8080:8080 --rm -e TRANSPORT_MODE=streamable-http -e TRANSPORT_HOST=0.0.0.0 terraform-mcp-server:dev
# 筛选工具(可选)
docker run -i --rm terraform-mcp-server:dev --toolsets=registry,terraform
docker run -i --rm terraform-mcp-server:dev --tools=search_providers,get_provider_details
注意: 在 Docker 中运行时,应设置
TRANSPORT_HOST=0.0.0.0以允许来自容器外部的连接。
- (可选)测试 HTTP 模式下的连接
# 测试连接
curl http://localhost:8080/health
- 您可以将其用于您的 AI 助手,如下所示:
{
"mcpServers": {
"terraform": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"terraform-mcp-server:dev"
]
}
}
}
可用工具
可用资源
工具筛选
使用 --toolsets(组)或 --tools(单个工具)来控制哪些工具可用:
# 启用工具组(默认:registry)
terraform-mcp-server --toolsets=registry,terraform
# 仅启用特定工具
terraform-mcp-server --tools=search_providers,get_provider_details,list_workspaces
可用工具集:registry、registry-private、terraform、all、default。有关单个工具名称,请参阅 pkg/toolsets/mapping.go 文件。不能同时使用这两个标志。
传输支持
Terraform MCP 服务器支持多种传输协议:
1. Stdio 传输(默认)
使用 JSON-RPC 消息进行标准输入/输出通信。非常适合本地开发和直接与 MCP 客户端集成。
2. 可流式传输的 HTTP 传输
现代基于 HTTP 的传输,支持直接 HTTP 请求和服务器发送事件 (SSE) 流。这是推荐用于远程/分布式部署的传输方式。
功能:
- 端点:
http://{hostname}:8080/mcp - 健康检查:
http://{hostname}:8080/health - 环境配置:设置
TRANSPORT_MODE=http或TRANSPORT_PORT=8080以启用
会话模式
Terraform MCP 服务器在使用可流式传输的 HTTP 传输时支持两种会话模式:
- 有状态模式(默认):在请求之间保持会话状态,从而实现上下文感知的操作。
- 无状态模式:每个请求独立处理,不保持会话状态,这在高可用性部署或使用负载均衡器时非常有用。
要启用无状态模式,请设置环境变量:
export MCP_SESSION_MODE=stateless
故障排除
企业代理 / TLS 检查(Zscaler 等)
如果您位于执行 TLS 检查的企业代理之后(如 Zscaler Internet Access),可能会看到证书错误:
tls: failed to verify certificate: x509: certificate signed by unknown authority
解决方案:将您的企业 CA 证书挂载到容器中:
docker run -i --rm \
-v /path/to/corporate-ca.pem:/etc/ssl/certs/corporate-ca.pem \
-e SSL_CERT_FILE=/etc/ssl/certs/corporate-ca.pem \
hashicorp/terraform-mcp-server:0.5.0
对于 MCP 客户端配置:
{
"mcpServers": {
"terraform": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v", "/path/to/corporate-ca.pem:/etc/ssl/certs/corporate-ca.pem",
"-e", "SSL_CERT_FILE=/etc/ssl/certs/corporate-ca.pem",
"-e", "TFE_TOKEN=<>",
"hashicorp/terraform-mcp-server:0.5.0"
]
}
}
}
替代方案:直接运行二进制文件
如果您的环境中不允许使用 Docker,您可以直接安装并运行服务器二进制文件,它将使用您系统的证书存储:
go install github.com/hashicorp/terraform-mcp-server/cmd/terraform-mcp-server@latest
terraform-mcp-server stdio
开发
先决条件
- Go(请参阅 go.mod 文件以获取具体版本)
- Docker(可选,用于容器构建)
可用的 Make 命令
| 命令 | 描述 |
|---|---|
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 |
显示所有可用命令 |
贡献
- 分支仓库
- 创建您的功能分支
- 进行更改
- 运行测试
- 提交拉取请求
许可证
本项目依据 MPL-2.0 开源许可证条款授权。完整条款请参阅 LICENSE 文件。
安全
如遇安全问题,请联系 security@hashicorp.com,或遵循我们的 安全政策。
支持
如需提交 bug 报告或功能请求,请在 GitHub 上创建 issue。
如需进行一般性问题讨论,请在 GitHub Discussions 中发帖。
版本历史
v0.5.02026/04/01v0.4.02026/01/22v0.3.32025/11/21v0.3.22025/10/24v0.3.12025/10/04v0.3.02025/09/25v0.2.32025/08/13v0.2.22025/08/06v0.2.12025/07/12v0.2.02025/07/03v0.1.02025/05/19常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
OpenHands
OpenHands 是一个专注于 AI 驱动开发的开源平台,旨在让智能体(Agent)像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点,通过自动化流程显著提升开发速度。 无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员,还是需要快速原型验证的技术团队,都能从中受益。OpenHands 提供了灵活多样的使用方式:既可以通过命令行(CLI)或本地图形界面在个人电脑上轻松上手,体验类似 Devin 的流畅交互;也能利用其强大的 Python SDK 自定义智能体逻辑,甚至在云端大规模部署上千个智能体并行工作。 其核心技术亮点在于模块化的软件智能体 SDK,这不仅构成了平台的引擎,还支持高度可组合的开发模式。此外,OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩,证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能,支持与 Slack、Jira 等工具集成,并提供细粒度的权限管理,适合从个人开发者到大型企业的各类用户场景。