AryanBV/pdf-toolkit-mcp

AryanBV/pdf-toolkit-mcp

от aryanbv
MCP сервер с 22 инструментами для чтения, создания и редактирования PDF с AES-256 шифрованием. Умеет создавать PDF из Markdown, рендерить страницы для vision-моделей и заполнять формы. Работает чер...

PDF Toolkit MCP

A write-capable PDF toolkit for any MCP client. It provides 22 tools for reading, creating, rendering, transforming, and securing PDFs. That includes rendering pages to images so vision models can read scanned documents, building PDFs from Markdown or structured data, AES-256 encryption, and merge and split operations that keep form fields intact. There are no native dependencies, so it runs locally from a single npx command.

npm version license node tools tests

npx -y @aryanbv/pdf-toolkit-mcp

It needs no config files, API keys, Docker, or compiler, and it works offline.


Overview

Most PDF servers for MCP only read. This one also writes: it creates documents from Markdown or structured data, fills and flattens forms, rearranges page structure, and applies AES-256 encryption, all without a native build toolchain.

A few things worth knowing:

  • It reads scans. pdf_render_pages rasterizes pages to images, so a vision-capable model can read scanned or image-only PDFs that have no text layer.
  • Merge, split, reorder, and delete preserve AcroForm fields rather than dropping them. Names that collide between inputs are namespaced per source, and every call reports what it preserved, renamed, or dropped.
  • Encryption is AES-256 through qpdf, not the legacy RC4 scheme.
  • Every engine is WASM or plain JavaScript, so npx works on Node 20 and later across Windows, macOS, and Linux with no node-gyp, canvas binding, or prebuilt binary.
  • Errors carry stable codes, stack traces stay internal, off-page placements are rejected instead of silently clipped, and large responses are truncated without breaking JSON.
Инструменты были проиндексированы:
pdf_add_page_numbersидемпотентный

Добавляет номера страниц в PDF. Поддерживает настраиваемое положение, формат, начальный номер и размер шрифта.

Параметры
  • filePathstringобязательный

    Absolute path to the source PDF file

  • fontSizenumber

    Font size for page numbers (6–24). Defaults to 10.

  • formatenum

    Number format. Defaults to "Page X of Y".

  • outputPathstringобязательный

    Absolute path for the output PDF

  • positionenum

    Position of page numbers. Defaults to bottom-center.

  • startFrominteger

    Starting page number. Defaults to 1.

pdf_add_watermarkидемпотентный

Добавляет текстовый водяной знак на страницы PDF. По умолчанию водяной знак центрируется и поворачивается по диагонали. Применяется ко всем страницам, если не указан диапазон страниц.

Параметры
  • colorenum

    Watermark color. Defaults to gray.

  • filePathstringобязательный

    Absolute path to the source PDF file

  • fontSizenumber

    Watermark font size (10–200). Defaults to 50.

  • opacitynumber

    Watermark opacity (0.0–1.0). Defaults to 0.3.

  • outputPathstringобязательный

    Absolute path for the watermarked output PDF

  • pagesstring

    Page range, e.g. '1-5' or '1,3,5'. Omit to watermark all pages.

  • rotationnumber

    Watermark rotation in degrees (0–360). Defaults to 45 (diagonal).

  • textstringобязательный

    Watermark text to overlay on pages

pdf_compareтолько чтениеидемпотентный

Сравнивает два PDF-файла постранично (по абсолютному индексу страницы) и сообщает о различиях в тексте. Возвращает identical:true, если текст совпадает. Сравнивает текст в порядке потока содержимого (content-stream-order), а не в порядке визуального чтения, поэтому лучше всего подходит для документов с одинаковой вёрсткой; переформатированные или многоколоночные PDF дают зашумлённые различия. Вставка или удаление страницы сдвигает все последующие страницы и отмечает их как изменённые. Большие различия обрезаются (truncated:true) для соответствия лимиту ответа.

Параметры
  • filePathAstringобязательный

    Absolute path to the first (baseline) PDF file

  • filePathBstringобязательный

    Absolute path to the second (comparison) PDF file

  • pagesstring

    Page range to compare, e.g. '1-5' or '1,3,5'. Defaults to all pages.

pdf_createидемпотентный

Создаёт новый PDF из текстового содержимого с автоматическим переносом строк и переносом на новую страницу при переполнении. Поддерживает размеры страниц A4, Letter и Legal. Укажите fontPath для текста на нелатинских шрифтах (арабский, CJK и т.д.).

