Skip to main content
Glama

📄 MCP PDF

Сервер FastMCP для обработки PDF

47 инструментов для извлечения текста, OCR, таблиц, форм, аннотаций, преобразования markdown↔PDF и многого другого

Python 3.11+ FastMCP License: MIT PyPI

Отлично работает с 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

Инструменты

Извлечение содержимого

Инструмент

Что он делает

extract_text

Извлекает текст из страниц PDF с автоматическим разбиением на части для больших файлов

extract_tables

Извлекает таблицы в формате JSON, CSV или Markdown

extract_images

Извлекает встроенные изображения

extract_links

Получает все гиперссылки с фильтрацией по страницам

ocr_pdf

Распознает сканированные документы с помощью Tesseract

extract_vector_graphics

Экспортирует векторную графику в SVG (схемы, диаграммы, чертежи)

Преобразование форматов

Инструмент

Что он делает

pdf_to_markdown

Преобразует PDF в markdown с сохранением структуры; извлекает изображения и векторные SVG на диск

markdown_to_pdf

Преобразует файлы .md (или встроенный текст) в PDF через pandoc с автоматическим определением движка

markdown_to_pdf требует: pip install mcp-pdf[markdown], а также бинарный файл pandoc и хотя бы один PDF-движок (xelatex, pdflatex, tectonic, weasyprint или wkhtmltopdf) в переменной PATH. Инструмент автоматически определяет доступные средства и использует наиболее качественное. Передайте pdf_engine= для переопределения или extra_args= для необработанных параметров pandoc.

Анализ документов

Инструмент

Что он делает

extract_metadata

Получает название, автора, дату создания, количество страниц и т.д.

get_document_structure

Извлекает оглавление и закладки

analyze_layout

Определяет колонки, верхние и нижние колонтитулы

is_scanned_pdf

Проверяет, требуется ли PDF-файлу OCR

compare_pdfs

Сравнивает два PDF-файла по тексту, структуре или метаданным

analyze_pdf_health

Проверяет на наличие повреждений и возможности оптимизации

analyze_pdf_security

Отчет о шифровании, правах доступа и подписях

Формы

Инструмент

Что он делает

extract_form_data

Получает имена и значения полей формы

fill_form_pdf

Заполняет поля формы из JSON

create_form_pdf

Создает новые формы с текстовыми полями, флажками, выпадающими списками

add_form_fields

Добавляет поля в существующие PDF-файлы

Формы разрешений (на основе координат)

Для сканированных PDF или форм без интерактивных полей. Рисует текст по координатам (x, y).

Инструмент

Что он делает

fill_permit_form

Заполняет любой PDF, рисуя по координатам (работает со сканированными формами)

get_field_schema

Получает определения полей для валидации или генерации UI

validate_permit_form_data

Проверяет данные на соответствие схеме полей перед заполнением

preview_field_positions

Генерирует PDF, показывающий границы полей (для отладки)

insert_attachment_pages

Вставляет страницы с изображениями/текстом со ссылками "См. страницу X"

Требует: pip install mcp-pdf[forms] (добавляет зависимость reportlab)

Сборка документов

Инструмент

Что он делает

merge_pdfs

Объединяет несколько PDF-файлов с сохранением закладок

split_pdf_by_pages

Разделяет по диапазонам страниц

split_pdf_by_bookmarks

Разделяет по границам глав/разделов

reorder_pdf_pages

Изменяет порядок страниц в произвольном порядке

Аннотации

Инструмент

Что он делает

add_sticky_notes

Добавляет аннотации-комментарии

add_highlights

Выделяет текстовые области

add_stamps

Добавляет штампы "Утверждено"/"Черновик"/"Конфиденциально"

extract_all_annotations

Экспортирует аннотации в JSON


Как работают резервные варианты

Сервер пробует несколько библиотек для каждой операции:

Извлечение текста:

  1. PyMuPDF (самый быстрый)

  2. pdfplumber (лучше для сложных макетов)

  3. pypdf (наиболее совместимый)

Извлечение таблиц:

  1. Camelot (лучшая точность, требует Ghostscript)

  2. pdfplumber (без зависимостей)

  3. 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

tesseract-ocr

Таблицы Camelot

ghostscript

Таблицы Tabula

default-jre-headless

PDF в изображения

poppler-utils

markdown_to_pdf

pandoc + один из: tectonic, texlive-xetex (+ texlive-latex-extra), weasyprint, wkhtmltopdf

Выбор PDF-движка для markdown_to_pdf

Pandoc преобразует markdown → HTML или LaTeX → PDF. Путь через LaTeX дает наиболее качественный результат, но требует установки TeX. Компромиссы:

Движок

Размер на диске

Примечания

tectonic

~30 МБ

Рекомендуется для новых установок. Один статический бинарный файл. Скачивает LaTeX-пакеты по требованию — не требует массовой установки заранее.

xelatex + texlive-latex-extra

~500 МБ

Лучший результат после установки. Используйте, если у вас уже есть TeX. Пакет -extra важен: стандартный шаблон pandoc требует lastpage, xcolor, framed, fancyhdr и т.д. — все они живут там, а не в texlive-xetex.

xelatex отдельно (только texlive-xetex)

~200 МБ

Часто ломается. Ожидайте ! LaTeX Error: File 'X.sty' not found на реальных документах.

weasyprint

~40 МБ

Чистый Python (pip install weasyprint) + системные библиотеки cairo/pango. Путь HTML/CSS — без LaTeX. Хорошо для простых документов; слабее в математике, сносках, цитатах.

wkhtmltopdf

~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 weasyprint

Arch 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-static

macOS (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

Дополнительные пакеты

Базовая установка остается легкой. Тяжелые или нишевые зависимости вынесены в дополнительные пакеты:

Пакет

Добавляет

Когда устанавливать

mcp-pdf[forms]

reportlab

Инструменты создания форм (create_form_pdf, формы разрешений)

mcp-pdf[tables]

camelot-py, tabula-py

Более точное извлечение таблиц (также требует Java + Ghostscript)

mcp-pdf[markdown]

pypandoc

Инструмент markdown_to_pdf (также требует бинарный файл pandoc)

mcp-pdf[all]

Все вышеперечисленное

Хотите всё сразу


Конфигурация

Опциональные переменные окружения:

Переменная

Назначение

MCP_PDF_ALLOWED_PATHS

Разделенные двоеточием директории для вывода файлов

PDF_TEMP_DIR

Временная директория для обработки (по умолчанию: /tmp/mcp-pdf-processing)

TESSDATA_PREFIX

Расположение языковых данных 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

A
license - permissive license
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides 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
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI applications to read and process PDF files with intelligent file search, text extraction, image processing, and optional OCR support for scanned documents.
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

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/rsp2k/mcp-pdf'

If you have feedback or need assistance with the MCP directory API, please join our Discord server