T

Terraform MCP 服务

通过 MCP 将 AI 模型连接到 Terraform 注册表,启用提供程序查找、资源使用示例和模块推荐,从而简化 Terraform 工作流。

cloud-platformsdeveloper-toolsother

724 查看 · 2026-07-07 更新

简介

通过 MCP 将 AI 模型连接到 Terraform 注册表,启用提供程序查找、资源使用示例和模块推荐,从而简化 Terraform 工作流。

简介

通过 MCP 将 AI 模型连接到 Terraform 注册表,启用提供程序查找、资源使用示例和模块推荐,从而简化 Terraform 工作流。

Terraform Registry MCP 服务器

这是一个提供与 Terraform Registry API 交互工具的 Model Context Protocol (MCP) 服务器。该服务器使 AI 代理能够查询提供商信息、资源详情和模块元数据。

安装

在 Cursor 中安装

要在 Cursor 中安装并使用此 MCP 服务器:

  1. 在 Cursor 中,打开设置(⌘+,)并导航到“MCP”选项卡。

  2. 点击“+ 添加新的 MCP 服务器”。

  3. 输入以下内容:

    • 名称:terraform-registry
    • 类型:command
    • 命令:npx -y terraform-mcp-server
  4. 点击“添加”,然后滚动到服务器并点击“禁用”以启用服务器。

  5. 如果需要,请重启 Cursor 以确保 MCP 服务器正确加载。

terraform-registry MCP 设置 for Cursor

在 Claude Desktop 中安装

要在 Claude Desktop 中安装并使用此 MCP 服务器:

  1. 在 Claude Desktop 中,打开设置(⌘+,)并导航到“开发者”选项卡。

  2. 点击窗口底部的“编辑配置”。

  3. 编辑文件(~/Library/Application Support/Claude/claude_desktop_config.json)以添加以下代码,然后保存文件。

{ "mcpServers": { "terraform-registry": { "command": "npx", "args": ["-y", "terraform-mcp-server"] } } }
  1. 重启 Claude Desktop 以确保 MCP 服务器正确加载。

工具

此 MCP 服务器中提供了以下工具:

核心注册表工具

工具描述
providerDetails获取关于 Terraform 提供商的详细信息
resourceUsage获取 Terraform 资源及其相关资源的示例用法
moduleSearch根据查询搜索并推荐 Terraform 模块
listDataSources列出提供商的所有可用数据源及其基本信息
resourceArgumentDetails获取资源类型的参数的全面详细信息
moduleDetails获取 Terraform 模块的详细元数据
functionDetails获取关于 Terraform 提供商函数的详细信息
providerGuides列出并查看特定于提供商的指南和文档
policySearch在 Terraform 注册表中搜索策略库
policyDetails获取特定策略库的详细信息

Terraform Cloud 工具

这些工具需要一个 Terraform Cloud API 令牌 (TFC_TOKEN):

工具描述
listOrganizations列出经过身份验证的用户有权访问的所有组织
privateModuleSearch在组织中搜索私有模块
privateModuleDetails获取关于私有模块的详细信息
explorerQuery查询 Terraform Cloud Explorer API 以分析数据
listWorkspaces列出组织中的工作区
workspaceDetails获取特定工作区的详细信息
lockWorkspace锁定工作区以防止运行
unlockWorkspace解锁工作区以允许运行
listRuns列出工作区的运行
runDetails获取特定运行的详细信息
createRun为工作区创建新的运行
applyRun应用已计划的运行
cancelRun取消正在进行的运行
listWorkspaceResources列出工作区中的资源

资源

MCP 服务器通过 resources/* 方法支持以下用于列出和读取的资源 URI:

资源类型示例 URI(s)描述
提供者terraform:providers列出所有命名空间/提供者
terraform:provider:<namespace>/<name>获取特定提供者的详细信息
提供者版本terraform:provider:<namespace>/<name>/versions列出提供者的可用版本
提供者资源terraform:provider:<namespace>/<name>/resources列出提供者的资源
terraform:resource:<namespace>/<name>/<resource_name>获取特定资源类型的详细信息
提供者数据源terraform:provider:<namespace>/<name>/dataSources列出提供者的数据源
terraform:dataSource:<namespace>/<name>/<data_source_name>获取特定数据源的详细信息
提供者函数terraform:provider:<namespace>/<name>/functions列出提供者的函数
terraform:function:<namespace>/<name>/<function_name>获取特定函数的详细信息

服务器还支持 resources/templates/list 以提供创建以下项的模板:

  • terraform:provider
  • terraform:resource
  • terraform:dataSource

提示

以下提示可用于生成上下文响应:

提示描述必需参数
migrate-clouds生成 Terraform 代码以在云服务提供商之间迁移基础设施sourceCloud, targetCloud, terraformCode
generate-resource-skeleton帮助用户快速使用最佳实践搭建新的 Terraform 资源resourceType
optimize-terraform-module提供改进 Terraform 代码的具体建议terraformCode
migrate-provider-version协助进行提供者版本升级和处理破坏性变更providerName, currentVersion, targetVersion, terraformCode (可选)
analyze-workspace-runs分析最近的运行失败并为 Terraform Cloud 工作区提供故障排除指导workspaceId, runsToAnalyze (可选,默认: 5)

提示已知问题

注意getPrompt 功能存在一个已知问题,可能会导致服务器崩溃。服务器可以正确注册提示并列出它们,但直接使用 getPrompt 方法可能引起连接问题。此问题正在调查中,可能与 SDK 兼容性或实现细节有关。在解决之前,请使用 listPrompts 查看可用提示,但避免直接调用 getPrompt

运行服务器

服务器使用 stdio 传输进行 MCP 通信:

npm install npm start

使用环境变量配置

可以通过环境变量来配置服务器:

环境变量描述默认值
TERRAFORM_REGISTRY_URLTerraform 注册表 API 的基础 URLhttps://registry.terraform.io
DEFAULT_PROVIDER_NAMESPACE提供者的默认命名空间hashicorp
LOG_LEVEL日志级别(错误、警告、信息、调试)info
REQUEST_TIMEOUT_MSAPI 请求的超时时间(毫秒)10000
RATE_LIMIT_ENABLED启用 API 请求的速率限制false
RATE_LIMIT_REQUESTS时间窗口内允许的请求数量60
RATE_LIMIT_WINDOW_MS速率限制的时间窗口(毫秒)60000
TFC_TOKEN访问私有注册表的 Terraform Cloud API 令牌(可选)

使用环境变量的示例:

# Set environment variables export LOG_LEVEL="debug" export REQUEST_TIMEOUT_MS="15000" export TFC_TOKEN="your-terraform-cloud-token" # Run the server npm start

测试

关于本项目的测试信息,请参阅 TESTS.md 文件。

服务配置

[{'mcpServers': {'terraform-registry': {'args': ['-y', 'terraform-mcp-server'], 'command': 'npx'}}}]

来源