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
Клонируйте репозиторий:
git clone https://github.com/yourusername/PdfRagMcpServer.git cd PdfRagMcpServerУстановите uv, если у вас его еще нет:
curl -sS https://astral.sh/uv/install.sh | bashУстановите зависимости с помощью uv:
uv init . uv venv source .venv/bin/activate uv pip install -r backend/requirements.txtЗапустите приложение с помощью удобного скрипта:
uv run run.pyДоступ к веб-интерфейсу по адресу http://localhost:8000
Использование с курсором
Перейдите в Настройки -> Настройки курсора -> MCP -> Добавить новый глобальный сервер MCP, вставьте ниже в файл Cursor ~/.cursor/mcp.json. Для получения дополнительной информации см. документацию Cursor MCP.
Вы также можете изменить localhost на IP-адрес хоста, на котором вы развернули службу. После добавления этой конфигурации в mcp json вы увидите, что сервер mcp отображается на странице конфигурации Cursor mcp, включите его, чтобы включить сервер:
Создание фронтенда (для разработчиков)
Если вам необходимо перестроить интерфейс, у вас есть два варианта:
Вариант 1: использование предоставленного скрипта (рекомендуется)
Этот скрипт автоматически:
Установка зависимостей интерфейса
Создание интерфейса
Скопируйте вывод сборки в статический каталог бэкэнда.
Вариант 2: Ручной процесс сборки
После создания интерфейса вы можете запустить приложение с помощью скрипта run.py.
Простая настройка производства
Для производственной среды, где статические файлы уже созданы:
Поместите готовый фронтенд в каталог
backend/staticЗапустите сервер:
cd backend uv pip install -r requirements.txt python -m app.main
Настройка разработки (отдельные службы)
Если вы хотите запустить службы отдельно для разработки:
Бэкэнд
Перейдите в каталог бэкэнда:
cd backendУстановите зависимости с помощью uv:
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-файл.
Система обработает файл, показывая прогресс в режиме реального времени.
После обработки документ будет доступен для поиска.
Поиск документов
Используйте функцию поиска в веб-интерфейсе
Или интегрируйте с Cursor, используя протокол MCP
Интеграция MCP с курсором
Открытый курсор
Перейдите в Настройки → ИИ и MCP.
Добавьте пользовательский сервер MCP с URL-адресом:
http://localhost:8000/mcp/v1Сохраните настройки
Теперь вы можете запрашивать информацию из базы знаний PDF-файлов непосредственно из Курсора
Поиск неисправностей
Проблемы с подключением
Убедитесь, что порт 8000 не используется другими приложениями.
Проверьте правильность работы соединения WebSocket.
Убедитесь, что ваш браузер поддерживает WebSockets
Проблемы с обработкой
Проверьте, содержит ли ваш PDF-файл извлекаемый текст (некоторые отсканированные PDF-файлы могут не содержать извлекаемый текст)
Убедитесь, что система имеет достаточные ресурсы (память и процессор)
Проверьте внутренние журналы на наличие подробных сообщений об ошибках.
Структура проекта
Внося вклад
Вклады приветствуются! Пожалуйста, не стесняйтесь отправлять запрос на включение.
Лицензия
Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE.