Terraform MCP 服务器

Terraform MCP 服务器是一个与 Terraform Registry API 无缝集成的 Model Context Protocol (MCP) 服务器,为基础设施即代码 (IaC) 开发提供高级自动化和交互功能。

  • by DCamonier1980
  • Go
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 dcamonier1980/terraform-mcp-server

使用说明

Terraform MCP服务器

Terraform MCP服务器是一个 模型上下文协议(MCP) 服务器,提供与Terraform注册表API的无缝集成,实现高级 基础设施即代码(IaC)开发的自动化和交互能力。

用例

  • 自动化地形提供程序和模块发现
  • 从Terraform注册表中提取和分析数据
  • 获取有关提供程序资源和数据源的详细信息
  • 探索和理解Terraform模块

注意: MCP服务器提供的输出和建议是动态生成的,可能因查询、模型和连接的MCP服务器而异。用户应该 彻底审查所有产出/建议 以确保他们与组织保持一致 安全最佳实践, 成本效益目标,以及 要求 在实施之前。

先决条件

  1. 要在容器中运行服务器,您需要 码头工人 安装。
  2. 安装Docker后,您需要确保Docker正在运行。

安装

使用VS代码

将以下JSON块添加到VS Code中的用户设置(JSON)文件中。您可以按 Ctrl + Shift + P 和打字 Preferences: Open User Settings (JSON).

更多关于在VS Code中使用MCP服务器工具的信息 代理模式文档.

{
  "mcp": {
    "servers": {
      "terraform": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "hashicorp/terraform-mcp-server"
        ]
      }
    }
  }
}

您可以选择将类似的示例(即不带mcp键)添加到名为的文件中 .vscode/mcp.json 在您的工作空间中。这将允许您与他人共享配置。

{
  "servers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "hashicorp/terraform-mcp-server"
      ]
    }
  }
}

更多关于在Claude Desktop中使用MCP服务器工具的信息 用户文档.

使用Claude Desktop

{
  "mcpServers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "hashicorp/terraform-mcp-server"
      ]
    }
  }
}

工具配置

可用工具集

以下工具可用:

工具集 工具 说明
providers resolveProviderDocID 使用指定的查询Terraform注册表,查找并列出特定提供程序的可用文档 serviceSlug。返回资源、数据源、函数或指南的提供者文档ID及其标题和类别的列表。
providers getProviderDocs 使用从获取的文档ID获取特定提供程序资源、数据源或函数的完整文档内容 resolveProviderDocID 工具。以markdown格式返回原始文档。
modules searchModules 根据指定内容在Terraform注册表中搜索模块 moduleQuery 分页。返回模块ID及其名称、描述、下载计数、验证状态和发布日期的列表
modules moduleDetails 使用从以下位置获得的模块ID检索模块的详细文档 searchModules 该工具包括输入、输出、配置、子模块和示例。

从源代码构建

如果你没有Docker,你可以使用 make build 直接从源代码构建二进制文件。您应该将服务器配置为使用构建的可执行文件作为其 command.

  1. 克隆存储库:
git clone https://github.com/hashicorp/terraform-mcp-server.git
cd terraform-mcp-server
  1. 构建二进制文件:
make build
{
  "mcp": {
    "servers": {
      "terraform": {
        "command": "/path/to/terraform-mcp-server",
        "args": ["stdio"]
      }
    }
  }
}

在本地构建Docker镜像

在使用服务器之前,您需要在本地构建Docker镜像:

  1. 克隆存储库:
git clone https://github.com/hashicorp/terraform-mcp-server.git
cd terraform-mcp-server
  1. 构建Docker镜像:
make docker-build

这将创建一个本地Docker镜像,您可以在以下配置中使用。

{
  "servers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "terraform-mcp-server"
      ]
    }
  }
}

发展

先决条件

  • 去(检查 go.mod 特定版本的文件)
  • Docker(可选,用于容器构建)

运行测试

# Run all tests
make test

# Run e2e tests
make test-e2e

可用的生成命令

make build        # Build the binary
make test         # Run all tests
make test-e2e     # Run end-to-end tests
make clean        # Remove build artifacts
make deps         # Download dependencies
make docker-build # Build docker image

贡献

  1. 分叉存储库
  2. 创建功能分支
  3. 进行更改
  4. 运行测试
  5. 提交拉取请求

许可证

此项目根据MPL-2.0开源许可证的条款获得许可。请参考 许可证 提交完整条款的文件。

安全

有关安全问题,请联系security@hashicorp.com或跟随我们 安全策略.

支持

有关错误报告和功能请求,请在GitHub上打开问题。

有关一般问题和讨论,请打开GitHub讨论。