MCP RAG Serverは、Model Context Protocol (MCP)に準拠したRAG(Retrieval-Augmented Generation)機能を持つPythonサーバーです。マークダウン、テキスト、パワーポイント、PDFなど複数の形式のドキュメントをデータソースとして、multilingual-e5-largeモデルを使用してインデックス化し、ベクトル検索によって関連情報を取得する機能を提供します。
このプロジェクトは、MCPサーバーの基本的な実装に加えて、RAG機能を提供します。複数形式のドキュメントをインデックス化し、自然言語クエリに基づいて関連情報を検索することができます。
-
MCPサーバーの基本実装
- JSON-RPC over stdioベースで動作
- ツールの登録と実行のためのメカニズム
- エラーハンドリングとロギング
-
RAG機能
- 複数形式のドキュメント(マークダウン、テキスト、パワーポイント、PDF)の読み込みと解析
- 階層構造を持つソースディレクトリに対応
- markitdownライブラリを使用したパワーポイントやPDFからのマークダウン変換
- multilingual-e5-largeモデルを使用したエンベディング生成
- PostgreSQLのpgvectorを使用したベクトルデータベース
- ベクトル検索による関連情報の取得
- 前後のチャンク取得機能(コンテキストの連続性を確保)
- ドキュメント全文取得機能(完全なコンテキストを提供)
- 差分インデックス化機能(新規・変更ファイルのみを処理)
-
ツール
- ベクトル検索ツール(MCP)
- ドキュメント数取得ツール(MCP)
- インデックス管理ツール(CLI)
- Python 3.10以上
- PostgreSQL 14以上(pgvectorエクステンション付き)
# uvがインストールされていない場合は先にインストール
# pip install uv
# 依存関係のインストール
uv sync