mcpField
M
mcp-rag-server

mcp-rag-server

ローカル
github.com/kwanLeeFrmViメモリ・ナレッジ3680 週間前に更新

mcp-rag-server について

mcp-rag-server は、検索拡張生成(RAG)機能を提供する MCP サーバーです。ドキュメントにインデックスを作成し、MCP を通じて関連情報を LLM に渡します。ベクターストアにはローカルの SQLite を使用し、複数の埋め込みプロバイダーに対応しています。

主な機能

  1. 01txt、md、json、jsonl、csv 形式のドキュメントのインデックス化
  2. 02テキスト分割に使うチャンクサイズの設定
  3. 03SQLite を用いたローカルのベクターストア
  4. 04OpenAI、Ollama、Granite、Nomic の埋め込みに対応
  5. 05stdio 経由の MCP ツールとリソースの公開

活用シーン

  1. 01ローカルのドキュメントを元に LLM が質問に答える
  2. 02プロジェクトドキュメントの検索可能なインデックス作成
  3. 03Ollama の埋め込みモデルを用いたローカルでの検索

MCP 対応

MCP サーバーとして、embedding_documents や query_documents などのツールと、rag:// で始まるリソースを MCP クライアントに公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"rag-server-kwanleefrmvi": {
"command": "npx",
"args": [
"-y",
"mcp-rag-server"
]
}
}
}
起動コマンドnpx -y mcp-rag-server

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

パッケージ
npmmcp-rag-server

ツール

5

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

パラメーター型必須説明
pathstringはいインデックスに登録する .json、.jsonl、.txt、.md、.csv ファイルを含むパス

詳細

mcp-rag-server

npm version License Node.js Version

Retrieval Augmented Generation(RAG)を可能にする Model Context Protocol(MCP)サーバーです。ドキュメントをインデックス化し、MCP プロトコルを介して大規模言語モデルに関連するコンテキストを提供します。

統合例

汎用 MCP クライアントの設定
{
  "mcpServers": {
    "rag": {
      "command": "npx",
      "args": ["-y", "mcp-rag-server"],
      "env": {
        "BASE_LLM_API": "http://localhost:11434/v1",
        "EMBEDDING_MODEL": "nomic-embed-text",
        "VECTOR_STORE_PATH": "./vector_store",
        "CHUNK_SIZE": "500"
      }
    }
  }
}
対話例
# Index documents
>> tool:embedding_documents {"path":"./docs"}

# Check status
>> resource:embedding-status

<< rag://embedding/status
Current Path: ./docs/file1.md
Completed: 10
Failed: 0
Total chunks: 15
Failed Reason:

目次

機能

  • .txt、.md、.json、.jsonl、.csv 形式のドキュメントをインデックス化
  • テキスト分割に使用するチャンクサイズをカスタマイズ可能
  • SQLite を利用したローカルベクトルストア(LangChain の LibSQLVectorStore 経由)
  • 複数の埋め込みプロバイダーに対応(OpenAI、Ollama、Granite、Nomic)
  • stdio 経由で MCP ツールとリソースを公開し、MCP クライアントとシームレスに統合

インストール

npm から
npm install -g mcp-rag-server
ソースから
git clone https://github.com/kwanLeeFrmVi/mcp-rag-server.git
cd mcp-rag-server
npm install
npm run build
npm start

クイックスタート

export BASE_LLM_API=http://localhost:11434/v1
export EMBEDDING_MODEL=granite-embedding-278m-multilingual-Q6_K-1743674737397:latest
export VECTOR_STORE_PATH=./vector_store
export CHUNK_SIZE=500

# Run (global install)
mcp-rag-server

# Or via npx
npx mcp-rag-server

💡 ヒント: 埋め込みには Ollama の使用をおすすめします。nomic-embed-text モデルをインストールして取得してください。

ollama pull nomic-embed-text
export EMBEDDING_MODEL=nomic-embed-text

設定

変数説明デフォルト
BASE_LLM_API埋め込み API のベース URLhttp://localhost:11434/v1
LLM_API_KEYLLM プロバイダーの API キー(empty)
EMBEDDING_MODEL埋め込みモデルの識別子nomic-embed-text
VECTOR_STORE_PATHローカルベクトルストアのディレクトリ./vector_store
CHUNK_SIZEテキストチャンクあたりの文字数(数値)500

💡 推奨: 最適なパフォーマンスを得るには、nomic-embed-text などの Ollama 埋め込みモデルを使用してください。

使用方法

MCP ツール

起動すると、サーバーは MCP 経由で次のツールを公開します。

  • embedding_documents(path: string):指定したパス以下のドキュメントをインデックス化
  • query_documents(query: string, k?: number):上位 k 個のチャンクを取得(デフォルトは 15)
  • remove_document(path: string):特定のドキュメントを削除
  • remove_all_documents(confirm: boolean):インデックス全体を消去(confirm=true)
  • list_documents():インデックス化されたすべてのドキュメントパスを一覧表示
MCP リソース

クライアントは URI を使ってリソースを読み取ることもできます。

  • rag://documents — すべてのドキュメント URI を一覧表示
  • rag://document/{path} — ドキュメントの全文を取得
  • rag://query-document/{numberOfChunks}/{query} — リソースとしてドキュメントを検索
  • rag://embedding/status — 現在のインデックス作成状況を確認(完了、失敗、合計)

RAG の仕組み

  1. インデックス作成:ファイルを読み込み、CHUNK_SIZE に基づいてテキストをチャンクに分割し、埋め込み処理のキューに追加します。
  2. 埋め込み:各チャンクを埋め込み API で順次処理し、ベクトルを SQLite に保存します。
  3. 検索:クエリを埋め込み、ベクトルストアから最も近いテキストチャンクを取得して、クライアントに返します。

開発

npm install
npm run build      # Compile TypeScript
npm start          # Run server
npm run watch      # Watch for changes

コントリビューション

コントリビューションを歓迎します。GitHub でイシューを作成するか、プルリクエストをお送りください。

ライセンス

MIT 2025 Quan Le

コメント

MCP は初めてですか?

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

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