Terraform Registry MCP Server
通过 MCP 将 AI 模型连接到 Terraform 注册表,从而实现提供程序查找、资源使用示例和模块推荐,以简化 Terraform 工作流程。
Tools
providerLookup
Lookup a Terraform provider by name and optionally version.
resourceUsage
Get an example usage of a Terraform resource and related resources.
moduleRecommendations
Search for and recommend Terraform modules for a given query.
dataSourceLookup
List all available data sources for a provider and their basic details.
resourceArgumentDetails
Fetches details about a specific resource type's arguments, including name, type, description, and requirements.
moduleDetails
Retrieves detailed metadata for a Terraform module including versions, inputs, outputs, and dependencies.
README
Terraform Registry MCP 服务器
一个模型上下文协议 (MCP) 服务器,提供与 Terraform Registry API 交互的工具。该服务器使 AI 代理能够查询提供程序信息、资源详细信息和模块元数据。
安装
在 Cursor 中安装
要在 Cursor 中安装和使用此 MCP 服务器:
-
在 Cursor 中,打开设置 (⌘+,) 并导航到“MCP”选项卡。
-
单击“+ 添加新的 MCP 服务器”。
-
输入以下内容:
- 名称:terraform-registry
- 类型:command
- 命令:npx -y terraform-mcp-server
-
单击“添加”,然后滚动到服务器并单击“已禁用”以启用服务器。
-
如果需要,重新启动 Cursor 以确保 MCP 服务器已正确加载。
在 Claude Desktop 中安装
要在 Claude Desktop 中安装和使用此 MCP 服务器:
-
在 Claude Desktop 中,打开设置 (⌘+,) 并导航到“开发者”选项卡。
-
单击窗口底部的“编辑配置”。
-
编辑文件 (
~/Library/Application Support/Claude/claude_desktop_config.json) 以添加以下代码,然后保存文件。
{
"mcpServers": {
"terraform-registry": {
"command": "npx",
"args": ["-y", "terraform-mcp-server"]
}
}
}
- 重新启动 Claude Desktop 以确保 MCP 服务器已正确加载。
工具
此 MCP 服务器中提供以下工具:
核心 Registry 工具
| 工具 | 描述 |
|---|---|
providerDetails |
获取有关 Terraform 提供程序的详细信息 |
resourceUsage |
获取 Terraform 资源的示例用法和相关资源 |
moduleSearch |
根据查询搜索和推荐 Terraform 模块 |
listDataSources |
列出提供程序的所有可用数据源及其基本详细信息 |
resourceArgumentDetails |
获取有关资源类型参数的全面详细信息 |
moduleDetails |
检索 Terraform 模块的详细元数据 |
functionDetails |
获取有关 Terraform 提供程序函数的详细信息 |
providerGuides |
列出和查看提供程序特定的指南和文档 |
policySearch |
在 Terraform Registry 中搜索策略库 |
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 服务器支持以下资源 URI,用于通过 resources/* 方法进行列出和读取:
| 资源类型 | 示例 URI | 描述 |
|---|---|---|
| 提供程序 | 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:providerterraform:resourceterraform: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_URL |
Terraform Registry API 的基本 URL | https://registry.terraform.io |
DEFAULT_PROVIDER_NAMESPACE |
提供程序的默认命名空间 | hashicorp |
LOG_LEVEL |
日志记录级别(error、warn、info、debug) | info |
REQUEST_TIMEOUT_MS |
API 请求的超时时间(毫秒) | 10000 |
RATE_LIMIT_ENABLED |
启用 API 请求的速率限制 | false |
RATE_LIMIT_REQUESTS |
时间窗口内允许的请求数 | 60 |
RATE_LIMIT_WINDOW_MS |
速率限制的时间窗口(毫秒) | 60000 |
TFC_TOKEN |
用于私有注册表访问的 Terraform Cloud API 令牌(可选) |
使用环境变量的示例:
# 设置环境变量
export LOG_LEVEL="debug"
export REQUEST_TIMEOUT_MS="15000"
export TFC_TOKEN="your-terraform-cloud-token"
# 运行服务器
npm start
测试
有关测试此项目的信息,请参见 TESTS.md 文件。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。