Terraform Rag について
Terraform RagはTerraformモジュールのリポジトリと利用側のコードを索引化し、モジュール、依存関係、利用規約を検索できるナレッジベースを構築します。インフラチームがWeb UI、API、IDEから根拠を確認できるモジュールガイダンスを得るためのツールです。
主な機能
- 01HCLファイルとリポジトリの索引化
- 02Terraformモジュールの検索と詳細確認
- 03利用側のコードから規約を抽出
- 04モジュール依存関係グラフの追跡
- 05クエリの作成、最適化、監査
- 06モジュールバージョンの追跡
活用シーン
- 01インフラ作業に使うモジュールの検索
- 02モジュール依存関係と影響範囲の確認
- 03リポジトリの利用法や命名規約の遵守
- 04生成されたTerraformガイダンスのレビュー
MCP 対応
モジュールの検索、選択、一覧表示、詳細、依存関係、利用状況、サンプル、統計を扱うツールを備えたStreamable HTTP MCPサーバーを提供します。MCP対応IDEクライアントから索引化済みのナレッジベースを検索できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://terraform-rag.io/mcpclaude mcp add --transport http rag-for-terraform https://terraform-rag.io/mcp{"mcpServers":{"rag-for-terraform":{"type":"http","url":"https://terraform-rag.io/mcp"}}}Cursor で開く{"servers":{"rag-for-terraform":{"type":"http","url":"https://terraform-rag.io/mcp"}}}VS Code で開く{"mcpServers":{"rag-for-terraform":{"type":"http","url":"https://terraform-rag.io/mcp"}}}{"mcpServers":{"rag-for-terraform":{"serverUrl":"https://terraform-rag.io/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://terraform-rag.io/mcp認証が必要ツール
詳細
⬡
Terraform RAG
Terraform モジュール向けの AI 搭載ナレッジベースです。
インデックス作成、検索、構成、監査をすべて一か所で行えます。
ライブデモ - アーキテクチャ - クイックスタート - MCP サーバー
ライブデモを試す
Web UI - 175 以上のリポジトリにある 2700 以上のモジュールを閲覧できます(AWS / Azure / GCP)。
ログイン:
[email protected]/demo(読み取り専用)
MCP - IDE をナレッジベースに接続します。
{
"mcpServers": {
"terraform-rag": {
"type": "http",
"url": "https://terraform-rag.io/mcp",
"headers": {
"Authorization": "Bearer trag_6c495d7a027369cb5d324d877626c272"
}
}
}
}
9 個のツールを利用できます:query_modules、pick_modules、list_modules、
get_module_details、get_dependencies、get_module_usage、
find_similar_usages、fetch_example_code、get_stats(list_modules
では、自然言語検索用の semantic_query も指定できます)。
できること
Terraform モジュールのリポジトリを指定します。リポジトリをクローンし、すべての HCL ファイルを解析して、埋め込みを生成し、PostgreSQL + pgvector に検索可能なナレッジベースを構築します。さらに、利用側のリポジトリ全体でモジュールが実際に どのように 使用されているか(命名パターン、変数の規約、タグ付けの方針、デプロイのレイアウト)を学習し、信頼できるガイダンスとしてまとめます。
エージェント型パイプライン(Claude、Bedrock、または OpenAI 互換モデル)が複数回にわたるツール使用を通じてナレッジベースを調査し、根拠がありレビュー可能な回答を組み立てます。人間が関与する支援的な検索であり、自律型のコード生成ではありません。Web UI、REST API、または MCP 経由で IDE から直接クエリできます。
動作を見る
モジュールブラウザー - 175 以上のリポジトリにある 2700 以上のモジュール |
エージェント型構成 - ツール呼び出しと推論をリアルタイムで表示 |
生成された HCL - 構文がハイライトされた出力 |
ナレッジブラウザー - 規約と使用パターン |
インデックス作成ジョブ - リポジトリのインデックス作成ダッシュボード |
監査ログ - LLM、MCP、API 呼び出しの完全な履歴 |
エージェント型クエリパイプライン - 単一の RAG 検索にとどまりません。LLM は複数回のツール使用を通じてモジュールを閲覧し、詳細を確認し、規約を読み、サンプルコードを取得してから、レビュー用の回答を作成します。クエリモードは compose、search、optimize、audit の 4 種類です。
ナレッジレイヤー - 利用者のリポジトリにインデックスを作成し、実際の使用パターンを学習します。命名、変数、タグ付け、レイアウト、バージョン、デプロイの 6 つの観点から規約を抽出し、すべてのプロンプトで信頼できるガイダンスとして扱います。
MCP サーバー - Streamable HTTP エンドポイントは Claude Code、Cursor、Windsurf、および MCP 互換のあらゆるクライアントで利用できます。IDE からモジュールのナレッジベースを直接検索できます。
依存関係グラフ - PostgreSQL の再帰的 CTE により、モジュール間の依存関係ツリー全体をマッピングします。依存元を確認し、影響を追跡し、D3 の力学ベースのグラフで関係を可視化できます。
バージョン追跡 - Git タグを自動検出し、モジュールごとのバージョン履歴を管理します。コードハッシュキャッシュにより、再インデックス時の不要な LLM 呼び出しや埋め込み生成を回避します。
柔軟な LLM バックエンド - Anthropic(直接または Bedrock)、OpenRouter、Ollama、または OpenAI 互換の任意のエンドポイントを利用できます。コードを変更せずにモデルを切り替えられます。
CI/CD 統合 - .tf ファイルの変更時に自動で再インデックスを行う GitHub Actions ワークフローと Webhook エンドポイントを備えています。
認証 - 無効(デフォルト)、JWT によるローカルのメールアドレス/パスワード認証、または AWS Identity Center/OIDC 経由の ALB 終端 SSO を選択できます。
クイックスタート
# 1. Clone and configure
git clone https://github.com/krzysztofgawrys/rag-for-terraform.git
cd rag-for-terraform
cp .env.example .env
# Edit .env - set POSTGRES_PASSWORD, JWT_SECRET, and your LLM API key
# 2. Start everything
docker compose up -d
# 3. Index your first repo
curl -X POST http://localhost:8000/index/ \
-H "Content-Type: application/json" \
-d '{"repo_url": "[email protected]:org/tf-modules.git", "branch": "main"}'
| サービス | URL |
|---|---|
| フロントエンド | http://localhost:3000 |
| API ドキュメント | http://localhost:8000/docs |
| MCP エンドポイント | http://localhost:8000/mcp/ |
プライベートリポジトリの場合は、SSH デプロイキーを ./worker_deploy_key に配置してください
(または .env で SSH_KEY_PATH を設定してください)。
MCP サーバー
MCP 互換のクライアントを http://localhost:8000/mcp/ に接続してください。
Claude Code(.mcp.json):
{
"mcpServers": {
"terraform-rag": {
"type": "http",
"url": "http://localhost:8000/mcp/"
}
}
}
利用可能なツール:query_modules、pick_modules、list_modules、
get_module_details、get_dependencies、get_module_usage、
find_similar_usages、fetch_example_code、get_stats。
LLM の設定
| モード | LLM_BASE_URL | LLM_MODEL の例 |
|---|---|---|
| Anthropic(直接) | (空欄) | claude-sonnet-4-6 |
| AWS Bedrock | (AWS_BEDROCK_REGION を設定) | us.anthropic.claude-sonnet-4-6-20250514-v1:0 |
| OpenRouter | https://openrouter.ai/api/v1 | anthropic/claude-sonnet-4-6 |
| Ollama(ローカル) | http://ollama:11434/v1 | qwen2.5-coder:32b |
インデックス作成時のモジュール説明には、別途、低コストのモデルを使用できます
(DESCRIPTION_LLM_* 変数)。
アーキテクチャ
Browser AI Agent / IDE
| |
+---------+ +--------+ +----------------+
| Frontend|----->| API |----->| PostgreSQL 16 |
| (Vite) | | FastAPI| | + pgvector |
+---------+ +---+----+ +----------------+
|
+----+----+
| Worker | +-------+
| (Celery)|----->| Redis |
+---------+ +-------+
技術的な詳細(スタックの詳細、ディレクトリ構成、API エンドポイント、エージェントの内部構造、ナレッジレイヤーのパイプライン、既知の制限事項、デプロイに関する注意事項)については、docs/ARCHITECTURE.md を参照してください。
ライセンス
Business Source License 1.1 - 詳細は LICENSE を参照してください。
- 非本番環境での利用(評価、テスト、開発)は許可されています
- 本番環境での利用には、作者による商用ライセンスが必要です
- 2029-05-25 にライセンスは AGPL-3.0 に切り替わります
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。