返回 MCP 目录
public公开dns本地运行

terraform-ingest

Terraform模块RAG引擎,支持多仓库自动导入、代码分析、向量存储和语义搜索,提供CLI、API和MCP服务接口。

article

README

🚀 Terraform Ingest

Terraform Ingest 是一款 Terraform RAG 数据摄取引擎,它可以接收一个包含 Terraform Git 仓库源的 YAML 文件,利用现有凭证将这些仓库下载到本地,为你指定的分支或标签版本创建关于其用途、输入、输出和提供者的 JSON 摘要,并将这些摘要嵌入到向量数据库中,以便进行相似性搜索。它还提供了易于使用的命令行界面(CLI)、API 或 MCP 服务器。

✨ 主要特性

  • 📥 多仓库摄取:通过单个 YAML 配置文件处理多个 Terraform 仓库。
  • 🔄 自动导入:从 GitHub 组织和 GitLab 组导入仓库(即将支持 Bitbucket)。
  • 🔍 全面分析:提取变量、输出、提供者、模块和描述信息。
  • 🏷️ 分支和标签支持:分析你指定的分支和 Git 标签。
  • 🔌 双接口:既可以作为命令行工具(Click)使用,也可以作为 REST API 服务(FastAPI)使用。
  • 🤖 MCP 集成:提供 MCP 服务,使 AI 代理能够通过 STDIO、SSE 或可流式传输的 HTTP 访问已摄取的模块。
  • 📊 JSON 输出:生成结构化的 JSON 摘要,可直接用于 RAG 摄取。
  • 🔐 凭证支持:使用现有的 Git 凭证访问私有仓库。
  • 🧠 向量数据库嵌入:支持使用 ChromaDB、OpenAI、Claude 或 sentence-transformers 进行语义搜索。

更多文档请参考 这里

如果你只想快速了解如何将其作为 MCP 服务器使用(以及一些示例),请查看 这里

一个包含大量自定义模块的示例项目仓库可以在 这里 找到。

📦 安装指南

本应用程序可以使用 uv 或 Docker 在本地运行。

⚠️ 重要提示

uv 是延迟加载一些大型依赖项所必需的。

使用 uv 安装

uv tool install terraform-ingest

# 创建配置文件
uv run terraform-ingest init config.yaml

# 从 GitHub 组织导入仓库
uv run terraform-ingest import github --org terraform-aws-modules --terraform-only

# 从 GitLab 组导入仓库
uv run terraform-ingest import gitlab --group mygroup --recursive --terraform-only

# 更新 config.yaml 文件,包含 Terraform 模块信息和 MCP 配置,然后进行初始摄取
uv run terraform-ingest ingest config.yaml

# 运行快速 CLI 搜索进行测试
uv run terraform-ingest search "vpc module for aws"

使用 Docker 安装

docker pull ghcr.io/zloeber/terraform-ingest:latest

# 使用卷挂载以实现数据持久化,从本地 config.yaml 文件摄取模块
docker run -v $(pwd)/repos:/app/repos -v $(pwd)/output:/app/output -v $(pwd)/config.yaml:/app/config.yaml ghcr.io/zloeber/terraform-ingest:latest ingest /app/config.yaml

# 作为 MCP 服务器运行
docker run -v $(pwd)/repos:/app/repos -v $(pwd)/output:/app/output -v $(pwd)/config.yaml:/app/config.yaml -p 8000:8000 ghcr.io/zloeber/terraform-ingest:latest mcp -c /app/config.yaml

# 搜索模块并获取第一个结果,显示所有详细信息
terraform-ingest search "vpc module for aws" -l 1 -j | jq -r '.results[0].id' | xargs -I {} terraform-ingest index get {}

📄 许可证

本项目采用 MIT 许可证。

🤝 贡献

欢迎贡献代码!请随时提交拉取请求。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端