mcpField
R
rag-vault

rag-vault

ローカル
github.comメモリ・ナレッジ23 日前に更新

rag-vault について

RAG Vaultは、AIコーディングエージェント向けのローカル優先型RAG MCPサーバーで、プライベートな文書を検索できます。ベクトル検索とキーワード検索を組み合わせ、一般的な文書形式に対応し、Web UIとリモートモードも備えています。

主な機能

  1. 01ローカル文書のインデックス作成と埋め込み
  2. 02ベクトル検索とBM25のハイブリッド検索
  3. 03任意の再ランキングとクエリ拡張
  4. 04PDF、DOCX、Markdownなどの取り込み
  5. 05Web UIとREST API
  6. 06StdioおよびHTTP/SSEトランスポート

活用シーン

  1. 01プライベートなAPI仕様や社内文書の検索
  2. 02インデックス済みファイルから正確なエラーコードを検索
  3. 03研究論文の検索可能なコレクションの作成

MCP 対応

MCPクライアントに文書の取り込み、検索、削除、一覧表示、状態確認、フィードバックのツールを公開します。Stdioに加え、リモートのStreamable HTTPとSSE接続に対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"robthepcguy-rag-vault": {
"command": "npx",
"args": [
"-y",
"@robthepcguy/rag-vault"
],
"env": {
"BASE_DIR": "<BASE_DIR>",
"DB_PATH": "<DB_PATH>",
"CACHE_DIR": "<CACHE_DIR>",
"MODEL_NAME": "<MODEL_NAME>",
"RAG_HYBRID_WEIGHT": "<RAG_HYBRID_WEIGHT>",
"RAG_GROUPING": "<RAG_GROUPING>"
}
}
}
}
起動コマンドnpx -y @robthepcguy/rag-vault
設定が必要な環境変数
BASE_DIRBase directory for document storage (defaults to current working directory)
DB_PATHPath to LanceDB database directory (defaults to ./lancedb/)
CACHE_DIRDirectory where Transformers.js models are cached (defaults to ./models/)
MODEL_NAMEEmbedding model name (defaults to Xenova/all-MiniLM-L6-v2)
RAG_HYBRID_WEIGHTKeyword boost strength for hybrid search. 0.0 = semantic only, 1.0 = keyword only. Default 0.6
RAG_GROUPINGGrouping mode: 'similar' (top group only) or 'related' (top 2 groups)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@robthepcguy/rag-vault1.5.3

ツール

9

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
limitnumberいいえ
querystringはい
explainbooleanいいえ

詳細

RAG Vault

License: MIT TypeScript MCP Registry

あなたのドキュメント。あなたのマシン。あなたの管理。

RAG Vault を使うと、AI コーディングアシスタントから、API 仕様書、研究論文、社内ドキュメントなどのプライベートなドキュメントを検索できます。すべての処理はローカルで行われ、リモート URL からコンテンツを取り込む場合を除き、データはマシン上に保持されます。

実行するコマンドは 1 つだけで、設定は最小限。プライバシーはデフォルトで保護されます。

RAG Vault を選ぶ理由

課題RAG Vault の解決策
「自分のドキュメントを他人のサーバーに置きたくない」デフォルトですべてがローカルに保持されます。インデックス作成や検索のために、バックグラウンドでクラウドに接続することはありません。
「セマンティック検索では正確なコード用語が見つからない」RRF 融合によるハイブリッド検索と、オプションのクロスエンコーダーによる再ランキング
「セットアップには Docker、Python、データベースなどが必要」npx コマンド 1 つと、簡単な MCP 設定ブロックだけです。
「クラウド API はクエリごとに課金される」永久に無料です。サブスクリプションはありません。

セキュリティ

RAG Vault にはセキュリティ機能が組み込まれています。

  • API 認証:RAG_API_KEY による任意の API キー認証
  • レート制限:リクエストを制限できます
  • CORS 制御:許可するオリジンを制限できます
  • セキュリティヘッダー:Helmet.js による保護

詳しくは SECURITY.md をご覧ください。

初回セットアップのチェックリスト

MCP の設定を追加する前に:

  1. Node.js 20 以降をインストールします。
  2. ドキュメントのディレクトリを選び、BASE_DIR にそのパスを設定します。
  3. AI ツールのプロセスから BASE_DIR を読み取れることを確認します。
  4. 設定を編集した後、AI ツールを再起動します。

すぐに始める

Cursor の場合

~/.cursor/mcp.json に追加します:

{
  "mcpServers": {
    "local-rag": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "github:RobThePCGuy/rag-vault"],
      "env": {
        "BASE_DIR": "/path/to/your/documents"
      }
    }
  }
}

/path/to/your/documents を実際の絶対パスに置き換えてください。

Claude Code の場合

プロジェクトディレクトリの .mcp.json に追加します:

{
  "mcpServers": {
    "local-rag": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "github:RobThePCGuy/rag-vault"],
      "env": {
        "BASE_DIR": "./documents",
        "DB_PATH": "./documents/.rag-db",
        "CACHE_DIR": "./.cache",
        "RAG_EMBEDDING_DEVICE": "cpu",
        "RAG_HYBRID_WEIGHT": "0.6",
        "RAG_GROUPING": "related"
      }
    }
  }
}

または、CLI からインラインで追加します:

claude mcp add local-rag --scope user --env BASE_DIR=/path/to/your/documents -- npx -y github:RobThePCGuy/rag-vault
Codex の場合

~/.codex/config.toml に追加します:

[mcp_servers.local-rag]
command = "npx"
args = ["-y", "github:RobThePCGuy/rag-vault"]

[mcp_servers.local-rag.env]
BASE_DIR = "/path/to/your/documents"
スキルをインストールする(任意)

AI がより適切なクエリを作成し、結果を正しく解釈できるようにするには、RAG Vault のスキルをインストールします:

# Claude Code (project-level - recommended for team projects)
npx github:RobThePCGuy/rag-vault skills install --claude-code

# Claude Code (user-level - available in all projects)
npx github:RobThePCGuy/rag-vault skills install --claude-code --global

# Codex (user-level)
npx github:RobThePCGuy/rag-vault skills install --codex

# Custom location
npx github:RobThePCGuy/rag-vault skills install --path /your/custom/path

スキルでは、Claude に以下のベストプラクティスを教えます:

  • クエリの作成と拡張の方法
  • スコアの解釈。boost モードでは、0.3 未満は良好な一致を示し、0.5 を超える結果はスキップする価値があります。RRF モードでは、スコアは順位に基づきます。
  • ingest_file と ingest_data の使い分け
  • HTML の取り込みと URL の処理

AI ツールを再起動して、話しかけてみましょう:

You: "Ingest api-spec.pdf"
AI:  Successfully ingested api-spec.pdf (47 chunks)

You: "How does authentication work?"
AI:  Based on section 3.2, authentication uses OAuth 2.0 with JWT tokens...

これだけです。Docker も Python も、管理が必要なサーバーインフラストラクチャもありません。

Web インターフェース

RAG Vault には Web UI があるため、コマンドラインを操作せずにドキュメントを管理できます。

Web UI を起動する
npx github:RobThePCGuy/rag-vault web

ブラウザーで http://localhost:3000 を開きます。

デフォルトでは、Web サーバーは 127.0.0.1(ループバック)にバインドされるため、このマシンからのみアクセスできます。ネットワーク上の別のデバイスから使用するには、RAG_BIND_HOST=0.0.0.0 を設定してください。また、API は認証なしで利用できるため、RAG_API_KEY も設定してください。

できること
  • ドキュメントをアップロード:PDF、DOCX、Markdown、TXT、JSON、JSONL、NDJSON ファイルをドラッグ&ドロップ
  • すぐに検索:クエリを入力し、関連度スコア付きの結果を確認
  • コンテンツをプレビュー:任意の結果をクリックして、前後の文脈を含むチャンク全体を表示
  • ファイルを管理:インデックス化されたすべてのドキュメントを表示し、不要なものを削除
  • データベースを切り替え:複数のナレッジベースを作成して切り替え
  • ステータスを確認:ドキュメント数、メモリ使用量、検索モードを表示
  • 設定をエクスポート/インポート:Vault の設定をバックアップおよび復元
  • テーマ設定:ライト、ダーク、システムのテーマを切り替え
  • フォルダーブラウザー:ディレクトリをたどってドキュメントを選択
