Skip to main content
Glama

PDF RAG MCP Server

by hyson666

PDF RAG MCP-сервер

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

Функции

  • Загрузка и обработка PDF-документов : загрузка PDF-файлов и автоматическое извлечение, разбиение на части и векторизация контента.
  • Статус обработки в реальном времени : обновление статуса в реальном времени на основе WebSocket во время обработки документа.
  • Семантический поиск : векторный семантический поиск по всем обработанным документам.
  • Поддержка протокола MCP : интеграция с инструментами ИИ, такими как Cursor, с использованием протокола контекста модели
  • Современный веб-интерфейс : интерфейс React/Chakra UI для управления документами и создания запросов
  • Быстрое управление зависимостями : использует uv для эффективного управления зависимостями Python

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

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

  • 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

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Система базы знаний документов, которая позволяет пользователям загружать PDF-файлы и выполнять семантические запросы к ним через веб-интерфейс или через протокол контекста модели, обеспечивая интеграцию с инструментами ИИ, такими как Cursor.

  1. Функции
    1. Архитектура системы
      1. Быстрый старт
        1. Предпосылки
        2. Быстрая установка и запуск с помощью uv и run.py
        3. Создание фронтенда (для разработчиков)
        4. Простая настройка производства
        5. Настройка разработки (отдельные службы)
      2. Использование
        1. Загрузка документов
        2. Поиск документов
        3. Интеграция MCP с курсором
      3. Поиск неисправностей
        1. Проблемы с подключением
        2. Проблемы с обработкой
      4. Структура проекта
        1. Внося вклад
          1. Лицензия

            Related MCP Servers

            • A
              security
              A
              license
              A
              quality
              A powerful Model Context Protocol framework that extends Cursor IDE with tools for web content retrieval, PDF processing, and Word document parsing.
              Last updated -
              8
              9
              Python
              MIT License
              • Linux
              • Apple
            • -
              security
              -
              license
              -
              quality
              A Retrieval-Augmented Generation server that enables semantic PDF search with OCR capabilities, allowing users to query document content through any MCP client and receive intelligent answers.
              Last updated -
              1
              Python
              Apache 2.0
            • -
              security
              -
              license
              -
              quality
              A TypeScript-based document processing server that supports various document formats (.docx, .pdf, .xlsx) and integrates with Model Context Protocol SDK for efficient document context management.
              Last updated -
              TypeScript
              MIT License
            • -
              security
              A
              license
              -
              quality
              A Model Context Protocol (MCP) based server that efficiently manages PDF files, allowing AI coding tools like Cursor to read, summarize, and extract information from PDF datasheets to assist embedded development work.
              Last updated -
              Apache 2.0

            View all related MCP servers

            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