1. Conduid
  2. Security
  3. io.github.AryanBV/pdf-toolkit-mcp
MCP server · Security

io.github.AryanBV/pdf-toolkit-mcp

PDF manipulation server — create, merge, split, encrypt, fill forms, add QR codes. 16 tools.

Unclaimed security
37Low

Scored 5 months ago · breakdown

About io.github.AryanBV/pdf-toolkit-mcp

io.github.AryanBV/pdf-toolkit-mcp is an MCP server in the Security category: pDF manipulation server — create, merge, split, encrypt, fill forms, add QR codes. 16 tools. It has been installed 0 times through Conduid.

Install

Claude Code
claude mcp add io-github-aryanbv-pdf-toolkit-mcp -- npx -y @aryanbv/pdf-toolkit-mcp
npx
npx -y @aryanbv/pdf-toolkit-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

Ask AI about io.github.AryanBV/pdf-toolkit-mcp

Powered by Claude · Grounded in docs

I know everything about io.github.AryanBV/pdf-toolkit-mcp. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ·README presentNot checked yet.
  • ·License declaredNot checked yet.
  • ·Tests presentNot checked yet.
  • ·Dependencies pinnedNot checked yet.
  • ·No dynamic code executionNot checked yet.
  • ·Scoped permissionsNot checked yet.

README

PDF Toolkit MCP Server

MCP server for PDF manipulation — create from Markdown, fill forms, merge, split, encrypt, add QR codes. Zero-config, TypeScript-native.

npm version license node tools

Install

npx -y @aryanbv/pdf-toolkit-mcp

No config files, no API keys, no Docker. Works offline.

Create PDFs from Markdown

The standout feature — turn Markdown into professional PDFs:

"Create a PDF from this Markdown with page numbers"

# Quarterly Report

## Revenue

Revenue grew **23% year-over-year**, driven by enterprise expansion.

| Region    | Q1 2025  | Q1 2026  | Growth |
|-----------|----------|----------|--------|
| Americas  | $1.2M    | $1.5M    | +25%   |
| EMEA      | $800K    | $960K    | +20%   |
| APAC      | $400K    | $520K    | +30%   |

## Key Wins

1. Signed 12 new enterprise contracts
2. Reduced churn to 3.1%
3. Launched self-serve tier

This produces a multi-page PDF with formatted headings, styled tables, numbered lists, bold/italic text, and page numbers — all from a single tool call.

Client Setup

Add to your Claude Desktop config (claude_desktop_config.json):

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

Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):

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

VS Code uses "servers", NOT "mcpServers". Copying the config from other clients will silently fail. Requires the GitHub Copilot extension with Agent mode enabled.

Add to .vscode/mcp.json:

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

Add to ~/.codeium/windsurf/mcp_config.json:

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

Tools

16 tools organized by category:

Category Tool Description
Create pdf_create Create new PDF from text content
pdf_create_from_markdown Create rich PDF from Markdown (headings, tables, lists, code blocks)
pdf_create_from_template Create PDF from template (invoice, report, letter)
Read pdf_extract_text Extract text from PDF pages (first 10 by default)
pdf_get_metadata Get title, author, page count, creation date
pdf_get_form_fields List form fields with names, types, and values
Modify pdf_merge Merge multiple PDFs into one
pdf_split Extract page ranges into a new PDF
pdf_rotate_pages Rotate pages by 90, 180, or 270 degrees
pdf_reorder_pages Reorder pages in any order (supports duplication)
Enhance pdf_add_watermark Add text watermark to pages
pdf_add_page_numbers Add page numbers (configurable position and format)
pdf_embed_image Embed PNG or JPEG image into a page
Forms pdf_fill_form Fill form fields (text, checkbox, dropdown, radio)
Security pdf_encrypt Password-protect with user/owner passwords
pdf_embed_qr_code Embed QR code or barcode (Code128, DataMatrix, EAN-13, PDF417, Aztec)

Templates

Generate professional documents from structured data:

"Create an invoice for Acme Corp"

{
  "templateName": "invoice",
  "data": {
    "companyName": "Your Company",
    "clientName": "Acme Corp",
    "invoiceNumber": "INV-001",
    "invoiceDate": "2026-04-01",
    "items": [
      { "description": "Web Development", "quantity": 40, "unitPrice": 150 },
      { "description": "Hosting (Annual)", "quantity": 1, "unitPrice": 299 }
    ],
    "taxRate": 18,
    "paymentTerms": "Net 30"
  },
  "outputPath": "/path/to/invoice.pdf"
}

Available templates: invoice, report, letter.

Encryption

"Encrypt report.pdf with password 'secure123'"

Applies RC4 128-bit encryption. Set separate user (open) and owner (edit) passwords for granular access control.

QR Codes & Barcodes

"Add a QR code linking to our website on page 1"

Supported types: QR Code, Code128, DataMatrix, EAN-13, PDF417, Aztec Code. Position and size are fully configurable.

Usage Examples

Just ask naturally:

  • "Create a PDF from this Markdown report"
  • "Generate an invoice for Client Corp — 10 hours consulting at $150/hr"
  • "Merge january.pdf and february.pdf into q1-combined.pdf"
  • "Extract text from pages 5-10 of thesis.pdf"
  • "Fill the Name field with 'John Doe' in application.pdf"
  • "Add a CONFIDENTIAL watermark to draft.pdf"
  • "Encrypt financials.pdf with password 'budget2026'"
  • "Add page numbers to presentation.pdf"
  • "Embed a QR code with our URL on the cover page"
  • "Reorder pages as 3,1,2 in report.pdf"

Known Limitations

  • Merge/Split/Reorder: Form fields are not preserved. Visual content transfers, but interactive fields are lost.
  • Text extraction: Returns PDF stream order, not visual reading order. Multi-column layouts may interleave.
  • Extract text: Defaults to first 10 pages to avoid exceeding LLM context. Request specific pages for longer documents.
  • Image embedding: Only JPEG and PNG formats are supported.
  • Form filling: Non-Latin characters (Arabic, CJK, Devanagari) require providing a custom font file (.ttf/.otf).
  • Encryption: Uses RC4 128-bit, not AES. Adequate for access control but not modern strong encryption.
  • Markdown fonts: pdfmake uses Roboto only. Custom fonts are not yet supported for Markdown PDFs.

Tech Stack

Dual-engine architecture for maximum capability:

  • pdfmake — Rich document creation (Markdown, templates, tables, headers/footers)
  • @pdfme/pdf-lib — Existing PDF manipulation (merge, split, rotate, watermark, forms, images, QR codes)
  • unpdf — Text extraction and metadata reading

Requirements

  • Node.js >= 18

Development

npm install          # Install dependencies
npm run build        # Compile TypeScript
npm run test         # Run all 51 tests
npm run inspect      # Open MCP Inspector (requires Node >= 22.7.5)

See CLAUDE.md for architecture details and contribution guidelines.

License

MIT

README mirrored from the source repository 5 months ago. The original is authoritative.

Questions

About io.github.AryanBV/pdf-toolkit-mcp

How do I install io.github.AryanBV/pdf-toolkit-mcp?

Run claude mcp add io-github-aryanbv-pdf-toolkit-mcp -- npx -y @aryanbv/pdf-toolkit-mcp, then add the server to your MCP client's configuration. Conduid has recorded 0 installs, so the command is known to work with current clients.

Is io.github.AryanBV/pdf-toolkit-mcp safe to use with an AI agent?

Its trust score is 37 out of 100 (low). Conduid hasn't run static security checks on this repository yet, so review the source yourself before granting it credentials. It has no ConduID identity yet, so agent calls to it are not receipted.

Is io.github.AryanBV/pdf-toolkit-mcp still maintained?

Conduid hasn't recorded a commit date for this repository yet. Check the repository directly for recent activity.