Параметры
  • authorstring

    PDF document author metadata

  • contentstringобязательный

    Text content for the PDF. Use \n for line breaks.

  • fontPathstring

    Absolute path to a .ttf/.otf font file for non-Latin character support (Arabic, CJK, etc.). The built-in font is Latin-only.

  • fontSizenumber

    Font size in points (6–72). Defaults to 12.

  • marginnumber

    Page margin in points (0–500). Defaults to 50.

  • outputPathstringобязательный

    Absolute path for the output PDF file

  • pageSizeenum

    Page size. Defaults to A4.

  • titlestring

    PDF document title metadata

pdf_create_from_markdownидемпотентный

Создаёт насыщенный, высокоточный PDF из Markdown (CommonMark + GFM). Поддерживает заголовки, полужирный/курсивный текст, ссылки, упорядоченные/маркированные списки, таблицы, блоки кода с ограждением, цитаты и горизонтальные разделители.

Параметры
  • authorstring

    PDF document author metadata

  • markdownstringобязательный

    Markdown content to render as PDF

  • outputPathstringобязательный

    Absolute path for the output PDF file

  • pageSizeenum

    Page size. Defaults to A4.

  • titlestring

    PDF document title metadata

pdf_create_from_template

Создаёт качественный PDF из указанного шаблона (invoice, report или letter). Передайте структурированные данные, соответствующие полям шаблона; данные проверяются на соответствие схеме шаблона.

Параметры
  • dataobjectобязательный

    Template data. Invoice: companyName, clientName, invoiceNumber, invoiceDate, items[{description, quantity, unitPrice}], taxRate, currency (ISO code or symbol, default USD), dueDate, notes, paymentTerms. Report: title, author, date, subtitle, sections[{heading, body}]. Letter: senderName, senderAddress, recipientName, recipientAddress, subject, body, closing, signatureName.

  • outputPathstringобязательный

    Absolute path for the output PDF file

  • templateNameenumобязательный

    Template to use: invoice, report, or letter

pdf_delete_pagesидемпотентный

Удаляет конкретные страницы из PDF, оставляя остальные в исходном порядке. Поля AcroForm на оставшихся страницах сохраняются. Установите flatten:true, чтобы встроить значения полей в статический контент. Нельзя удалить все страницы.

Параметры
  • filePathstringобязательный

    Absolute path to the source PDF file

  • flattenboolean

    Flatten the resulting form: bake field values into static content and remove interactivity. Defaults to false.

  • outputPathstringобязательный

    Absolute path for the output PDF

  • pagesstringобязательный

    Page range to DELETE, e.g. '2' or '1-3,5'

pdf_embed_imageидемпотентный

Встраивает изображение в формате PNG или JPEG на указанную страницу PDF. Поддерживает произвольное позиционирование и опциональное масштабирование с сохранением пропорций.

Параметры
  • filePathstringобязательный

    Absolute path to the source PDF file

  • heightnumber

    Image height in points. Omit to use original height (or scale proportionally if width is set).

  • imagePathstringобязательный

    Absolute path to the PNG or JPEG image file

  • outputPathstringобязательный

    Absolute path for the output PDF

  • pageintegerобязательный

    Target page number (1-indexed)

  • widthnumber

    Image width in points. Omit to use original width (or scale proportionally if height is set).

  • xnumberобязательный

    X position in points from the left edge of the page

  • ynumberобязательный

    Y position in points from the bottom edge of the page

pdf_embed_qr_codeидемпотентный

Встраивает QR-код или штрихкод на определённую страницу PDF по заданным координатам. Поддерживает qrcode, code128, datamatrix, ean13, pdf417 и azteccode.

Параметры
  • contentstringобязательный

    Data to encode in the QR code or barcode

  • filePathstringобязательный

    Absolute path to the source PDF file

  • outputPathstringобязательный

    Absolute path for the output PDF

  • pageintegerобязательный

    Target page number (1-indexed)

  • sizenumber

    Size of the QR code/barcode in points. Defaults to 100.

  • typeenum

    Barcode type. Defaults to qrcode.

  • xnumberобязательный

    X position in points from the left edge

  • ynumberобязательный

    Y position in points from the bottom edge

pdf_encrypt

Шифрует PDF-файл парольной защитой AES-256. Для открытия требуется пароль пользователя. Пароль владельца управляет правами редактирования (по умолчанию совпадает с паролем пользователя).

Параметры
  • filePathstringобязательный

    Absolute path to the source PDF file

  • outputPathstringобязательный

    Absolute path for the encrypted output PDF

  • ownerPasswordstring

    Password for editing permissions. Defaults to userPassword if omitted.

  • userPasswordstringобязательный

    Password required to open the PDF

