← 返回目录
T

tfmcp

社区
面向 Terraform 的本地优先 MCP 服务器。
分类
开发工具 第 60 / 438
Stars
★ 372 非常热门
传输方式
stdio(本地进程) · Streamable HTTP
运行环境
Rust 1.88.0+ · 预编译二进制 · Docker
凭据
可选 API Key
许可证
MIT
最近提交
工具数
82
64FMRS · C

MIT 许可的非官方 Terraform MCP 服务器,功能覆盖广,并提供默认关闭的危险操作、审计日志、目录保护和远程访问安全配置。适合审查和辅助运维,但执行基础设施写入前必须进行人工计划审查。

最强项 · 文档质量 15/20 最弱项 · 可靠性 10/20

可靠性
10/20
安全与权限
14/20
维护活跃度
12/20
文档质量
15/20
安装易用性
13/20
查看各项评分依据
可靠性 10/20
静态材料显示服务器支持 stdio 和 Streamable HTTP,并声明实现 MCP 初始化、工具与资源发现、结构化结果、会话及错误处理;README 还列出 82 个工具和大量外部依赖。但未提供源码、CI 工作流或可核验的提交测试来证明启动、握手、工具行为与异常路径,且能力范围很大,声明与实际行为无法静态交叉验证。因此按静态校准不超过 12 分,扣除可复现性、边界情况和依赖可控性的证据不足。
安全与权限 14/20
证据显示危险的 apply/destroy 和 HCP/TFE 写操作默认关闭,并有显式环境门控、auto-approve 门控、资源上限、目录校验、审计日志、敏感日志默认关闭、组织白名单、Origin/Host 校验、限流和 TLS 配置;TFE_TOKEN 被标记为秘密且不接受请求级凭据覆盖。仍缺少源码证据证明这些控制确实覆盖所有路径,也未明确展示每次破坏性操作的交互式确认、敏感输出隔离和远程 HTTP 的认证模型;TFE_SKIP_TLS_VERIFY 及广泛的状态/变量读取也保留风险。未发现红线风险,但因权限边界无法完全核验而扣分。
维护活跃度 12/20
仓库未归档,使用 MIT 许可证,当前版本为 0.2.2,README 描述了发布流程、版本同步和贡献检查,并报告 0 个开放 issue。这表明存在版本化和基本维护入口;但提供的材料没有提交频率、CI 状态、依赖更新记录、漏洞响应渠道或明确维护者信息,且 README 称项目仍在积极开发。因此不能按持续、可审计维护给予高分。
文档质量 15/20
README 提供了安装方式、Cargo/Docker/Claude Desktop 配置示例、工具分类、资源、环境变量、安全默认值、HTTP 端点、常见故障和发布流程,覆盖面较好。扣分项包括工具参数和返回/错误契约不完整,认证、成本、平台兼容性和实际限制披露有限,部分功能主要以声明形式出现而缺少源码或运行证据;Docker 与自动创建示例项目的行为也缺少更深入的风险说明。
安装易用性 13/20
提供 Cargo、源码和 Docker 安装路径,并包含 Claude Desktop 的 stdio 配置和 Streamable HTTP 示例,默认使用本地目录与 loopback,基本连接步骤清晰。扣分原因是需要预装 Rust、特定 Terraform CLI、客户端和可能的 Docker,Docker 挂载/权限需要手动处理,远程 HTTP 的认证与生产部署步骤不完整,且没有可验证的跨平台或实际连接测试证据。

静态评测 · 未实际运行收录于 2026-08-14

查看 FMRS 评分方法 →

选型与风险

能访问什么读取本地文件写入 / 删除本地文件执行命令或代码访问网络修改第三方账户数据

适合谁

  • 需要通过 AI 助手检查 Terraform 项目和计划的开发者。
  • 使用 Claude Desktop 管理本地 Terraform 工作目录的用户。
  • 需要计划风险、状态漂移、模块健康或安全检查的团队。

不适合谁

  • 需要无人工审查地执行基础设施变更的场景。
  • 不使用 Terraform CLI 或无法提供 Terraform 项目目录的用户。
  • 要求项目已稳定完成且不接受活跃开发风险的生产环境。

所需权限

  • 读取和操作 TERRAFORM_DIR 指定的 Terraform 项目目录。
  • 访问 PATH 中的 Terraform CLI。
  • 查询 HCP Terraform/Terraform Enterprise 时使用配置的 TFE_ADDRESS 和 TFE_TOKEN。
  • 启用写入操作时,需要相应的 Terraform 或 HCP/TFE 权限。

