tfmcp
让 Claude 直接对话 Terraform,MCP 协议驱动的 IaC 智能运维工具
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让 Claude 直接对话 Terraform,MCP 协议驱动的 IaC 智能运维工具
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
在云基础设施即代码(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 代码,也能在执行前被拦截。