RAG 向け FAISS 搭載 MCP サーバー
このプロジェクトは、AI エージェントがベクター データベースを照会し、検索拡張生成 (RAG) に関連するドキュメントを取得できるようにする Machine Conversation Protocol (MCP) サーバーの概念実証実装を提供します。
特徴
- MCPエンドポイントを備えたFastAPIサーバー
- FAISSベクターデータベース統合
- ドキュメントのチャンク化と埋め込み
- GitHub Moveファイルの抽出と処理
- 完全な RAG ワークフローのための LLM 統合
- シンプルなクライアントの例
- サンプル文書
インストール
pipxの使用(推奨)
pipx は、分離された環境で Python アプリケーションをインストールして実行するのに役立つツールです。
- まず、pipx がインストールされていない場合はインストールします。
- プロジェクト ディレクトリから MCP サーバー パッケージを直接インストールします。
- (オプション) 環境変数を設定します。
.env.example
を.env
にコピーする- レート制限を上げるには、GitHub トークンを追加してください:
GITHUB_TOKEN=your_token_here
- RAG 統合用の OpenAI またはその他の LLM API キーを追加します:
OPENAI_API_KEY=your_key_here
手動インストール
pipx を使用したくない場合は、次の手順に従ってください。
- リポジトリをクローンする
- 依存関係をインストールします:
pipxでの使用
pipx でインストールすると、次のコマンドにアクセスできるようになります。
GitHubからMoveファイルをダウンロードする
GitHub の検索とインデックスの改善(推奨)
mcp-search-index
コマンドは、強化された GitHub リポジトリ検索機能を提供します。
- 最初にリポジトリを検索し、次に再帰的にMoveファイルを抽出します
- 複数の検索キーワード(カンマ区切り)をサポート
- 「use sui」参照を含むMoveファイルをインテリジェントにフィルタリングします
- ダウンロード後にベクターデータベースを常に再構築します
インデックス作成ファイルの移動
ベクターデータベースのクエリ
LLM統合によるRAGの使用
サーバーの実行
手動での使用(pipxなし)
サーバーの起動
サーバーはhttp://localhost:8000で起動します。
GitHubからMoveファイルをダウンロードする
GitHub から Move ファイルをダウンロードし、ベクター データベースに入力するには:
Python スクリプトを直接使用することもできます。
文書のインデックス作成
クエリを実行する前に、ドキュメントをインデックスする必要があります。テキストファイル(.txt)、Markdownファイル(.md)、またはMoveファイル(.move)をdocs
ディレクトリに配置できます。
ドキュメントにインデックスを付けるには、次のいずれかの方法があります。
--index
フラグ付きの実行スクリプトを使用します。
- インデックス スクリプトを直接使用します。
ドキュメントのクエリ
ローカル クエリ スクリプトを使用できます。
LLM統合によるRAGの使用
MCP APIエンドポイント
MCP APIエンドポイントは/mcp/action
で利用可能です。これを使用して、さまざまなアクションを実行できます。
retrieve_documents
: クエリに関連する文書を取得するindex_documents
: ディレクトリからドキュメントをインデックスする
例:
完全なRAGパイプライン
完全な RAG (Retrieval-Augmented Generation) パイプラインは次のように機能します。
- 検索クエリ: ユーザーが質問を送信する
- 検索: システムはベクターデータベースから関連文書を検索します
- コンテキスト形成: 取得した文書はプロンプトにフォーマットされる
- LLM生成: プロンプトは取得されたコンテキストとともにLLMに送信される。
- 強化された応答: LLMは取得した情報に基づいて回答を提供します
このワークフローはrag_integration.py
モジュールに完全に実装されており、コマンドラインから、または独自のアプリケーションのライブラリとして使用できます。
GitHub 移動ファイルの抽出
このシステムは、検索クエリに基づいてGitHubからMoveファイルを抽出できます。以下の2つのメソッドを実装しています。
- GitHub API (推奨):より高いレート制限にはGitHubトークンが必要です
- Webスクレイピングフォールバック: APIメソッドが失敗した場合、またはトークンが提供されていない場合に使用されます。
GitHub トークンを設定するには、 .env
ファイルまたは環境変数として設定します。
プロジェクト構造
プロジェクトの拡張
この概念実証を拡張するには:
- 認証とセキュリティ機能を追加する
- より洗練されたドキュメント処理を実装する
- より多くのドキュメントタイプのサポートを追加
- 他のLLMプロバイダーとの統合
- 監視とログ記録を追加する
- より構造化されたデータ抽出のためにMove言語の解析を改善
ライセンス
マサチューセッツ工科大学
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
AI エージェントが Sui Move 言語ドキュメントを含む FAISS ベクトル データベースを照会して検索拡張生成を実行できるようにする機械会話プロトコル サーバー。
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that enables AI assistants to interact with Feishu project management systems, allowing retrieval of project views and work items.Last updated -45PythonMIT License
- AsecurityFlicenseAqualityA Model Context Protocol server that enables AI assistants to utilize AivisSpeech Engine's high-quality voice synthesis capabilities through a standardized API interface.Last updated -1TypeScript
- AsecurityFlicenseAqualityA Model Context Protocol server that enables AI agents to generate, fetch, and manage UI components through natural language interactions.Last updated -34314TypeScript
- AsecurityAlicenseAqualityA Model Context Protocol server that enables AI agents to interact with a local Logseq instance, allowing operations like creating pages, managing blocks, and searching across a knowledge graph.Last updated -131PythonMIT License