使用说明

项目简介

tfmcp (Terraform Model Context Protocol Tool) 是一个命令行工具,它作为 MCP 服务器运行,旨在桥接 LLM 客户端和 Terraform,使 AI 助手能够管理和操作 Terraform 环境。

主要功能点

  • Terraform 集成: 深度集成 Terraform CLI,支持 Terraform 配置文件的读取、分析、执行计划、应用配置、状态管理等操作。
  • MCP 服务器: 实现 Model Context Protocol 服务器,允许 AI 助手通过标准协议访问和管理 Terraform 功能。
  • 工具 (Tools) 注册和执行: 注册了一系列 Terraform 相关工具,如 'list_terraform_resources', 'analyze_terraform', 'get_terraform_plan', 'apply_terraform', 'destroy_terraform', 'validate_terraform', 'get_terraform_state', 'init_terraform', 'set_terraform_directory',允许 LLM 客户端调用这些工具来执行 Terraform 操作。
  • 自动项目创建: 在没有 Terraform 项目时,自动创建示例 Terraform 项目,方便用户快速开始使用。

安装步骤

  1. 安装 Rust 和 Cargo: 如果尚未安装 Rust,请访问 https://www.rust-lang.org/tools/install 按照指引安装 Rust 工具链。
  2. 安装 Terraform CLI: 确保已安装 Terraform CLI,并将其添加到系统 PATH 环境变量中。
  3. 安装 tfmcp: 使用 Cargo 安装 tfmcp:
    cargo install tfmcp

服务器配置

对于 MCP 客户端(例如 Claude Desktop),需要配置 tfmcp 服务器的启动信息。以下是一个示例 'claude_desktop_config.json' 配置,用于集成 tfmcp:

{
  "mcpServers": {
    "tfmcp": {
      "command": "/path/to/your/tfmcp",  // 替换为 tfmcp 可执行文件的实际路径 (例如: 'which tfmcp' 的输出)
      "args": ["mcp"],                   // 启动 tfmcp MCP 服务器模式
      "env": {
        "HOME": "/Users/yourusername",    // 替换为你的用户名
        "PATH": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin", // 确保包含 Terraform CLI 的路径
        "TERRAFORM_DIR": "/path/to/your/terraform/project" // 可选: 指定 Terraform 项目目录,默认为 ~/terraform
      }
    }
  }
}

配置参数说明:

  • 'server name': 'tfmcp' (服务器名称,在客户端配置中用于标识)
  • 'command': '/path/to/your/tfmcp' (tfmcp 可执行文件的绝对路径,需要根据 'which tfmcp' 的输出进行替换)
  • 'args': '["mcp"]' (启动参数,'mcp' 命令使 tfmcp 以 MCP 服务器模式运行)
  • 'env': 环境变量配置
    • 'HOME': 用户主目录
    • 'PATH': 系统 PATH 环境变量,确保包含 Terraform CLI 的路径
    • 'TERRAFORM_DIR': (可选) Terraform 项目目录路径,如果未指定,则默认为 '~/terraform',也可以通过命令行参数或配置文件指定。

基本使用方法

  1. 按照服务器配置步骤,在 MCP 客户端中配置 tfmcp 服务器。
  2. 启动 MCP 客户端 (例如 Claude Desktop)。
  3. 在 MCP 客户端中启用 'tfmcp' 工具。
  4. 通过 LLM 客户端的自然语言界面,指示其使用 'tfmcp' 提供的工具来管理 Terraform 环境,例如:
    • "列出 Terraform 资源" (调用 'list_terraform_resources' 工具)
    • "分析 Terraform 配置" (调用 'analyze_terraform' 工具)
    • "执行 Terraform 计划" (调用 'get_terraform_plan' 工具)
    • "应用 Terraform 配置" (调用 'apply_terraform' 工具)

信息

分类

开发者工具