2025-5-11
Words 1981Read Time 5 min
Score:85

一个基于MCP协议的CLI工具,用于通过AI助手管理和操作Terraform环境,支持读取配置、分析计划、应用配置和管理状态。

tfmcp: Terraform 模型上下文协议工具

⚠️ 本项目处于实验阶段。功能可能会在不通知的情况下发生变化。请谨慎使用!⚠️
tfmcp 是一个命令行工具,旨在通过模型上下文协议(Model Context Protocol, MCP)帮助你与 Terraform 进行交互。它允许大型语言模型(LLMs)管理和操作你的 Terraform 环境,包括:

🎮 演示

观看 tfmcp 与 Claude Desktop 的实际操作:
!tfmcp 与 Claude Desktop 的演示
  • 读取 Terraform 配置文件
  • 分析 Terraform 计划输出
  • 应用 Terraform 配置
  • 管理 Terraform 状态
  • 创建和修改 Terraform 配置

🎉 最新版本

tfmcp 的第一个稳定版本(v0.1.1)现已在 Crates.io 上发布!你可以使用 Cargo 轻松安装它:

功能

  • 🚀 Terraform 集成深度集成 Terraform CLI,用于分析和执行操作。
  • 📄 MCP 服务器功能作为模型上下文协议服务器运行,允许 AI 助手访问和管理 Terraform。
  • ⚡️ 极速处理由 Rust 生态系统提供支持,处理速度极快。
  • 🛠️ 自动设置在需要时自动创建示例 Terraform 项目,确保即使是新用户也能顺利操作。
  • 🐳 Docker 支持在容器化环境中运行 tfmcp,所有依赖项均已预安装。

安装

从源码安装

从 Crates.io 安装

使用 Docker

要求

  • Rust(2021 版)
  • 已安装 Terraform CLI 并在 PATH 中可用
  • Claude Desktop(用于 AI 助手集成)
  • Docker(可选,用于容器化部署)

使用

使用 Docker

在使用 Docker 时,你可以像这样运行 tfmcp 命令:

与 Claude Desktop 集成

要使用 tfmcp 与 Claude Desktop 集成:
  1. 如果尚未安装 tfmcp,请先安装:
    1. 或者,你可以使用 Docker:
  1. 找到你安装的 tfmcp 可执行文件的路径:
    1. 将以下配置添加到 ~/Library/Application\ Support/Claude/claude_desktop_config.json
    如果你在 Claude Desktop 中使用 Docker,可以像这样设置配置:
    1. 重启 Claude Desktop 并启用 tfmcp 工具。
    1. 如果不存在 Terraform 项目,tfmcp 会自动在 ~/terraform 中创建一个示例项目,确保 Claude 可以立即开始使用 Terraform。示例项目基于本仓库 example/demo 目录中的示例。

    日志和故障排除

    tfmcp 服务器日志位于:
    常见问题及解决方案:
    • Claude 无法连接到服务器:确保配置中 tfmcp 可执行文件的路径正确
    • Terraform 项目问题:如果未找到 Terraform 项目,tfmcp 会自动创建示例项目
    • 方法未找到错误:MCP 协议支持包括 resources/list 和 prompts/list 方法
    • Docker 问题:如果使用 Docker,请确保容器具有正确的卷挂载和权限

    环境变量

    • TERRAFORM_DIR:设置此变量以指定自定义的 Terraform 项目目录。如果未设置,tfmcp 将使用命令行参数、配置文件提供的目录,或回退到 ~/terraform。你还可以在运行时使用 set_terraform_directory 工具更改项目目录。
    • TFMCP_LOG_LEVEL:设置为 debuginfowarnerror 以控制日志的详细程度。
    • TFMCP_DEMO_MODE:设置为 true 以启用演示模式,该模式包含额外的安全功能。

    安全注意事项

    使用 tfmcp 时,请注意以下安全事项:
    • tfmcp 会代表你执行 Terraform 命令,这些命令可能会创建、修改或销毁基础设施
    • 在生产环境中,请考虑使用适当的 IAM 权限和角色边界
    • 在应用所有 Terraform 计划之前,请仔细审查,尤其是由 AI 生成的计划
    • Terraform 状态中的敏感信息可能会被 AI 助手访问
    • 使用 Docker 时,请谨慎处理可能暴露敏感数据的卷挂载

    贡献

    欢迎贡献!请随时提交 Pull Request。
    1. Fork 仓库
    1. 创建你的功能分支(git checkout -b feature/amazing-feature
    1. 提交你的更改(git commit -m '添加一些神奇的功能'
    1. 推送到分支(git push origin feature/amazing-feature
    1. 打开 Pull Request

    路线图

    以下是 tfmcp 计划中的改进和未来功能:

    已完成

    基本 Terraform 集成与 Terraform CLI 的核心集成,用于分析和执行操作。
    MCP 服务器实现为 AI 助手实现模型上下文协议服务器的初始版本。
    自动项目创建添加功能,在需要时自动创建示例 Terraform 项目。
    Claude Desktop 集成支持与 Claude Desktop 的无缝集成。
    核心 MCP 方法实现包括 resources/list 和 prompts/list 在内的基本 MCP 方法。
    错误处理改进改进错误处理和恢复机制,确保操作稳健。
    动态项目目录切换添加功能,无需重启服务即可更改活动的 Terraform 项目目录。
    Crates.io 发布将包发布到 Crates.io,便于通过 Cargo 安装。
    Docker 支持添加容器化支持,便于部署和跨平台兼容。

    进行中

    增强的 Terraform 分析实现更深层次的 Terraform 配置、计划和状态文件的解析和分析。
    多环境支持添加对管理多个 Terraform 环境、工作区和模块的支持。
    安全增强改进安全功能,包括更好的身份验证和授权机制。
    扩展的 MCP 协议支持实现更多的 MCP 方法和功能,以丰富与 AI 助手的集成。
    交互式 TUI开发基于终端的用户界面,便于本地使用和调试。
    成本估算与云提供商定价 API 集成,为 Terraform 计划提供成本估算。
    性能优化优化大型 Terraform 项目的资源使用和响应时间。
    与其他 AI 平台集成扩展支持,超越 Claude,支持其他 AI 助手和平台。
    全面的测试框架扩展测试覆盖范围,包括与真实 Terraform 配置的集成测试。
    插件系统开发插件架构,允许扩展核心功能。

    许可证

    本项目采用 MIT 许可证 - 详见 LICENSE 文件。
    上一篇
    upbit-mcp-server
    下一篇
    zettelkasten-mcp