← 返回目录
T

tfmcp

社区
面向 Terraform 的本地优先 MCP 服务器。
GitHub 源仓库 ↗
★ 371 Stars 分类 · 开发工具 非常热门 源版本 33864fadd63e
64FMRS · C
可靠性
10/20
安全与权限
14/20
维护活跃度
12/20
文档质量
15/20
安装易用性
13/20

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

查看 FMRS 评分方法 →

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

工具能力

init_terraform
初始化 Terraform 工作目录。
get_terraform_plan
生成并显示执行计划。
analyze_plan
分析计划、风险并提供建议。
apply_terraform
应用 Terraform 配置。
destroy_terraform
销毁 Terraform 管理的基础设施。
validate_terraform
验证配置语法。
validate_terraform_detailed
执行详细验证并提供指南。
get_terraform_state
显示当前状态。
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
创建或附加工作区标签,需启用受保护的操作。

安装接入

安装 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"}}}}

选型与风险

适合谁

  • 需要通过 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 属于敏感信息。
  • 项目仍在积极开发中,生产使用前应审查所有操作。

常见排障

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

使用场景

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

支持客户端

Claude Desktop完整支持