mcpField
T
Terraform Rag

Terraform Rag

リモート
github.com/krzysztofgawrysメモリ・ナレッジ521 週間前に更新
リポジトリ

Terraform Rag について

Terraform RagはTerraformモジュールのリポジトリと利用側のコードを索引化し、モジュール、依存関係、利用規約を検索できるナレッジベースを構築します。インフラチームがWeb UI、API、IDEから根拠を確認できるモジュールガイダンスを得るためのツールです。

主な機能

  1. 01HCLファイルとリポジトリの索引化
  2. 02Terraformモジュールの検索と詳細確認
  3. 03利用側のコードから規約を抽出
  4. 04モジュール依存関係グラフの追跡
  5. 05クエリの作成、最適化、監査
  6. 06モジュールバージョンの追跡

活用シーン

  1. 01インフラ作業に使うモジュールの検索
  2. 02モジュール依存関係と影響範囲の確認
  3. 03リポジトリの利用法や命名規約の遵守
  4. 04生成されたTerraformガイダンスのレビュー

MCP 対応

モジュールの検索、選択、一覧表示、詳細、依存関係、利用状況、サンプル、統計を扱うツールを備えたStreamable HTTP MCPサーバーを提供します。MCP対応IDEクライアントから索引化済みのナレッジベースを検索できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://terraform-rag.io/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://terraform-rag.io/mcp認証が必要

ツール

詳細

⬡

Terraform RAG

Terraform モジュール向けの AI 搭載ナレッジベースです。
インデックス作成、検索、構成、監査をすべて一か所で行えます。

ライブデモ - アーキテクチャ - クイックスタート - MCP サーバー

Python 3.12 FastAPI pgvector MCP ライセンス


ライブデモを試す

Web UI - 175 以上のリポジトリにある 2700 以上のモジュールを閲覧できます(AWS / Azure / GCP)。

https://terraform-rag.io

ログイン:[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
生成された 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_URLLLM_MODEL の例
Anthropic(直接)(空欄)claude-sonnet-4-6
AWS Bedrock(AWS_BEDROCK_REGION を設定)us.anthropic.claude-sonnet-4-6-20250514-v1:0
OpenRouterhttps://openrouter.ai/api/v1anthropic/claude-sonnet-4-6
Ollama(ローカル)http://ollama:11434/v1qwen2.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 に切り替わります

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。