REST API

Web サーバーには、直接呼び出せる REST API があります。認証を必須にするには、RAG_API_KEY を設定します。

# With authentication (when RAG_API_KEY is set)
curl -X POST "http://localhost:3000/api/v1/search" \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"query": "authentication", "limit": 5}'

# Search documents (no auth needed if RAG_API_KEY isn't set)
curl -X POST "http://localhost:3000/api/v1/search" \
  -H "Content-Type: application/json" \
  -d '{"query": "authentication", "limit": 5}'

# List all files
curl "http://localhost:3000/api/v1/files"

# Upload a document
curl -X POST "http://localhost:3000/api/v1/files/upload" \
  -F "[email protected]"

# Delete a file
curl -X DELETE "http://localhost:3000/api/v1/files" \
  -H "Content-Type: application/json" \
  -d '{"filePath": "/path/to/spec.pdf"}'

# Get system status
curl "http://localhost:3000/api/v1/status"

# Health check (for load balancers)
curl "http://localhost:3000/api/v1/health"
Reader API エンドポイント

これらのエンドポイントを使うと、ドキュメントを読み取り、ドキュメント間のつながりを見つけられます。

# Get all chunks for a document (ordered by index)
curl "http://localhost:3000/api/v1/documents/chunks?filePath=/path/to/doc.pdf"

# Find related chunks for cross-document discovery
curl "http://localhost:3000/api/v1/chunks/related?filePath=/path/to/doc.pdf&chunkIndex=0&limit=5"

# Batch request for multiple chunks (efficient for UIs)
curl -X POST "http://localhost:3000/api/v1/chunks/batch-related" \
  -H "Content-Type: application/json" \
  -d '{"chunks": [{"filePath": "/path/to/doc.pdf", "chunkIndex": 0}], "limit": 3}'

リモートモード

RAG Vault は HTTP サーバーとしても実行できるため、Claude.ai、Claude Desktop など、Streamable HTTP または SSE に対応したリモート MCP クライアントから接続できます。

# Start remote server (default port 3001)
npx github:RobThePCGuy/rag-vault --remote

# Custom port
npx github:RobThePCGuy/rag-vault --remote --port 8080

Stdio モードに変更はありません。--remote を付けずに実行すれば、Cursor、Claude Code、Codex でこれまでどおり動作します。

Claude Desktop から接続する

Claude Desktop の設定に追加します。

{
  "mcpServers": {
    "rag-vault-remote": {
      "type": "url",
      "url": "http://localhost:3001/mcp"
    }
  }
}

または、Claude Code CLI を使います。

claude mcp add --transport http rag-vault http://localhost:3001/mcp
Claude.ai から接続する

Claude.ai(Pro/Max/Team/Enterprise)の場合、URL https://your-host:3001/mcp を使ってカスタムコネクターとして追加します。ローカル開発では、トンネルを使ってサーバーを公開します。

cloudflared tunnel --url http://localhost:3001

リモートサーバーも、デフォルトでは 127.0.0.1(ループバック)にバインドされます。他のマシンから直接接続できるようにするには、RAG_BIND_HOST=0.0.0.0 を設定します。トンネル経由も含め、ループバックの範囲外にサーバーを公開する場合は、必ず認証用に RAG_API_KEY を設定してください。サーバーは Streamable HTTP(/mcp)とレガシー SSE(/sse)の両方のトランスポートに加え、/health のヘルスチェックに対応しています。

実際の使用例

コードベースのドキュメントを検索する
You: "Ingest all the markdown files in /docs"
AI:  Ingested 23 files (847 chunks total)

You: "What's the retry policy for failed API calls?"
AI:  According to error-handling.md, failed requests retry 3 times
     with exponential backoff: 1s, 2s, 4s...
Web ドキュメントをインデックス化する
You: "Fetch https://docs.example.com/api and ingest the HTML"
AI:  Ingested "docs.example.com/api" (156 chunks)

