Terraform注册表MCP服务器
一种模型上下文协议(MCP)服务器,提供对Terraform公共注册表的全面访问。该服务器使AI助手能够搜索和检索有关Terraform提供者、模块和文档的信息。
特性
模块工具
- 🔍 search_modules -按名称或关键字搜索Terraform模块
- 📦 get_module_tails -获取特定模块的详细信息
- 🏷️ get_latest_module_version -获取模块的最新版本
- 📋 list_module_versions -列出模块的所有可用版本
提供商工具
- 🔍 搜索_提供者 -搜索Terraform提供商
- 📦 获取_供应商_详细信息 -获取有关提供商的详细信息
- 🏷️ get_latest_providual_version -获取提供者的最新版本
- 📋 列表_提供者_版本 -列出提供程序的所有可用版本
- 📚 获取_提供者_文档 -获取完整的提供商文档(设置、身份验证、版本说明)
- 📄 获取_供应商_资源_文档 -获取完整的资源文档(参数、属性、示例)
- 📄 获取_提供者_数据_源_docs -获取完整的数据源文档
- 🔎 搜索_提供者_文档 -在提供商文档中搜索特定错误、主题或故障排除
新 文档工具现在可以从注册表中获取实际的markdown内容,包括特定于版本的信息、中断更改、升级指南和完整的参数/属性引用。
安装
使用Docker(推荐)
使用Docker Compose构建和运行:
docker-compose up -d或者手动构建:
docker build -t terraform-registry-mcp-server .
docker run -d -p 3002:3002 --name terraform-registry-mcp-server \
-e TRANSPORT_MODE=http \
-e PORT=3002 \
terraform-registry-mcp-server地方发展
安装依赖项:
pip install -e .在stdio模式下运行(适用于本地MCP客户端):
terraform-mcp-server在HTTP模式下运行:
export TRANSPORT_MODE=http
export PORT=3002
terraform-mcp-server配置
环境变量
TRANSPORT_MODE-运输方式:stdio(默认)或httpPORT-HTTP服务器端口(默认值:3002)
VS代码MCP配置
添加到您的VS代码 mcp.json:
{
"mcpServers": {
"terraform": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"terraform-mcp-server"
]
}
}
}或者对于HTTP传输:
{
"mcpServers": {
"terraform": {
"url": "http://localhost:3002/mcp"
}
}
}用法示例
搜索AWS VPC模块
search_modules(query="vpc", provider="aws", limit=10)获取模块详细信息
get_module_details(
namespace="terraform-aws-modules",
name="vpc",
provider="aws"
)搜索供应商
search_providers(query="azure", tier="official")获取最新的提供商版本
get_latest_provider_version(namespace="hashicorp", name="aws")获取提供商文档
# Get full provider overview with version info and breaking changes
get_provider_docs(namespace="hashicorp", name="azurerm")
# Get specific version documentation (useful for compatibility checks)
get_provider_docs(namespace="hashicorp", name="azurerm", version="3.0.0")获取特定资源文档
# Fetches complete documentation including all arguments and attributes
get_provider_resource_docs(
namespace="hashicorp",
name="aws",
resource_name="aws_instance"
)
# Check a specific version's resource documentation
get_provider_resource_docs(
namespace="hashicorp",
name="azurerm",
resource_name="azurerm_virtual_machine",
version="3.85.0"
)获取数据源文档
get_provider_data_source_docs(
namespace="hashicorp",
name="aws",
data_source_name="aws_ami"
)部署到Azure容器应用程序
此服务器旨在轻松部署到Azure容器应用程序:
- 构建并推送到Azure容器注册表:
az acr build --registry --image terraform-mcp-server:latest .- 部署到容器应用程序:
az containerapp create \
--name terraform-mcp-server \
--resource-group \
--environment \
--image .azurecr.io/terraform-mcp-server:latest \
--target-port 3002 \
--ingress external \
--env-vars TRANSPORT_MODE=http PORT=3002建筑
- FastMCP -使用官方MCP Python SDK和FastMCP简化服务器创建
- 流式HTTP传输 -支持用于云部署的现代HTTP传输
- 仅限公共注册表 -专注于公共Terraform注册表(无需身份验证)
- 轻量级 -最小的依赖性,快速启动
与HashiCorp服务器的比较
与HashiCorp的官方terraform mcp服务器相比,这是一个简化版本:
包括:
- ✅ 公共注册表搜索(模块和提供者)
- ✅ 模块和提供者详细信息
- ✅ 版本管理
- ✅ 用于云部署的HTTP传输
- ✅ Docker支持
不包括:
- ❌ HCP地形/地形企业集成
- ❌ 工作空间管理
- ❌ 运行执行
- ❌ 变量管理
- ❌ 私有注册表访问
许可证
MIT许可证
贡献
欢迎投稿!请随时提交拉取请求。
