mcp-agentic-rag について
mcp-agentic-ragは、Agentic RAGアプリケーション向けのMCPサーバーとサンプルクライアントを提供します。エンティティ抽出、クエリの改善、関連性チェックのツールで検索ワークフローを支援します。
主な機能
- 01クエリからエンティティを抽出
- 02テキストクエリを改善
- 03テキストチャンクの関連性を確認
- 04MCPクライアントのサンプルを同梱
活用シーン
- 01文書検索前にクエリのエンティティを特定
- 02検索に使うクエリを改善
- 03検索結果から無関係なチャンクを除外
MCP 対応
MCPサーバーは、時刻、エンティティ抽出、クエリ改善、関連性確認のツールを公開します。付属クライアントの例では、接続、ツール一覧の取得、ツール呼び出しを示します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-agentic-rag
概要
このプロジェクトは、エージェント型 RAG(検索拡張生成)アプリケーションを構築するための MCP(Model Context Protocol)サーバーとクライアントを実装します。サーバーは、エンティティ抽出、クエリの改善、関連性の確認など、RAG システムのパフォーマンスを向上させるために使用できるツールを提供します。クライアントでは、サーバーへの接続方法とそのツールの使用方法を紹介します。
サーバー(server.py)
サーバーは、mcp ライブラリの FastMCP クラスを使用して実装されています。次のツールを公開します。
- get_time_with_prefix: 現在の日付と時刻を返します。
- extract_entities_tool: OpenAI を使用して、指定されたテキストクエリからエンティティを抽出します。このツールは、ユーザーのクエリに含まれる主要なエンティティを特定するために使用でき、関連ドキュメントの検索精度を向上させるのに役立ちます。
- refine_query_tool: OpenAI を使用して、指定されたテキストクエリを改善します。このツールは、ユーザーのクエリの品質を高め、関連ドキュメントの検索精度を向上させるために使用できます。
- check_relevance: LLM を使用して、テキストチャンクと指定された質問との関連性を確認します。このツールは、検索結果から無関係なドキュメントを除外するために使用できます。
クライアント(mcp-client.py)
クライアントでは、MCP サーバーへの接続方法とそのツールの使用方法を紹介します。mcp ライブラリの ClientSession クラスを使用して、サーバーとの接続を確立します。クライアントでは、次の操作例を示します。
- サーバーに接続する
- 利用可能なツールを一覧表示する
- 引数を指定して特定のツールを呼び出す
- OpenAI と利用可能な MCP ツールを使用してクエリを処理する
要件
- Python 3.7+
- openai
- mcp
- dotenv
インストール
-
リポジトリをクローンします。
git clone https://github.com/rukshanet/mcp-agentic-rag.git -
依存関係をインストールします。
pip install -r requirements.txt -
環境変数を設定します。
.env.sampleファイルをもとに.envファイルを作成します。OPENAI_MODEL_NAME環境変数に、使用する OpenAI モデルの名前を設定します。
使用方法
-
MCP サーバーを起動します。
python server.py -
MCP クライアントを実行します。
python mcp-client.py
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。