You: "What rate limits apply to the /users endpoint?"
AI:  The API limits /users to 100 requests per minute per API key...
個人用ナレッジベースを構築する
You: "Ingest my research papers folder"
AI:  Ingested 12 PDFs (2,341 chunks)

You: "What do recent studies say about transformer attention mechanisms?"
AI:  Based on attention-mechanisms-2024.pdf, the key finding is...
正確な技術用語を検索する

RAG Vault のハイブリッド検索は、意味と完全一致の両方を捉えます。

You: "Search for ERR_CONNECTION_REFUSED"
AI:  Found 3 results mentioning ERR_CONNECTION_REFUSED:
     1. troubleshooting.md - "When you see ERR_CONNECTION_REFUSED..."
     2. network-errors.pdf - "Common causes include..."

純粋なセマンティック検索では見つけられません。RAG Vault なら見つけられます。

動作の仕組み

Document → Parse → Chunk by meaning → Embed locally → Store in LanceDB
                         ↓
Query → Embed → Vector search + BM25 → Fusion → Optional reranking → Results

スマートなチャンク分割:文字数ではなく意味に基づいて分割します。コードブロックはそのまま保持します。

ハイブリッド検索:ベクトル類似度と BM25 キーワードマッチングを組み合わせる、2 種類のフュージョンモードがあります。

  • ブーストモード(デフォルト):BM25 によってベクトル検索の距離を乗算的にブーストします。シンプルで予測しやすい方式です。
  • RRF モード(RAG_SEARCH_MODE=rrf でオプトイン):Reciprocal Rank Fusion は、ベクトル検索と BM25 を独立した投票者として扱います。ベクトル検索だけでは見つからないドキュメントが検索結果に表示されることがあります。

クロスエンコーダーによる再ランキング(オプトイン):最初の検索後、クロスエンコーダーモデル(Xenova/ms-marco-MiniLM-L-6-v2、約 23 MB)が(クエリ、文章)の各ペアをまとめてスコアリングし、関連度の順位付けをさらに精密にします。RAG_RERANKER_ENABLED=true で有効にできます。

クエリ拡張(オプトイン):検索語が言い換えられている場合や概念的な検索の場合に、再現率を向上させるため、クエリを再構成して生成します。バックエンドは 2 種類あります。ローカルのテンプレートベースの拡張(デフォルト、完全オフライン)と、外部 API を介した LLM ベースの HyDE です。RAG_HYDE_ENABLED=true で有効にできます。

品質フィルタリング:任意の top-K カットオフではなく、関連度の差に基づいて結果をグループ化します。

デフォルトでローカル実行:埋め込みには Transformers.js、ストレージには LanceDB を使用します。ネットワークが必要なのは、初回のモデルダウンロード時、またはリモート URL を明示的に取り込む場合のみです。

MCP ツールを同梱:query_documents、ingest_file、ingest_data、delete_file、list_files、status、feedback_pin、feedback_dismiss、feedback_stats を利用できます。

対応形式

形式拡張子備考
PDF.pdf全文を抽出し、ヘッダーとフッターをフィルタリング
Word.docx表、リスト、書式を保持
Markdown.mdコードブロックをそのまま保持
テキスト.txtプレーンテキスト
JSON.json検索可能なキーと値のテキストに変換
JSONL / NDJSON.jsonl、.ndjsonログや構造化レコード向けに行ごとに解析
HTMLingest_data 経由Readability で自動クリーニング

設定

環境変数
変数デフォルト説明
BASE_DIRCurrent directoryこのパス配下のファイルのみアクセスできます
DB_PATH./lancedb/ベクトルの保存場所
CACHE_DIR./models/モデルのキャッシュディレクトリ
MODEL_NAMEXenova/all-MiniLM-L6-v2HuggingFace の埋め込みモデル
MAX_FILE_SIZE104857600 (100 MB)取り込めるファイルの最大サイズ
RAG_EMBEDDING_DEVICEauto埋め込みの実行デバイス:auto、cpu、cuda、dml、webgpu、wasm、gpu、webnn
WEB_PORT3000Web インターフェースのポート
UPLOAD_DIR./uploads/Web UI のファイルアップロード用一時ディレクトリ

Windows ユーザー向け: RAG_EMBEDDING_DEVICE=auto は GPU プロバイダー(DirectML)を試しますが、ONNX Runtime GPU バイナリが利用できない場合、失敗することがあります。埋め込みの初期化エラーが発生した場合は、安定して動作させるため、MCP 設定で RAG_EMBEDDING_DEVICE=cpu に設定してください。詳しくはGPU アクセラレーションに関する FAQを参照してください。

.env を編集せずに、1 つのコマンドで上書き:

# MCP mode
npx github:RobThePCGuy/rag-vault --embedding-device cpu

# Web mode
npx github:RobThePCGuy/rag-vault web --embedding-device dml

# Explicitly force auto detection
npx github:RobThePCGuy/rag-vault --gpu-auto
検索の調整
変数デフォルト説明
RAG_SEARCH_MODEboost融合モード:boost(キーワードによる乗算ブースト)または rrf(Reciprocal Rank Fusion)
RAG_HYBRID_WEIGHT0.6ベクトルと BM25 のバランス。0 = ベクトルのみ、1.0 = BM25 のみ
RAG_RRF_K60RRF の平滑化定数(rrf モードでのみ適用)。業界標準は 60 です。
RAG_GROUPINGunset品質フィルター:similar = 上位グループのみ、related = 上位 2 グループ
RAG_MAX_DISTANCEunsetこの関連性のしきい値を下回る結果を除外します(boost モードと併用してください。rrf のスコアは順位に基づきます)
RAG_GROUPING_STD_MULTIPLIER1.5グループ間の関連性の差と見なす標準偏差の数
RAG_HYBRID_CANDIDATE_MULTIPLIER2キーワードで再順位付けする前に取得する、追加のベクトル候補の数
RAG_FTS_MAX_FAILURES3FTS を一時的に無効にするまでの全文検索の失敗回数
RAG_FTS_COOLDOWN_MS300000 (5 min)失敗上限に達した後、FTS の再試行まで待機する時間
Cross-Encoder による再順位付け(オプトイン)
変数デフォルト説明
RAG_RERANKER_ENABLEDfalseより良い結果を得るため、cross-encoder による再順位付けを有効にします
RAG_RERANKER_MODELXenova/ms-marco-MiniLM-L-6-v2HuggingFace の cross-encoder モデル(約 23MB の ONNX。初回使用時にダウンロードされます)
RAG_RERANKER_CANDIDATE_MULTIPLIER2再順位付けモデルがスコアを付ける候補を、追加で取得する数
RAG_RERANKER_DEVICEauto再順位付けモデルのデバイス(RAG_EMBEDDING_DEVICE と同じ選択肢)
RERANKER_INIT_TIMEOUT_MS600000 (10 min)モデルのダウンロードと初期化のタイムアウト
クエリ拡張 / HyDE(オプトイン)
変数デフォルト説明
RAG_HYDE_ENABLEDfalse再現率を高めるため、クエリ拡張を有効にします
RAG_HYDE_BACKENDrule-basedローカルのテンプレートによる拡張には rule-based、LLM ベースの HyDE には api を指定します
RAG_HYDE_EXPANSIONS2生成する拡張クエリの数
RAG_HYDE_API_KEYunsetLLM バックエンドの API キー(RAG_HYDE_BACKEND=api の場合は必須)
RAG_HYDE_API_BASE_URLhttps://api.anthropic.comLLM バックエンドの API エンドポイント
RAG_HYDE_API_MODELclaude-haiku-4-5-20251001LLM ベースの拡張に使用するモデル

プライバシーに関する注意: api バックエンドはクエリテキストを外部の LLM エンドポイントに送信するため、「クラウドを一切使わない」という保証が損なわれます。デフォルトの rule-based バックエンドは完全にローカルで動作します。