风险与副作用

  • apply 和 destroy 默认禁用,但启用后可能改变或销毁基础设施。
  • auto-approve 默认禁用;启用后会减少人工确认。
  • 错误的目录、凭据、权限或 AI 生成的计划可能造成非预期变更。
  • Streamable HTTP 配置不当可能扩大网络访问范围;TLS 私钥和 TFE_TOKEN 属于敏感信息。
  • 项目仍在积极开发中,生产使用前应审查所有操作。

安装接入

准备工作

运行环境:Rust 1.88.0+ · 预编译二进制 · Docker

TFE_TOKEN 可选密钥 HCP Terraform/TFE 的 API token,可在 HCP Terraform 账户设置中生成。
MCP_TLS_KEY_FILE 可选密钥 HTTPS streamable-http 的 PEM 私钥文件。
其他可选配置项(28 个)
TERRAFORM_DIR 可选 Terraform 项目目录,未设置时回退到命令行参数、配置文件或 ~/terraform。
TFMCP_LOG_LEVEL 可选 日志级别,可选 debug/info/warn/error。
TFMCP_DEMO_MODE 可选 设为 true 启用带额外安全特性的演示模式。
ENABLE_TF_OPERATIONS 可选 设为 true 才能启用 HCP Terraform/TFE 写操作工具,默认关闭。
TFMCP_ALLOW_DANGEROUS_OPS 可选 设为 true 才允许 apply/destroy 等改变基础设施的操作,默认关闭。
TFMCP_ALLOW_AUTO_APPROVE 可选 设为 true 允许危险操作自动批准,默认关闭。
TFMCP_MAX_RESOURCES 可选 可管理资源的最大数量,默认 50。
TFMCP_AUDIT_ENABLED 可选 设为 false 关闭审计日志,默认开启。
TFMCP_AUDIT_LOG_FILE 可选 审计日志自定义路径,默认 ~/.tfmcp/audit.log。
TFMCP_AUDIT_LOG_SENSITIVE 可选 设为 true 时审计日志包含敏感信息,默认 false。
TFE_ADDRESS 可选 HCP Terraform 或 Terraform Enterprise 的基础 URL,默认 https://app.terraform.io。
TFE_SKIP_TLS_VERIFY 可选 仅在可信私有 TFE 自定义 TLS 环境下设为 true。
TFE_MAX_RESPONSE_BYTES 可选 返回给 MCP 客户端的 HCP/TFE 响应字节上限,默认 65536。
TRANSPORT_MODE 可选 MCP 传输模式:stdio(默认)或 streamable-http。
TRANSPORT_HOST 可选 streamable-http 模式的绑定主机,默认 127.0.0.1。
TRANSPORT_PORT 可选 streamable-http 模式的绑定端口,默认 8080。
MCP_ENDPOINT 可选 streamable-http 的 MCP 端点路径,默认 /mcp。
MCP_HEALTH_ENDPOINT 可选 健康检查端点路径,默认 /health。
MCP_METRICS_ENDPOINT 可选 OTel 兼容 JSON 指标端点路径,默认 /metrics。
MCP_SESSION_MODE 可选 stateful(默认)或 stateless,仅适用于 2026-07-28 之前的协议版本客户端。
MCP_HEARTBEAT_INTERVAL 可选 SSE keep-alive 间隔秒数,设为 0 禁用,默认 15。
MCP_CORS_MODE 可选 CORS 策略:strict(默认)、development 或 disabled。
MCP_ALLOWED_ORIGINS 可选 逗号分隔的允许浏览器来源,默认仅回环地址。
MCP_ALLOWED_HOSTS 可选 逗号分隔的允许 HTTP Host 值,默认 rmcp 回环主机。
MCP_ORGANIZATION_ALLOWLIST 可选 逗号分隔的允许远程请求访问的 HCP/TFE 组织名。
MCP_RATE_LIMIT_GLOBAL 可选 整个服务器每分钟最大 HTTP 请求数,0 或不设为禁用。
MCP_RATE_LIMIT_SESSION 可选 每个 MCP 会话每分钟最大 HTTP 请求数,0 或不设为禁用。
MCP_TLS_CERT_FILE 可选 HTTPS streamable-http 的 PEM 证书文件。

