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.

F
license - not found
-
quality - not tested
D
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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