セキュリティ(任意)
変数デフォルト説明
RAG_API_KEY未設定認証用の API キー
RAG_BIND_HOST127.0.0.1Web サーバー/リモートサーバーがバインドするインターフェースです。デフォルトではループバックのみです。ネットワーク上に公開するには 0.0.0.0 を設定します(その場合は必ず RAG_API_KEY を設定してください)。RAG_HOST はエイリアスです。
CORS_ORIGINSlocalhost許可するオリジン(カンマ区切り、または *)
RATE_LIMIT_WINDOW_MS60000レート制限の時間枠(ms)
RATE_LIMIT_MAX_REQUESTS1001 つの時間枠で許可する最大リクエスト数
詳細設定
変数デフォルト説明
ALLOWED_SCAN_ROOTSホームディレクトリデータベースのスキャンを許可するディレクトリ
JSON_BODY_LIMIT5mbリクエスト本文の最大サイズ
REQUEST_TIMEOUT_MS30000API リクエストのタイムアウト
REQUEST_LOGGINGfalseリクエストの監査ログを有効にします

完全な設定テンプレートは .env.example をコピーしてください。

コードが多いコンテンツの場合は、次をお試しください。

"env": {
  "RAG_HYBRID_WEIGHT": "0.8",
  "RAG_GROUPING": "similar"
}

よくある質問

データは本当にプライベートですか?

ローカルファイルについては、はい。埋め込みモデル(約90MB)のダウンロード後、インデックス作成と検索はお使いのマシン上で実行されます。RAG Vault がネットワークに接続するのは、リモート URL からの取り込みを選択した場合、またはモデルのダウンロードが必要な場合のみです。

オフラインでも動作しますか?

初回実行後は動作します。モデルはローカルにキャッシュされます。

GPU アクセラレーションには対応していますか?

デフォルトでは、RAG Vault はデバイスを自動的に選択します(RAG_EMBEDDING_DEVICE=auto)。GPU プロバイダーが正しくセットアップされている場合、埋め込みの生成を高速化できます。

重要: Windows では、auto は DirectML(dml)を試します。これは ONNX Runtime の GPU バイナリを必要とします。これらのバイナリがインストールされていない場合や、GPU のセットアップが不完全な場合、サーバーは起動しません。CPU に適切にフォールバックすることはありません。CUDA バイナリがない Linux でも同様です。

推奨: 埋め込みの初期化エラーが発生する場合は、MCP 設定で RAG_EMBEDDING_DEVICE=cpu を設定してください。CPU モードはすべてのプラットフォームで安定しており、ほとんどのワークロードには十分な速度です(デフォルトのモデルはわずか約90MBです)。

"env": {
  "RAG_EMBEDDING_DEVICE": "cpu"
}

対応しているデバイスの値:auto、cpu、cuda、dml、gpu、wasm、webgpu、webnn、webnn-npu、webnn-gpu、webnn-cpu。エイリアスの directml も使用でき、dml にマッピングされます。

埋め込みモデルを変更できますか?

はい。MODEL_NAME に互換性のある任意の HuggingFace モデルを設定してください。モデルが異なると互換性のないベクトルが生成されるため、DB_PATH を削除して再取り込みする必要があります。

アップグレードの推奨: 品質と多言語対応を向上させるには、EmbeddingGemma を使用してください。

"MODEL_NAME": "onnx-community/embeddinggemma-300m-ONNX"

多言語対応や、より高品質な検索が必要な場合に適した選択肢です。

その他の特化モデル:

  • 科学分野:sentence-transformers/allenai-specter
  • コード:jinaai/jina-embeddings-v2-base-code
データをバックアップするにはどうすればよいですか?

DB_PATH ディレクトリ(デフォルト:./lancedb/)をコピーしてください。