安装 Rust 1.88.0 或更高版本、Terraform CLI 1.15.8,并通过 Cargo 安装 tfmcp,或从源代码构建。将配置中的可执行文件路径和可选的 TERRAFORM_DIR 替换为实际值,保存到 Claude Desktop 配置文件后重启 Claude Desktop。也可使用 Docker。

claude_desktop_config.json
{"mcpServers":{"tfmcp":{"command":"/path/to/your/tfmcp","args":["mcp"],"env":{"HOME":"/Users/yourusername","PATH":"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin","TERRAFORM_DIR":"/path/to/your/terraform/project"}}}}

以 Claude Desktop 为例。其他客户端的配置文件位置或字段可能不同(如 VS Code 使用 servers 字段),可用下方配置生成器转换。

.vscode/mcp.json
{
  "servers": {
    "tfmcp": {
      "command": "/path/to/your/tfmcp",
      "args": [
        "mcp"
      ],
      "env": {
        "HOME": "/Users/yourusername",
        "PATH": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",
        "TERRAFORM_DIR": "/path/to/your/terraform/project"
      }
    }
  }
}

写入项目的 .vscode/mcp.json(VS Code 使用 servers 字段)。

Terminal
claude mcp add tfmcp -e HOME=/Users/yourusername -e PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin -e TERRAFORM_DIR=/path/to/your/terraform/project -- /path/to/your/tfmcp mcp

在终端运行;先把 <…> 占位符换成你自己的值。

验证是否装好

安装后在 Claude Desktop 的工具列表中应能看到 tfmcp 的 82 个工具(如 init_terraform、analyze_plan)。也可以运行 `tfmcp --help` 确认 CLI 可用,或在 streamable-http 模式下访问 http://127.0.0.1:8080/health。

常见排障

  1. 确认可执行文件路径正确,并确认 Terraform CLI 已安装且在 PATH 中。
  2. 检查 TERRAFORM_DIR 是否指向正确的项目目录。
  3. Claude Desktop 无法连接时查看其 MCP 日志。
  4. Docker 使用时确认卷挂载、路径和权限正确。
  5. 遇到方法未找到错误时,确认客户端使用的是已实现的 MCP 工具和资源方法。

试试这样问

连接成功后,可以直接对 AI 助手这样说:

  • 检查我的 Terraform 项目里有哪些根模块入口点,并分析配置质量。
  • 生成当前项目的执行计划,并给出风险评分和改进建议。
  • 搜索 Terraform Registry 中的 AWS provider,列出最新版本和文档。
  • 检查当前状态是否有漂移,并列出所有托管资源。

工具能力 82

init_terraform 写入
初始化 Terraform 工作目录。
get_terraform_plan 只读
生成并显示执行计划。
analyze_plan 只读
分析计划、风险并提供建议。
apply_terraform 破坏性
应用 Terraform 配置。
destroy_terraform 破坏性
销毁 Terraform 管理的基础设施。
validate_terraform 只读
验证配置语法。
validate_terraform_detailed 只读
执行详细验证并提供指南。
get_terraform_state 只读
显示当前状态。
展开其余 74 个工具
analyze_state 只读
分析状态并检测漂移。
review_terraform_plan 只读
审查计划风险、阻塞项和破坏性变更。
summarize_plan_for_pr 只读
生成用于 PR 评论的计划摘要。
run_terraform_quality_checks 只读
运行验证、模块健康、指南和锁文件检查。
inspect_state_safety 只读
检查状态可读性、漂移风险和阻塞项。
detect_drift_candidates 只读
从可读状态中检测潜在漂移,不修改基础设施。
prepare_terraform_change 只读
生成变更阻塞项、警告和建议顺序。
list_terraform_resources 只读
列出所有受管理资源。
set_terraform_directory 写入
更改当前项目目录。
terraform_workspace 写入
管理 Terraform 工作区。
terraform_import 写入
导入现有资源。
terraform_taint 写入
标记或取消标记资源。
terraform_refresh 写入
刷新状态。
terraform_fmt 写入
格式化 Terraform 代码。
terraform_graph 只读
生成依赖图。
terraform_output 只读
获取输出值。
terraform_providers 只读
获取提供商及锁文件信息。
check_provider_lockfile 只读
检查锁文件中的可复现提供商选择。
analyze_terraform 只读
分析 Terraform 配置。
inspect_terraform_project 只读
检查本地 Terraform 目录、模块和入口点。
detect_terraform_entrypoints 只读
检测可能的根模块入口点。
analyze_module_health 只读
分析模块健康度、内聚性和耦合度。
get_resource_dependency_graph 只读
获取资源依赖关系图。
suggest_module_refactoring 只读
提供模块重构建议。
get_security_status 只读
执行安全扫描和密钥检测。
search_providers 只读
搜索提供商。
search_terraform_providers 只读
搜索 Terraform 提供商。
get_provider_details 只读
获取提供商详情。
get_provider_info 只读
获取提供商信息。
get_provider_docs 只读
获取提供商文档。
get_provider_capabilities 只读
获取提供商资源、数据源、函数和指南。
search_modules 只读
搜索模块。
search_terraform_modules 只读
搜索 Terraform 模块。
get_module_details 只读
获取模块详情。
get_latest_module_version 只读
获取最新模块版本。
get_latest_provider_version 只读
获取最新提供商版本。
search_policies 只读
搜索 Sentinel/OPA 策略库。
get_policy_details 只读
获取策略库详情。
get_token_permissions 只读
查看令牌账户详情但不暴露令牌。
list_terraform_orgs 只读
列出可见组织。
list_terraform_projects 只读
列出组织中的项目。
list_workspaces 只读
列出组织中的工作区。
get_workspace_details 只读
按 ID 或组织/名称获取工作区详情。
list_runs 只读
列出工作区运行。
get_run_details 只读
获取运行详情。
get_plan_details 只读
获取计划详情。
get_plan_logs 只读
获取计划日志。
get_plan_json_output
获取 Terraform JSON 计划输出。
get_apply_details 只读
获取应用详情。
get_apply_logs 只读
获取应用日志。
get_workspace_policy_sets 只读
获取附加到工作区的策略集。
list_workspace_variables 只读
列出工作区变量。
list_variable_sets 只读
列出组织变量集。
read_workspace_tags 只读
读取工作区标签。
list_stacks 只读
列出 Terraform stacks。
get_stack_details 只读
获取 stack 详情。
search_private_modules 只读
搜索私有 Registry 模块。
get_private_module_details 只读
获取私有模块详情。
search_private_providers 只读
搜索私有 Registry 提供商。
get_private_provider_details 只读
获取私有提供商详情。
create_workspace 写入
创建工作区,需启用受保护的操作。
update_workspace 写入
更新工作区设置,需启用受保护的操作。
delete_workspace_safely 破坏性
安全删除工作区,需启用受保护的操作。
create_run 写入
排队运行,需启用受保护的操作。
action_run 破坏性
应用、丢弃、取消或执行运行,需启用受保护的操作。
create_workspace_variable 写入
创建工作区变量,需启用受保护的操作。
update_workspace_variable 写入
更新工作区变量,需启用受保护的操作。
attach_policy_set_to_workspace 写入
将策略集附加到工作区,需启用受保护的操作。
create_variable_set 写入
创建变量集,需启用受保护的操作。
create_variable_in_variable_set 写入
在变量集中创建变量,需启用受保护的操作。
delete_variable_in_variable_set 破坏性
从变量集中删除变量,需启用受保护的操作。
attach_variable_set_to_workspaces 写入
将变量集附加到工作区,需启用受保护的操作。
detach_variable_set_from_workspaces 写入
从工作区分离变量集,需启用受保护的操作。
create_workspace_tags 写入
创建或附加工作区标签,需启用受保护的操作。

使用场景

读取、验证、格式化和分析 Terraform 配置。
生成、审查和总结 Terraform 计划。
执行受保护的本地 Terraform 应用、销毁和状态操作。
查询 Terraform Registry、HCP Terraform 和 Terraform Enterprise。

支持客户端

Claude Desktop

依据项目文档列出,未经本站实测。

详细介绍

tfmcp 是一个实验性的命令行 MCP 服务器,可让 AI 助手读取和分析 Terraform 配置与计划,执行配置和状态工作流,并查询公共或私有 Terraform Registry。它支持 stdio 与 Streamable HTTP,并提供 HCP Terraform/Terraform Enterprise 的只读工具及受安全开关保护的写入工具。项目仍在积极开发中。

同类可选方案

Context7 80 · B

Upstash 官方维护,为 AI 编码助手提供实时更新的第三方库文档

★ 63.3k · 工具数 2 与当前对比 →

源版本 3f6324ff91cf 数据同步于 2026-10-19 查看 FMRS 评分方法