MCP.so
Sign In
P

Pdf Toolkit Mcp

@AryanBV

About Pdf Toolkit Mcp

MCP server for PDF manipulation — create PDFs from Markdown with tables and formatting, fill forms, merge, split, encrypt, add QR codes. 16 tools, zero external binaries, TypeScript-native. Install: npx -y @aryanbv/pdf-toolkit-mcp

Config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "pdf-toolkit": {
      "command": "npx",
      "args": [
        "-y",
        "@aryanbv/pdf-toolkit-mcp"
      ]
    }
  }
}

Tools

22

Extract text content from a PDF file. Returns first 10 pages by default to avoid exceeding LLM context limits. Use the 'pages' parameter for specific pages.

Get metadata from a PDF file including title, author, subject, page count, creation/modification dates, and producer information.

List all form fields in a PDF with their names, types, current values, and required status. Returns hasForm: false for PDFs without forms.

Convert a PDF to clean, reading-order Markdown for LLM consumption: reconstructs up to 2 content columns (plus full-width title/footer bands), infers headings from font size, and detects bullet/numbered lists. Pages with 3 or more columns fall back to single-column reading order. Tables are emitted as plain reading-order text, NOT reconstructed as Markdown tables. Best on clean, digital (text-based) PDFs; degrades on scanned/image-only PDFs (use pdf_render_pages for those) and very complex layouts. Returns the first 10 pages by default.

Search text across a PDF and return matches with a short surrounding snippet and the page number. The query is matched as a literal substring (case-insensitive by default). Searches all pages unless a range is given.

Merge multiple PDF files into one. AcroForm fields are preserved; fields whose names collide across inputs are auto-renamed (namespaced by source). Set flatten:true to bake field values into static content.

Extract specific pages from a PDF into a new file. AcroForm fields on the extracted pages are preserved; fields on omitted pages are dropped. Set flatten:true to bake field values into static content.

Rotate pages in a PDF by 90, 180, or 270 degrees. Rotation is additive to any existing rotation. Rotates all pages if no page range is specified.

Encrypt a PDF with AES-256 password protection. Requires a user password to open. Owner password controls editing permissions (defaults to the user password).

Compare two PDFs page by page (by absolute page index) and report text differences. Returns identical:true when text matches. Diffs content-stream-order text (not visual reading order), so it is best for same-layout documents; reflowed or multi-column PDFs produce noisy diffs. Inserting/deleting a page shifts all later pages and reports them as changed. Large diffs are trimmed (truncated:true) to fit the response limit.

Add page numbers to a PDF. Supports configurable position, format, starting number, and font size.

Embed a QR code or barcode into a specific page of a PDF at given coordinates. Supports qrcode, code128, datamatrix, ean13, pdf417, and azteccode.

Reorder pages in a PDF. Specify the new page order as a comma-separated string (e.g. '3,1,2'). Duplicates are allowed. AcroForm fields are preserved. Set flatten:true to bake field values into static content.

Delete specific pages from a PDF, keeping the rest in their original order. AcroForm fields on the remaining pages are preserved. Set flatten:true to bake field values into static content. Cannot delete every page.

Create a new PDF from text content with automatic line wrapping and page overflow. Supports A4, Letter, and Legal page sizes. Provide fontPath for non-Latin text (Arabic, CJK, etc.).

Fill form fields in a PDF. Supports text, checkbox, dropdown, radio, and list-box (multi-select) fields. Provide fontPath for non-Latin text (Arabic, CJK, etc.).

Add a text watermark to PDF pages. Watermark is centered and rotated diagonally by default. Applies to all pages if no page range is specified.

Embed a PNG or JPEG image into a specific page of a PDF. Supports custom positioning and optional scaling with aspect ratio preservation.

Create a rich, high-fidelity PDF from Markdown (CommonMark + GFM). Supports headings, bold/italic, links, ordered/bullet lists, tables, fenced code blocks, blockquotes, and horizontal rules.

Create a polished PDF from a named template (invoice, report, or letter). Pass structured data matching the template's fields; data is validated against the template's schema.

Flatten a PDF's form fields, baking their current values into the page content and removing interactivity. Form-less PDFs are copied unchanged.

Render PDF pages to images so a vision-capable client can read scanned or image-only PDFs. Writes PNG/JPEG files and returns their paths; set inline:true to return image blocks the model can see directly.

Overview

What is Pdf Toolkit Mcp?

Pdf Toolkit Mcp is a zero-configuration MCP server for PDF manipulation — create PDFs from Markdown, fill forms, merge, split, encrypt, add QR codes, and more. It is TypeScript-native, works offline, and requires no API keys or Docker.

How to use Pdf Toolkit Mcp?

Install via npx -y @aryanbv/pdf-toolkit-mcp and add the server to your MCP client configuration (Claude Desktop, Claude Code, Cursor, VS Code, Windsurf). No config files or setup steps are needed.

Key features of Pdf Toolkit Mcp

  • Create PDFs from Markdown with tables, lists, and page numbers
  • Merge, split, rotate, and reorder pages
  • Fill form fields (text, checkbox, dropdown, radio)
  • Add watermarks, page numbers, and embed images
  • Password-protect PDFs with RC4 128‑bit encryption
  • Embed QR codes and barcodes (Code128, DataMatrix, EAN‑13, PDF417, Aztec)

Use cases of Pdf Toolkit Mcp

  • Turn a Markdown document into a professional multi-page PDF report
  • Generate an invoice, report, or letter from structured JSON data using built-in templates
  • Combine multiple PDFs into one, or extract specific page ranges
  • Fill interactive form fields in a PDF with text or checkbox values
  • Add a CONFIDENTIAL watermark or page numbers to existing documents

FAQ from Pdf Toolkit Mcp

What are the system requirements?

Node.js 18 or higher is required. The server runs offline and does not need Docker or any API keys.

What barcode types are supported?

QR Code, Code128, DataMatrix, EAN‑13, PDF417, and Aztec Code. Position and size are fully configurable.

What are the known limitations?

Merge/split/reorder do not preserve form fields. Text extraction returns PDF stream order, not visual reading order. By default only the first 10 pages are extracted. Only JPEG and PNG images can be embedded. Encryption uses RC4 128‑bit, not AES. Non‑Latin characters in form filling require a custom font file.

Is configuration required?

No. The server is zero-config: just install with npx and add it to your MCP client. No config files are needed.

Which clients are supported?

Claude Desktop, Claude Code, Cursor, VS Code (via GitHub Copilot Agent), and Windsurf are all supported with example configurations provided in the README.

Frequently asked questions

What are the system requirements?

Node.js 18 or higher is required. The server runs offline and does not need Docker or any API keys.

What barcode types are supported?

QR Code, Code128, DataMatrix, EAN‑13, PDF417, and Aztec Code. Position and size are fully configurable.

What are the known limitations?

Merge/split/reorder do not preserve form fields. Text extraction returns PDF stream order, not visual reading order. By default only the first 10 pages are extracted. Only JPEG and PNG images can be embedded. Encryption uses RC4 128‑bit, not AES. Non‑Latin characters in form filling require a custom font file.

Is configuration required?

No. The server is zero-config: just install with npx and add it to your MCP client. No config files are needed.

Which clients are supported?

Claude Desktop, Claude Code, Cursor, VS Code (via GitHub Copilot Agent), and Windsurf are all supported with example configurations provided in the README.

Comments

More Developer Tools MCP servers