pdf_extract_textтолько чтениеидемпотентный

Извлекает текстовое содержимое из PDF-файла. По умолчанию возвращает первые 10 страниц, чтобы не превышать лимиты контекста LLM. Для конкретных страниц используйте параметр 'pages'.

Параметры
  • filePathstringобязательный

    Absolute path to the PDF file

  • pagesstring

    Page range, e.g. '1-5' or '1,3,5'. Defaults to first 10 pages.

pdf_fill_formидемпотентный

Заполняет поля формы в PDF. Поддерживает поля типа текст, флажок, выпадающий список, переключатель и список с множественным выбором. Укажите fontPath для текста не на латинице (арабский, китайский и т.д.).

Параметры
  • fieldsobjectобязательный

    Object mapping field names to values. Strings for text/dropdown/radio, booleans for checkboxes.

  • filePathstringобязательный

    Absolute path to the PDF file with form fields

  • flattenboolean

    Flatten form fields after filling (makes them non-editable). Defaults to false.

  • fontPathstring

    Absolute path to a .ttf/.otf font file for non-Latin character support.

  • outputPathstringобязательный

    Absolute path for the filled output PDF

pdf_flattenидемпотентный

Сплющивает поля формы PDF, запекая их текущие значения в содержимое страницы и удаляя интерактивность. PDF без форм копируются без изменений.

Параметры
  • filePathstringобязательный

    Absolute path to the source PDF file

  • outputPathstringобязательный

    Absolute path for the flattened output PDF

pdf_get_form_fieldsтолько чтениеидемпотентный

Выводит все поля формы в PDF с их именами, типами, текущими значениями и статусом обязательности. Возвращает hasForm: false для PDF-файлов без форм.

Параметры
  • filePathstringобязательный

    Absolute path to the PDF file

pdf_get_metadataтолько чтениеидемпотентный

Получить метаданные из PDF-файла, включая название, автора, тему, количество страниц, даты создания/изменения и информацию о производителе.

Параметры
  • filePathstringобязательный

    Absolute path to the PDF file

pdf_mergeидемпотентный

Объединяет несколько PDF-файлов в один. Поля AcroForm сохраняются; поля, имена которых конфликтуют между входными файлами, автоматически переименовываются (с пространством имён по источнику). Установите flatten: true, чтобы встроить значения полей в статическое содержимое.

Параметры
  • filePathsstring[]обязательный

    Array of absolute paths to PDF files to merge, in order

  • flattenboolean

    Flatten the merged form: bake field values into static content and remove interactivity. Defaults to false.

  • outputPathstringобязательный

    Absolute path for the merged output PDF

pdf_render_pagesидемпотентный

Преобразует страницы PDF в изображения, чтобы клиент с поддержкой зрения мог читать отсканированные PDF или файлы, состоящие только из картинок. Записывает PNG/JPEG файлы и возвращает их пути; установите inline:true, чтобы вернуть блоки изображений, которые модель может увидеть напрямую.

Параметры
  • dpiinteger

    Render resolution in DPI (36–300). Defaults to 150.

  • filePathstringобязательный

    Absolute path to the source PDF file

  • formatenum

    Output image format. Defaults to png.

  • inlineboolean

    Return rendered pages as inline image blocks the model can see directly instead of writing files. Max 5 pages; DPI is auto-capped so neither dimension exceeds 1500px. Defaults to false.

  • outputDirstring

    Directory for the output images: an absolute path is recommended; a relative path resolves against the server working directory. The directory must already exist. Defaults to the input PDF's directory. Ignored when inline is true.

  • pagesstring

    Page range to render, e.g. '1-5,8'. Defaults to the first 50 pages.

pdf_reorder_pagesидемпотентный

Изменить порядок страниц в PDF. Укажите новый порядок страниц в виде строки, разделённой запятыми (например, '3,1,2'). Дубликаты разрешены. Поля AcroForm сохраняются. Установите flatten:true, чтобы вшить значения полей в статический контент.

Параметры
  • filePathstringобязательный

    Absolute path to the source PDF file

  • flattenboolean

    Flatten the reordered form: bake field values into static content and remove interactivity. Defaults to false.

  • outputPathstringобязательный

    Absolute path for the reordered output PDF

  • pageOrderstringобязательный

    New page order as comma-separated 1-indexed numbers, e.g. '3,1,2,4' or '1,1,2' (duplicates allowed; up to 2000 pages)

pdf_rotate_pagesидемпотентный

