PDF RAG MCP サーバー
PDF処理、ベクターストレージ、MCP(モデルコンテキストプロトコル)を活用し、PDF文書のセマンティック検索機能を提供する強力なドキュメントナレッジベースシステムです。このシステムでは、最新のWebインターフェース、またはCursorなどのAIツールと統合するためのMCPプロトコルを介して、PDF文書のアップロード、処理、クエリを実行できます。
特徴
PDFドキュメントのアップロードと処理: PDFをアップロードし、コンテンツを自動的に抽出、チャンク化、ベクトル化します
リアルタイム処理ステータス: ドキュメント処理中のWebSocketベースのリアルタイムステータス更新
セマンティック検索: 処理されたすべてのドキュメントにわたるベクトルベースのセマンティック検索
MCPプロトコルサポート:モデルコンテキストプロトコルを使用して、CursorなどのAIツールと統合します。
最新のWebインターフェース:ドキュメント管理とクエリのためのReact/Chakra UIフロントエンド
高速な依存関係管理: 効率的な Python 依存関係管理に UV を使用します
Related MCP server: FastGPT Knowledge Base MCP
システムアーキテクチャ
システムは次の要素から構成されます。
FastAPIバックエンド: APIリクエスト、PDF処理、ベクターストレージを処理
React Frontend : ドキュメントを管理するためのユーザーフレンドリーなインターフェースを提供します
ベクターデータベース: セマンティック検索のための埋め込みを保存します
WebSocketサーバー:ドキュメント処理に関するリアルタイム更新を提供します
MCP サーバー: MCP 互換クライアントにナレッジベースを公開します
クイックスタート
前提条件
uv と run.py を使用したクイックインストールと起動
リポジトリをクローンします。
git clone https://github.com/yourusername/PdfRagMcpServer.git cd PdfRagMcpServerまだインストールしていない場合は、uv をインストールします。
curl -sS https://astral.sh/uv/install.sh | bashuv を使用して依存関係をインストールします。
uv init . uv venv source .venv/bin/activate uv pip install -r backend/requirements.txt便利なスクリプトを使用してアプリケーションを起動します。
uv run run.pyhttp://localhost:8000でウェブインターフェースにアクセスします。
カーソルを使用する
「設定」→「カーソル設定」→「MCP」→「新しいグローバルMCPサーバーを追加」に移動し、以下のコードをカーソルの~/.cursor/mcp.jsonファイルに貼り付けてください。詳しくはカーソルMCPのドキュメントをご覧ください。
localhost を、サービスをデプロイしたホストのIPアドレスに変更することもできます。この設定をMCP JSONに追加すると、カーソルMCP設定ページにMCPサーバーが表示されます。サーバーを有効にするには、サーバーをオンにしてください。
フロントエンドの構築(開発者向け)
フロントエンドを再構築する必要がある場合は、次の 2 つのオプションがあります。
オプション 1: 提供されたスクリプトを使用する (推奨)
このスクリプトは自動的に次の処理を実行します。
フロントエンドの依存関係をインストールする
フロントエンドを構築する
ビルド出力をバックエンドの静的ディレクトリにコピーします
オプション2: 手動ビルドプロセス
フロントエンドを構築した後、run.py スクリプトを使用してアプリケーションを起動できます。
シンプルな生産体制
静的ファイルがすでに構築されている本番環境の場合:
事前に構築したフロントエンドを
backend/staticディレクトリに配置します。サーバーを起動します。
cd backend uv pip install -r requirements.txt python -m app.main
開発セットアップ(別サービス)
開発用にサービスを個別に実行する場合:
バックエンド
バックエンド ディレクトリに移動します。
cd backenduv を使用して依存関係をインストールします。
uv pip install -r requirements.txtバックエンド サーバーを実行します。
python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
フロントエンド
フロントエンドディレクトリに移動します。
cd frontend依存関係をインストールします。
npm install開発サーバーを実行します。
npm run dev
使用法
書類のアップロード
http://localhost:8000でウェブインターフェースにアクセスします。
「新しいPDFをアップロード」をクリックし、PDFファイルを選択します。
システムはファイルを処理し、進行状況をリアルタイムで表示します。
処理が完了すると、文書は検索可能になります
文書の検索
ウェブインターフェースの検索機能を使用する
またはMCPプロトコルを使用してCursorと統合する
カーソルを使用したMCP統合
オープンカーソル
設定→AIとMCPへ移動
URL:
http://localhost:8000/mcp/v1でカスタム MCP サーバーを追加します。設定を保存する
カーソルから直接PDFナレッジベースを照会できるようになりました
トラブルシューティング
接続の問題
ポート8000が他のアプリケーションで使用されていないことを確認します
WebSocket接続が正常に動作していることを確認します
ブラウザがWebSocketをサポートしていることを確認する
処理の問題
PDF に抽出可能なテキストが含まれているかどうかを確認します (スキャンされた PDF には含まれていない場合もあります)
システムに十分なリソース(メモリとCPU)があることを確認する
詳細なエラーメッセージについてはバックエンドログを確認してください
プロジェクト構造
貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。