Skip to main content
Glama

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 互換クライアントにナレッジベースを公開します

クイックスタート

前提条件

  • Python 3.8以降

  • uv - 高速な Python パッケージインストーラーとリゾルバー

  • ギット

  • カーソル(オプション、MCP統合用)

uv と run.py を使用したクイックインストールと起動

  1. リポジトリをクローンします。

    git clone https://github.com/yourusername/PdfRagMcpServer.git cd PdfRagMcpServer
  2. まだインストールしていない場合は、uv をインストールします。

    curl -sS https://astral.sh/uv/install.sh | bash
  3. uv を使用して依存関係をインストールします。

    uv init . uv venv source .venv/bin/activate uv pip install -r backend/requirements.txt
  4. 便利なスクリプトを使用してアプリケーションを起動します。

    uv run run.py
  5. http://localhost:8000でウェブインターフェースにアクセスします。

  6. カーソルを使用する

「設定」→「カーソル設定」→「MCP」→「新しいグローバルMCPサーバーを追加」に移動し、以下のコードをカーソルの~/.cursor/mcp.jsonファイルに貼り付けてください。詳しくはカーソルMCPのドキュメントをご覧ください。

{ "mcpServers": { "pdf-rag": { "url": "http://localhost:7800/mcp" } } }

localhost を、サービスをデプロイしたホストのIPアドレスに変更することもできます。この設定をMCP JSONに追加すると、カーソルMCP設定ページにMCPサーバーが表示されます。サーバーを有効にするには、サーバーをオンにしてください。

フロントエンドの構築(開発者向け)

フロントエンドを再構築する必要がある場合は、次の 2 つのオプションがあります。

オプション 1: 提供されたスクリプトを使用する (推奨)

# Make the script executable if needed chmod +x build_frontend.py # Run the script ./build_frontend.py

このスクリプトは自動的に次の処理を実行します。

  • フロントエンドの依存関係をインストールする

  • フロントエンドを構築する

  • ビルド出力をバックエンドの静的ディレクトリにコピーします

オプション2: 手動ビルドプロセス

# Navigate to frontend directory cd frontend # Install dependencies npm install # Build the frontend npm run build # Create static directory if it doesn't exist mkdir -p ../backend/static # Copy build files cp -r dist/* ../backend/static/

フロントエンドを構築した後、run.py スクリプトを使用してアプリケーションを起動できます。

シンプルな生産体制

静的ファイルがすでに構築されている本番環境の場合:

  1. 事前に構築したフロントエンドをbackend/staticディレクトリに配置します。

  2. サーバーを起動します。

    cd backend uv pip install -r requirements.txt python -m app.main

開発セットアップ(別サービス)

開発用にサービスを個別に実行する場合:

バックエンド

  1. バックエンド ディレクトリに移動します。

    cd backend
  2. uv を使用して依存関係をインストールします。

    uv pip install -r requirements.txt
  3. バックエンド サーバーを実行します。

    python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload

フロントエンド

  1. フロントエンドディレクトリに移動します。

    cd frontend
  2. 依存関係をインストールします。

    npm install
  3. 開発サーバーを実行します。

    npm run dev

使用法

書類のアップロード

  1. http://localhost:8000でウェブインターフェースにアクセスします。

  2. 「新しいPDFをアップロード」をクリックし、PDFファイルを選択します。

  3. システムはファイルを処理し、進行状況をリアルタイムで表示します。

  4. 処理が完了すると、文書は検索可能になります

文書の検索

  1. ウェブインターフェースの検索機能を使用する

  2. またはMCPプロトコルを使用してCursorと統合する

カーソルを使用したMCP統合

  1. オープンカーソル

  2. 設定→AIとMCPへ移動

  3. URL: http://localhost:8000/mcp/v1でカスタム MCP サーバーを追加します。

  4. 設定を保存する

  5. カーソルから直接PDFナレッジベースを照会できるようになりました

トラブルシューティング

接続の問題

  • ポート8000が他のアプリケーションで使用されていないことを確認します

  • WebSocket接続が正常に動作していることを確認します

  • ブラウザがWebSocketをサポートしていることを確認する

処理の問題

  • PDF に抽出可能なテキストが含まれているかどうかを確認します (スキャンされた PDF には含まれていない場合もあります)

  • システムに十分なリソース(メモリとCPU)があることを確認する

  • 詳細なエラーメッセージについてはバックエンドログを確認してください

プロジェクト構造

PdfRagMcpServer/ ├── backend/ # FastAPI backend │ ├── app/ │ │ ├── __init__.py │ │ ├── main.py # Main FastAPI application │ │ ├── database.py # Database models │ │ ├── pdf_processor.py # PDF processing logic │ │ ├── vector_store.py # Vector database interface │ │ └── websocket.py # WebSocket handling │ ├── static/ # Static files for the web interface │ └── requirements.txt # Backend dependencies ├── frontend/ # React frontend │ ├── public/ │ ├── src/ │ │ ├── components/ # UI components │ │ ├── context/ # React context │ │ ├── pages/ # Page components │ │ └── App.jsx # Main application component │ ├── package.json # Frontend dependencies │ └── vite.config.js # Vite configuration ├── uploads/ # PDF file storage └── README.md # This documentation

貢献

貢献を歓迎します!お気軽にプルリクエストを送信してください。

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hyson666/pdf-rag-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server