Поворачивает страницы в PDF на 90, 180 или 270 градусов. Поворот добавляется к любому существующему. Поворачивает все страницы, если не указан диапазон.

Параметры
  • degreesenumобязательный

    Rotation angle: 90, 180, or 270 degrees clockwise

  • filePathstringобязательный

    Absolute path to the source PDF file

  • outputPathstringобязательный

    Absolute path for the rotated output PDF

  • pagesstring

    Page range to rotate, e.g. '1-5' or '1,3,5'. Omit to rotate all pages.

pdf_searchтолько чтениеидемпотентный

Ищет текст в PDF и возвращает совпадения с коротким фрагментом вокруг и номером страницы. Запрос сопоставляется как буквальная подстрока (по умолчанию без учёта регистра). Ищет по всем страницам, если не задан диапазон.

Параметры
  • caseSensitiveboolean

    Match case exactly. Defaults to false.

  • filePathstringобязательный

    Absolute path to the PDF file

  • pagesstring

    Page range, e.g. '1-5'. Defaults to all pages.

  • querystringобязательный

    Literal text to find (matched as a substring)

pdf_splitидемпотентный

Извлекает указанные страницы из PDF в новый файл. Поля AcroForm на извлечённых страницах сохраняются, поля на пропущенных страницах удаляются. Установите flatten:true, чтобы встроить значения полей в статическое содержимое.

Параметры
  • filePathstringобязательный

    Absolute path to the source PDF file

  • flattenboolean

    Flatten the extracted form: bake field values into static content and remove interactivity. Defaults to false.

  • outputPathstringобязательный

    Absolute path for the output PDF

  • pagesstringобязательный

    Page range to extract, e.g. '1-5' or '1,3,5'

pdf_to_markdownтолько чтениеидемпотентный

Преобразует PDF в чистый Markdown с порядком чтения для использования LLM: восстанавливает до 2 колонок контента (плюс полноширинные заголовочные/нижние колонтитулы), определяет заголовки по размеру шрифта и обнаруживает маркированные/нумерованные списки. Страницы с 3 или более колонками переключаются на одноколоночный порядок чтения. Таблицы выводятся как обычный текст в порядке чтения, НЕ восстанавливаются как таблицы Markdown. Лучше всего работает на чистых, цифровых (текстовых) PDF; ухудшается на отсканированных/только-изображения PDF (используйте pdf_render_pages для таких) и очень сложных макетах. По умолчанию возвращает первые 10 страниц.

Параметры
  • filePathstringобязательный

    Absolute path to the PDF file

  • pagesstring

    Page range, e.g. '1-5' or '1,3,5'. Defaults to first 10 pages.

Похожие MCP-сервера

automatalabs/mcp-server-playwright

automatalabs/mcp-server-playwright

Сервер для автоматизации браузера через Playwright: позволяет ИИ-агентам открывать страницы, делать скриншоты, кликать, заполнять формы и выполнять JavaScript — полезен для тестирования и сбора данных.

JavaScript299
tan-yong-sheng/ai-vision-mcp

tan-yong-sheng/ai-vision-mcp

MCP-сервер для ИИ-анализа изображений и видео через Google Gemini и Vertex AI. Поддерживает детекцию объектов, дизайн-аудит с WCAG-проверкой, сравнение снимков и анализ YouTube-роликов. Пригодится ...

TypeScript78
corralimited/snapdiff-mcp

corralimited/snapdiff-mcp

MCP сервер для визуального сравнения веб-страниц через SnapDiff API. Позволяет разработчикам и QA автоматически снимать скриншоты, сравнивать UI на изменения и рендерить HTML/CSS в картинки. Подход...

TypeScript5
Playwright MCP

Playwright MCP

официальный

MCP сервер для браузерной автоматизации на основе Playwright. Использует structured accessibility snapshots вместо скриншотов, что делает его быстрым и LLM-friendly. Подходит для агентов, тестирования и автономных сценариев без vision-моделей.

TypeScript36983
AceDataCloud/MCPFlux

AceDataCloud/MCPFlux

MCP сервер FluxMCP подключает генерацию и редактирование AI-изображений Flux к любым MCP-клиентам. Создавайте и дорабатывайте картинки текстовыми запросами, работайте локально или облачно, 7 моделей.

Python3
botmonster/image2svg-mcp

botmonster/image2svg-mcp

MCP-сервер для конвертации растровых изображений в SVG. Работает с PNG, JPG, WEBP, принимает base64 или URL, даёт полный контроль над параметрами векторизации. Идеален для автоматизации дизайна и п...

Python5
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин