关于 Terraform MCP Server
Terraform MCP Server 将 MCP 客户端连接到 Terraform Registry,面向基础设施即代码开发者,支持查找提供商文档、发现和检查模块。
主要功能
- 01搜索提供商文档
- 02获取提供商资源与数据源文档
- 03搜索 Terraform 模块
- 04查看模块输入、输出和示例
适用场景
- 01查找 Terraform 提供商及相关文档
- 02查看提供商资源或数据源说明
- 03为基础设施项目发现模块
- 04检查模块配置与示例
MCP 相关
向 MCP 客户端提供 Terraform Registry 提供商和模块查询工具,可获取提供商文档以及搜索或查看模块。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Terraform MCP Server
Terraform MCP Server 是一个 Model Context Protocol(MCP) 服务,可与 Terraform Registry API 无缝集成,为基础设施即代码(IaC)开发提供高级自动化和交互功能。
使用场景
- 自动发现 Terraform provider 和模块
- 从 Terraform Registry 提取和分析数据
- 获取有关 provider 资源和数据源的详细信息
- 探索和了解 Terraform 模块
注意: MCP 服务提供的输出和建议由动态生成,可能因查询、模型和连接的 MCP 服务而异。用户应在实施前全面审查所有输出/建议,确保其符合所在组织的安全最佳实践、成本效益目标和合规要求。
先决条件
- 要在容器中运行服务,需要安装 Docker。
- 安装 Docker 后,需要确保 Docker 正在运行。
安装
在 VS Code 中使用
将以下 JSON 块添加到 VS Code 的“用户设置(JSON)”文件中。可以按 Ctrl + Shift + P,然后输入 Preferences: Open User Settings (JSON) 来完成。
有关在 VS Code 中使用 MCP 服务工具的更多信息,请参阅Agent 模式文档。
{
"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 Registry,使用指定的 serviceSlug 查找并列出特定 provider 的可用文档。返回资源、数据源、函数或指南的 provider 文档 ID 列表,以及相应标题和类别。 |
providers | getProviderDocs | 使用从 resolveProviderDocID 工具获取的文档 ID,获取特定 provider 资源、数据源或函数的完整文档内容。以 Markdown 格式返回原始文档。 |
modules | searchModules | 根据指定的 moduleQuery 搜索 Terraform Registry 中的模块,并支持分页。返回模块 ID 列表,以及名称、描述、下载次数、验证状态和发布日期 |
modules | moduleDetails | 使用从 searchModules 工具获取的模块 ID 检索模块的详细文档,包括输入、输出、配置、子模块和示例。 |
从源代码安装
使用最新发布版本:
go install github.com/hashicorp/terraform-mcp-server/cmd/terraform-mcp-server@latest
使用 main 分支:
go install github.com/hashicorp/terraform-mcp-server/cmd/terraform-mcp-server@main
{
"mcp": {
"servers": {
"terraform": {
"command": "/path/to/terraform-mcp-server",
"args": ["stdio"]
}
}
}
}
在本地构建 Docker 镜像
使用服务前,需要在本地构建 Docker 镜像:
- 克隆代码仓库:
git clone https://github.com/hashicorp/terraform-mcp-server.git
cd terraform-mcp-server
- 构建 Docker 镜像:
make docker-build
这将创建一个本地 Docker 镜像,供你在以下配置中使用。
{
"servers": {
"terraform": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"terraform-mcp-server"
]
}
}
}
开发
先决条件
- Go(具体版本请查看 go.mod 文件)
- Docker(可选,用于容器构建)
运行测试
# Run all tests
make test
# Run e2e tests
make test-e2e
可用的 Make 命令
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
贡献
- Fork 代码仓库
- 创建功能分支
- 进行更改
- 运行测试
- 提交拉取请求
许可证
本项目采用 MPL-2.0 开源许可证。完整条款请参阅 LICENSE 文件。
安全
如有安全问题,请联系 [email protected],或遵循我们的安全政策。
支持
如需报告 Bug 或提出功能请求,请在 GitHub 上提交 issue。
如有一般性问题或希望参与讨论,请开启 GitHub Discussion。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。