tfmcp
nwiizo/tfmcp加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
在云基础设施即代码(IaC)领域,Terraform 早已是企业级用户的首选工具。然而,Terraform 的学习曲线之陡峭,令无数开发者望而生畏——你需要熟记 HCL 语法、理解 provider 机制、学会解读执行计划,还要小心翼翼地管理 state 文件。一旦操作失误,轻则资源泄露,重则账单爆炸。
nwiizo 的出现改变了这个局面。tfmcp(Terraform Model Context Protocol Tool)是一个实验性的 Rust CLI 工具,通过 MCP(Model Context Protocol)协议,将 Terraform 的所有核心能力以 AI 友好的工具形式暴露给大语言模型。这意味着:Claude Desktop 可以直接「对话」你的 Terraform 环境,读配置、分析计划、执行部署、管理状态——全程无需人工干预。
tfmcp 采用纯 Rust 开发,使用 Rust 2024 Edition(需要 Rust 1.85+),核心依赖包括:
代码结构按职责分为四大模块:
| 模块 | 路径 | 职责 |
|---|---|---|
core/ | 主逻辑层 | 应用入口、配置管理 |
mcp/ | 协议层 | MCP Server 实现、工具定义、资源管理 |
terraform/ | 集成层 | Terraform CLI 调用、计划解析、状态分析 |
formatters/ | 展示层 | 格式化输出(JSON/文本/图形) |
其中 terraform/ 模块是项目最核心的部分,包含 15 个子模块,涵盖了 Terraform 生命周期的全链路:init、plan、apply、destroy、validate、fmt、graph、import、taint、refresh、output、providers、workspace,以及两个高级分析模块——plan_analyzer.rs(计划风险评分)和 state_analyzer.rs(状态漂移检测)。
tfmcp 提供 31 个 MCP 工具,分四类:
从基础的 init_terraform、get_terraform_plan、apply_terraform、destroy_terraform 到 validate_terraform_detailed(含编码规范检查),覆盖日常操作的完整链条。
analyze_plan:对 Terraform 执行计划进行结构化分析,给出风险评分和安全建议。这不是简单的文本输出,而是将计划内容结构化后输出 JSON,包含每个资源变更的风险等级。analyze_state:深度检查 state 文件,检测基础设施漂移(drift detection)——即 Terraform 配置与实际云环境之间的差异。这在多人协作或手动修改资源的场景下尤为重要。tfmcp 直接集成 Terraform Registry API,提供 search_terraform_providers、search_terraform_modules 等工具。AI 可以直接在对话中搜索、查看 provider 和 module 的文档,无需跳出到浏览器。
analyze_module_health:将软件工程度量(内聚度/耦合度)引入 IaC,对模块进行健康评分和重构建议。这是 tfmcp 最具特色的功能之一——它不只是一个 Terraform 调用器,更是一个 IaC 质量分析工具。get_resource_dependency_graph:可视化资源间的依赖关系,区分显式 depends_on 和隐式引用依赖,输出 DOT 格式的依赖图。tfmcp 在 v0.1.8 后引入了完整的企业级安全体系:
apply_terraform 和 destroy_terraform 默认关闭,必须显式设置 TFMCP_ALLOW_DANGEROUS_OPS=true 才能启用prod*、production*、secret* 等危险路径模式~/.tfmcp/audit.log方式一:cargo install(推荐开发用)
cargo install tfmcp
一行命令安装,依赖 Rust 工具链(1.85+),适合已经在本地配置了 Rust 环境的开发者。
方式二:Docker(推荐生产用)
docker build -t tfmcp .
docker run -it -v /path/to/your/terraform:/app/terraform tfmcp --dir /app/terraform
tfmcp 提供了多阶段 Dockerfile,builder 阶段使用 rust:1.84.0-slim-bullseye,运行时镜像为 debian:bullseye-slim,体积优化到最小。内置 Terraform 1.11.1,支持 x86_64 和 arm64 两种架构。
方式三:Claude Desktop 集成
tfmcp 的设计目标就是与 Claude Desktop 无缝集成。只需在 claude_desktop_config.json 中添加 MCP Server 配置,Claude 即可直接调用 tfmcp 的全部 31 个工具。tfmcp 还会在 ~/terraform 自动创建示例项目,让 Claude 一启动就能开始工作。
| 场景 | 适用性 | 说明 |
|---|---|---|
| 个人学习 Terraform | ★★★★☆ | Claude 引导式学习,边用边学 |
| IaC 质量审计 | ★★★★★ | 健康分析 + 依赖图,极其实用 |
| 多环境管理 | ★★★★☆ | workspace 支持完善 |
| 生产自动化 | ★★★☆☆ | 安全机制完善,但需谨慎配置 |
| 团队协作 | ★★★★☆ | 审计日志 + 危险操作管控 |
tfmcp 并非完美。首先,它是一个纯 CLI 工具,没有 Web 界面,所有交互必须通过 Claude Desktop 或其他 MCP Client 进行。其次,Terraform 版本依赖固定(1.11.1),更新 Terraform 版本需要重新构建 Docker 镜像。第三,apply/destroy 操作的风险始终存在——即使有安全机制,AI 生成的 Terraform 代码质量仍取决于 prompt 的精确程度。
此外,项目本身标注为「实验性」且仍在活跃开发中,API 可能出现不兼容变更。
tfmcp 的出现代表了 AI 编程工具从「辅助代码补全」向「端到端任务执行」的进化。通过 MCP 协议,AI 不再只是生成 Terraform 配置片段,而是真正接管了「读配置→分析→规划→执行→验证」的完整闭环。结合内置的架构健康分析和漂移检测,tfmcp 有潜力成为 AI 时代 IaC 运维的核心基础设施。
图1:tfmcp 与 Claude Desktop 的集成架构
tfmcp 作为 MCP Server 运行,Claude Desktop 通过 MCP 协议调用其 31 个工具,工具底层封装了 Terraform CLI 调用,返回结构化结果供 Claude 理解和使用。
图2:tfmcp 模块架构
src/
├── core/ → 应用主逻辑、配置
├── mcp/ → MCP Server (server.rs + types.rs + resources.rs)
├── terraform/ → Terraform CLI 集成 (15个子模块)
│ ├── parser.rs 解析 HCL 配置
│ ├── plan_analyzer.rs 计划分析 + 风险评分
│ ├── state_analyzer.rs 状态漂移检测
│ ├── analyzer.rs 配置质量分析
│ └── ...
└── formatters/ → 输出格式化
图3:安全机制工作流程
tfmcp 在每次危险操作前都会经过多层检查:环境变量配置检查 → 敏感路径模式匹配 → 资源数量限制 → 用户确认提示 → 审计日志记录。这套机制确保即使 AI 生成了错误的 Terraform 代码,也能在执行前被拦截。