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 и возвращает короткое подтверждение — ассистент затем сам прочитает этот файл и заберёт содержимое в контекст.