Skip to main content
Glama

PDF RAG MCP-сервер

Мощная система базы знаний документов, которая использует обработку PDF, векторное хранилище и MCP (Model Context Protocol) для предоставления возможностей семантического поиска для документов PDF. Эта система позволяет загружать, обрабатывать и запрашивать документы PDF через современный веб-интерфейс или через протокол MCP для интеграции с инструментами ИИ, такими как Cursor.

Функции

  • Загрузка и обработка PDF-документов : загрузка PDF-файлов и автоматическое извлечение, разбиение на части и векторизация контента.

  • Статус обработки в реальном времени : обновление статуса в реальном времени на основе WebSocket во время обработки документа.

  • Семантический поиск : векторный семантический поиск по всем обработанным документам.

  • Поддержка протокола MCP : интеграция с инструментами ИИ, такими как Cursor, с использованием протокола контекста модели

  • Современный веб-интерфейс : интерфейс React/Chakra UI для управления документами и создания запросов

  • Быстрое управление зависимостями : использует uv для эффективного управления зависимостями Python

Related MCP server: FastGPT Knowledge Base MCP

Архитектура системы

Система состоит из:

  • FastAPI Backend : обрабатывает запросы API, обрабатывает PDF-файлы и хранит векторные данные.

  • React Frontend : предоставляет удобный интерфейс для управления документами.

  • Векторная база данных : хранит вложения для семантического поиска

  • Сервер WebSocket : предоставляет обновления в режиме реального времени по обработке документов.

  • MCP Server : предоставляет базу знаний клиентам, совместимым с 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 ~/.cursor/mcp.json. Для получения дополнительной информации см. документацию Cursor MCP.

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

Вы также можете изменить localhost на IP-адрес хоста, на котором вы развернули службу. После добавления этой конфигурации в mcp json вы увидите, что сервер mcp отображается на странице конфигурации Cursor mcp, включите его, чтобы включить сервер:

Создание фронтенда (для разработчиков)

Если вам необходимо перестроить интерфейс, у вас есть два варианта:

Вариант 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. Или интегрируйте с Cursor, используя протокол MCP

Интеграция MCP с курсором

  1. Открытый курсор

  2. Перейдите в Настройки → ИИ и MCP.

  3. Добавьте пользовательский сервер MCP с URL-адресом: http://localhost:8000/mcp/v1

  4. Сохраните настройки

  5. Теперь вы можете запрашивать информацию из базы знаний PDF-файлов непосредственно из Курсора

Поиск неисправностей

Проблемы с подключением

  • Убедитесь, что порт 8000 не используется другими приложениями.

  • Проверьте правильность работы соединения WebSocket.

  • Убедитесь, что ваш браузер поддерживает WebSockets

Проблемы с обработкой

  • Проверьте, содержит ли ваш PDF-файл извлекаемый текст (некоторые отсканированные PDF-файлы могут не содержать извлекаемый текст)

  • Убедитесь, что система имеет достаточные ресурсы (память и процессор)

  • Проверьте внутренние журналы на наличие подробных сообщений об ошибках.

Структура проекта

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