MCP PDF
📄 MCP PDF
Сервер FastMCP для обработки PDF
47 инструментов для извлечения текста, OCR, таблиц, форм, аннотаций, преобразования markdown↔PDF и многого другого
Отлично работает с MCP Office Tools
Что он делает
MCP PDF извлекает содержимое из PDF-файлов, используя несколько библиотек с автоматическим переключением на резервные варианты. Если один метод не срабатывает, он пробует другой.
Основные возможности:
Извлечение текста через PyMuPDF, pdfplumber или pypdf (автоматический выбор)
Извлечение таблиц через Camelot, pdfplumber или Tabula (автоматический выбор)
OCR для сканированных документов через Tesseract
Работа с формами — извлечение, заполнение и создание PDF-форм
Сборка документов — объединение, разделение, изменение порядка страниц
Аннотации — стикеры, выделение текста, штампы
Векторная графика — экспорт в SVG для схем и технических чертежей
Преобразование форматов — PDF ↔ Markdown (PDF→MD через PyMuPDF, MD→PDF через pandoc)
Related MCP server: PDF MCP Flow
Быстрый старт
# Run from PyPI (one-shot, no permanent install)
uvx mcp-pdf
# Add to Claude Code — note the `--` separator before uvx
claude mcp add pdf-tools -- uvx mcp-pdf
# Include the markdown_to_pdf tool (requires pandoc on host)
claude mcp add pdf-tools -- uvx --from "mcp-pdf[markdown]" mcp-pdf
uvxагрессивно кэширует установку инструментов. После обновления до новой версии принудительно обновите кэш с помощьюuvx --refresh mcp-pdf(илиuvx --refresh --from "mcp-pdf[markdown]" mcp-pdf, если вы используете дополнительные пакеты).
git clone https://github.com/rsp2k/mcp-pdf
cd mcp-pdf
uv sync
# System dependencies (Ubuntu/Debian)
sudo apt-get install tesseract-ocr tesseract-ocr-eng poppler-utils ghostscript
# For markdown_to_pdf — pick one PDF-engine route:
sudo apt-get install pandoc tectonic # recommended (small)
# or: sudo apt-get install pandoc texlive-xetex texlive-latex-extra # full TeX
# or: sudo apt-get install pandoc && pip install weasyprint # skip TeX
# Verify
uv run python examples/verify_installation.pyИнструменты
Извлечение содержимого
Инструмент | Что он делает |
| Извлекает текст из страниц PDF с автоматическим разбиением на части для больших файлов |
| Извлекает таблицы в формате JSON, CSV или Markdown |
| Извлекает встроенные изображения |
| Получает все гиперссылки с фильтрацией по страницам |
| Распознает сканированные документы с помощью Tesseract |
| Экспортирует векторную графику в SVG (схемы, диаграммы, чертежи) |
Преобразование форматов
Инструмент | Что он делает |
| Преобразует PDF в markdown с сохранением структуры; извлекает изображения и векторные SVG на диск |
| Преобразует файлы |
markdown_to_pdf требует: pip install mcp-pdf[markdown], а также бинарный файл pandoc и хотя бы один PDF-движок (xelatex, pdflatex, tectonic, weasyprint или wkhtmltopdf) в переменной PATH. Инструмент автоматически определяет доступные средства и использует наиболее качественное. Передайте pdf_engine= для переопределения или extra_args= для необработанных параметров pandoc.
Анализ документов
Инструмент | Что он делает |
| Получает название, автора, дату создания, количество страниц и т.д. |
| Извлекает оглавление и закладки |
| Определяет колонки, верхние и нижние колонтитулы |
| Проверяет, требуется ли PDF-файлу OCR |
| Сравнивает два PDF-файла по тексту, структуре или метаданным |
| Проверяет на наличие повреждений и возможности оптимизации |
| Отчет о шифровании, правах доступа и подписях |
Формы
Инструмент | Что он делает |
| Получает имена и значения полей формы |
| Заполняет поля формы из JSON |
| Создает новые формы с текстовыми полями, флажками, выпадающими списками |
| Добавляет поля в существующие PDF-файлы |
Формы разрешений (на основе координат)
Для сканированных PDF или форм без интерактивных полей. Рисует текст по координатам (x, y).
Инструмент | Что он делает |
| Заполняет любой PDF, рисуя по координатам (работает со сканированными формами) |
| Получает определения полей для валидации или генерации UI |
| Проверяет данные на соответствие схеме полей перед заполнением |
| Генерирует PDF, показывающий границы полей (для отладки) |
| Вставляет страницы с изображениями/текстом со ссылками "См. страницу X" |
Требует: pip install mcp-pdf[forms] (добавляет зависимость reportlab)
Сборка документов
Инструмент | Что он делает |
| Объединяет несколько PDF-файлов с сохранением закладок |
| Разделяет по диапазонам страниц |
| Разделяет по границам глав/разделов |
| Изменяет порядок страниц в произвольном порядке |
Аннотации
Инструмент | Что он делает |
| Добавляет аннотации-комментарии |
| Выделяет текстовые области |
| Добавляет штампы "Утверждено"/"Черновик"/"Конфиденциально" |
| Экспортирует аннотации в JSON |
Как работают резервные варианты
Сервер пробует несколько библиотек для каждой операции:
Извлечение текста:
PyMuPDF (самый быстрый)
pdfplumber (лучше для сложных макетов)
pypdf (наиболее совместимый)
Извлечение таблиц:
Camelot (лучшая точность, требует Ghostscript)
pdfplumber (без зависимостей)
Tabula (требует Java)
Если PDF не обрабатывается одной библиотекой, автоматически пробуется следующая.
Управление токенами
Большие PDF-файлы могут превысить лимиты ответов MCP. Сервер справляется с этим:
Автоматическое разбиение делит большие документы на группы страниц
Лимиты строк таблиц предотвращают переполнение ответов огромными таблицами
Режим сводки возвращает структуру без полного содержимого
# Get first 10 pages
result = await extract_text("huge.pdf", pages="1-10")
# Limit table rows
tables = await extract_tables("data.pdf", max_rows_per_table=50)
# Structure only
tables = await extract_tables("data.pdf", summary_only=True)Обработка URL
PDF-файлы можно получать напрямую по HTTPS URL:
result = await extract_text("https://example.com/report.pdf")Файлы кэшируются локально для последующих операций.
Системные зависимости
Некоторые функции требуют системных пакетов:
Функция | Зависимость |
OCR |
|
Таблицы Camelot |
|
Таблицы Tabula |
|
PDF в изображения |
|
|
|
Выбор PDF-движка для markdown_to_pdf
Pandoc преобразует markdown → HTML или LaTeX → PDF. Путь через LaTeX дает наиболее качественный результат, но требует установки TeX. Компромиссы:
Движок | Размер на диске | Примечания |
| ~30 МБ | Рекомендуется для новых установок. Один статический бинарный файл. Скачивает LaTeX-пакеты по требованию — не требует массовой установки заранее. |
| ~500 МБ | Лучший результат после установки. Используйте, если у вас уже есть TeX. Пакет |
| ~200 МБ | Часто ломается. Ожидайте |
| ~40 МБ | Чистый Python ( |
| ~40 МБ | Старый инструмент HTML-в-PDF. Адекватный, но менее активно поддерживается. |
Ubuntu/Debian:
sudo apt-get install tesseract-ocr tesseract-ocr-eng poppler-utils ghostscript default-jre-headless
# For markdown_to_pdf — pick one engine route:
# Option A — tectonic (smallest, downloads packages on demand)
sudo apt-get install pandoc
# tectonic isn't in apt — install via cargo or download static binary:
# https://tectonic-typesetting.github.io/en-US/install.html
# Option B — full TeX (best quality, large download)
sudo apt-get install pandoc texlive-xetex texlive-latex-extra texlive-fonts-extra
# Option C — weasyprint (skip TeX entirely)
sudo apt-get install pandoc
pip install weasyprintArch Linux:
sudo pacman -S tesseract tesseract-data-eng poppler ghostscript jre-openjdk-headless
# For markdown_to_pdf — pick one engine route:
# Option A — tectonic (recommended for new installs, in official repo)
sudo pacman -S pandoc tectonic
# Option B — full TeX (best output, ~500 MB)
sudo pacman -S pandoc texlive-xetex texlive-latexextra texlive-fontsextra
# Option C — weasyprint (skip TeX)
sudo pacman -S pandoc
pip install weasyprint # or: uv pip install weasyprint
# Option D — wkhtmltopdf (from AUR)
yay -S wkhtmltopdf-staticmacOS (Homebrew):
brew install tesseract poppler ghostscript
# For markdown_to_pdf — pick one engine route:
# Option A — tectonic (recommended)
brew install pandoc tectonic
# Option B — full TeX (mactex-no-gui includes the latex-extra equivalent)
brew install pandoc
brew install --cask mactex-no-gui
# Option C — weasyprint
brew install pandoc weasyprintДополнительные пакеты
Базовая установка остается легкой. Тяжелые или нишевые зависимости вынесены в дополнительные пакеты:
Пакет | Добавляет | Когда устанавливать |
|
| Инструменты создания форм ( |
|
| Более точное извлечение таблиц (также требует Java + Ghostscript) |
|
| Инструмент |
| Все вышеперечисленное | Хотите всё сразу |
Конфигурация
Опциональные переменные окружения:
Переменная | Назначение |
| Разделенные двоеточием директории для вывода файлов |
| Временная директория для обработки (по умолчанию: |
| Расположение языковых данных Tesseract |
Разработка
# Run tests
uv run pytest
# With coverage
uv run pytest --cov=mcp_pdf
# Format
uv run black src/ tests/
# Lint
uv run ruff check src/ tests/Лицензия
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables comprehensive PDF processing including text extraction, image extraction, and OCR capabilities for reading text within images across multiple languages.12MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI-driven PDF document processing including PDF to Markdown conversion, intelligent text and table extraction, image extraction, format conversion between PDF/Word/Markdown, batch processing, and fuzzy search - optimized for LLM context and RAG workflows.2MIT
- AlicenseNot gradedqualityDmaintenanceProvides intelligent OCR and PDF processing capabilities that automatically detect whether PDFs contain digital text or scanned images and apply appropriate extraction methods. Supports text extraction, OCR processing, structure analysis, and batch operations.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI applications to read and process PDF files with intelligent file search, text extraction, image processing, and optional OCR support for scanned documents.MIT
Related MCP Connectors
Turn any PDF into structured JSON via AI + OCR: invoices, bank statements, contracts.
PDF accessibility checks (veraPDF PDF/UA-1), auto-fix and Markdown conversion. EU-hosted.
Convert PDF bank statements into structured transactions, accounts, and balances.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/rsp2k/mcp-pdf'
If you have feedback or need assistance with the MCP directory API, please join our Discord server