## トラブルシューティング
問題解決方法
結果が見つからないまずドキュメントを取り込む必要があります。「取り込んだファイルをすべて一覧表示」を実行して確認してください。
モデルのダウンロードに失敗したインターネット接続を確認してください。HuggingFace から約90MBのモデルをダウンロードします。
埋め込みの初期化に失敗するMCP 設定に RAG_EMBEDDING_DEVICE=cpu を設定してください。auto のデフォルト設定は、GPU バイナリがない Windows では失敗することがあります。
Protobuf parsing failedモデルキャッシュが破損しています。CACHE_DIR(デフォルト:./models/)を削除して再起動してください。RAG Vault は、分離された復旧用キャッシュを使って自動的に再試行します。
ファイルが大きすぎるデフォルトの上限は100MBです。MAX_FILE_SIZE を大きくするか、ファイルを分割してください。
パスが BASE_DIR の外にあるすべてのファイルパスは BASE_DIR 以下にする必要があります。絶対パスを使用してください。
MCP ツールが表示されない設定の構文を確認し、AI ツールを完全に終了して再起動してください(Mac では Cmd+Q)。
mcp-publisher login github が slow_down で失敗する代わりにトークンでログインしてください:mcp-publisher login github --token "$(gh auth token)"(または PAT を渡してください)。
401 UnauthorizedAPI キーが必要です。RAG_API_KEY を設定するか、正しいヘッダー形式を使用してください。
429 Too Many Requestsレート制限されています。リセットを待つか、RATE_LIMIT_MAX_REQUESTS を増やしてください。
CORS エラー環境変数 CORS_ORIGINS にオリジンを追加してください。

開発

git clone https://github.com/RobThePCGuy/rag-vault.git
cd rag-vault
pnpm install
pnpm -C web-ui install

# Install local git hooks (recommended, even for solo dev)
pnpm hooks:install

# Fast local quality gate (backend + web-ui type/lint/format, deps, unused, build, unit tests)
pnpm check:all

# Unit tests only (no model download required)
pnpm test:unit

# Integration/E2E tests (requires model download/network)
pnpm test:integration

# Build
pnpm build

# Run MCP server locally (stdio)
pnpm dev

# Run MCP server locally (remote HTTP + SSE)
pnpm dev:remote

# Run web server locally
pnpm web:dev

# Release to npm (local, guarded)
pnpm release          # patch
pnpm release:minor
pnpm release:major
pnpm release:dry
テスト階層
  • pnpm test:unit:ローカル/CI の品質チェック用の決定論的テストです。モデルのダウンロードを伴う統合パスは含まれません。
  • pnpm test:integration:埋め込みモデルの初期化を含む、完全な統合および E2E ワークフローです。

ネットワークやモデルに依存するテストスイートを明示的に実行するには、RUN_EMBEDDING_INTEGRATION=1 を使用してください。

リリース戦略
  • リリースはローカルで行い、scripts/release-npm.sh を使ってスクリプトで実行します。
  • サポートされているバージョン更新は patch、minor、major です。
  • このスクリプトはバージョンファイルに変更を加える前に、依存関係のインストール、pnpm check:all、pnpm ui:build を実行します。
  • package.json と server.json のバージョンは、チェックが成功した後にのみ更新されます。後続の手順で失敗した場合は自動的に元に戻されます。
  • pnpm release:dry はすべてのチェックに加えて npm のドライラン公開を実行し、バージョンファイルを必ず元に戻します。
プロジェクト構成
src/
├── bin/             # CLI subcommands (skills install)
├── chunker/         # Semantic text splitting
├── embedder/        # Transformers.js wrapper
├── errors/          # Error handling utilities
├── explainability/  # Keyword-based result explanations
├── flywheel/        # Feedback loop (pin/dismiss reranking)
├── hyde/            # Query expansion + HyDE (LLM-based)
├── parser/          # PDF, DOCX, HTML parsing
├── query/           # Advanced query syntax parser
├── reranker/        # Cross-encoder reranking (Transformers.js)
├── server/          # MCP tool handlers + remote transport
├── utils/           # Config, file helpers, process handlers
├── vectordb/        # LanceDB + hybrid search (boost + RRF)
└── web/             # Express server + REST API

web-ui/              # React frontend (Vite + Tailwind)

ドキュメント

  • SECURITY.md:セキュリティ設定とベストプラクティス
  • .env.example:環境変数の完全なテンプレート

ライセンス

MIT:個人利用および商用利用は無料です。

謝辞

Model Context Protocol、LanceDB、Transformers.js を使用して構築されています。

Shinsuke Kagawa による mcp-local-rag のフォークとして始まりました。今では独自のプロジェクトです。 基盤を築いてくれた上流のコントリビューターに心から感謝します。そこから精力的に改良を重ねてきました。 ローカルファーストの開発ツールを、これからもずっと。

コメント

MCP は初めてですか?

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

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