Skip to content

PDF Oxide MCP-сервер — извлечение PDF для AI-ассистентов

pdf-oxide-mcp — сервер Model Context Protocol, который позволяет AI-ассистентам доставать содержимое из PDF. Всё работает локально: файлы не покидают вашу машину.

Установите crgx (однократно)

crgx — npx-образный раннер для бинарников на Rust: при первом запуске он сам скачает pdf_oxide_mcp. Вручную ставить MCP не нужно.

Linux / macOS

curl -fsSL crgx.dev/install.sh | sh

Windows (PowerShell)

irm crgx.dev/install.ps1 | iex

Настройка

После установки crgx добавьте приведённый ниже фрагмент в конфигурацию вашего AI-инструмента. Большего не требуется — crgx сам скачает и обновит pdf_oxide_mcp.

Claude Desktop

Добавьте в ~/.config/claude/claude_desktop_config.json (Linux) или ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "pdf-oxide": {
      "command": "crgx",
      "args": ["pdf_oxide_mcp@latest"]
    }
  }
}

Claude Code

Добавьте в .claude/settings.json вашего проекта:

{
  "mcpServers": {
    "pdf-oxide": {
      "command": "crgx",
      "args": ["pdf_oxide_mcp@latest"]
    }
  }
}

Cursor

Добавьте в настройки MCP в Cursor:

{
  "mcpServers": {
    "pdf-oxide": {
      "command": "crgx",
      "args": ["pdf_oxide_mcp@latest"]
    }
  }
}

Другие способы установки

Если не хотите пользоваться crgx, pdf_oxide_mcp можно поставить напрямую:

Homebrew (macOS / Linux)

brew install yfedoseev/tap/pdf-oxide    # включает pdf-oxide-mcp

Cargo

cargo install pdf_oxide_mcp

Затем укажите путь к бинарнику прямо в конфигурации:

{
  "mcpServers": {
    "pdf-oxide": {
      "command": "pdf-oxide-mcp"
    }
  }
}

Доступные инструменты

extract

Извлекает текст, Markdown или HTML из PDF-файла.

Параметр Тип Обязательный Описание
file_path string Да Путь к PDF-файлу
output_path string Да Путь для записи извлечённого содержимого
format string Нет "text" (по умолчанию), "markdown" или "html"
pages string Нет Диапазон страниц, например "1-3,7,10-12"
password string Нет Пароль для зашифрованного PDF
images boolean Нет Сохранять изображения отдельными файлами рядом с выводом
embed_images boolean Нет Встраивать изображения в markdown/html как base64 (по умолчанию: true)

Как это работает

MCP-сервер общается по stdio с помощью JSON-RPC 2.0. Когда AI-ассистенту нужно прочитать PDF, он отправляет запрос tools/call и получает извлечённое содержимое в ответ.

Вся обработка идёт локально на том же Rust-движке, что и в библиотеке и CLI: никакие данные не уходят во внешние сервисы.

Промпты, которые можно давать ассистенту

Когда MCP-сервер подключён, ассистент сам вызывает extract. Примеры рабочих промптов:

  • «Сохрани Markdown из report.pdf в report.md
  • «Извлеки страницы 4–8 из contract.pdf как HTML с вложенными картинками и сохрани в contract.html
  • «bank-statement.pdf защищён паролем (pw: hunter2) — вытащи только таблицу транзакций в виде текста.»

Под капотом ассистент отправляет примерно такой JSON-RPC-вызов:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "extract",
    "arguments": {
      "file_path": "/path/report.pdf",
      "output_path": "/path/report.md",
      "format": "markdown",
      "pages": "4-8",
      "images": true,
      "embed_images": true
    }
  }
}

Сервер пишет результат в output_path и возвращает короткое подтверждение — ассистент затем сам прочитает этот файл и заберёт содержимое в контекст.