Labsco
MCP SERVER

pdfnative PDF Engine

by Nizoka

Generate, sign, verify, fill and take apart PDFs — including PDF/A, PAdES signatures and encryption.

Document Conversion, PDF & TranslationVerified
Summary
It will not make an outbound call you did not configure.

The timestamp authority and the revocation endpoints come from operator-set environment variables, and a tool argument can never supply a URL. Together with a cache that refuses to store decrypted bytes or key material, this reads as a PDF engine designed on the assumption that the caller is a language model.

What it is

A PDF engine exposed as MCP tools. It builds documents from structured blocks, adds barcodes, tables, forms and vector charts, renders 24 scripts with proper shaping and bidi, applies and verifies PAdES digital signatures, and merges, splits, annotates, encrypts and decrypts existing files.

What you get
  • Generation — generate_basic_pdf from headings, paragraphs, lists, page breaks and spacers with optional PDF/A, watermark, outline and page labels; add_table with wrapping, repeated headers and zebra striping; add_chart for bar, horizontal bar, line, pie and donut as pure vector paths; embed_image for JPEG and PNG
  • Codes and scripts — add_barcode for QR, Code 128, EAN-13, Data Matrix and PDF417; add_international_text across 24 scripts including Arabic, Hebrew, Thai, CJK and Devanagari, with colour emoji support
  • Forms — add_form creates an AcroForm with text fields, checkboxes, radio buttons and dropdowns; read_form_fields enumerates an existing one; fill_form fills and optionally flattens it as a non-destructive incremental update
  • Signing — sign_pdf applies a PAdES-compatible CMS signature and injects the placeholder itself, so any PDF can be signed in one call; prepare_signature_placeholder remains for controlling that placeholder; verify_pdf recomputes the ByteRange digest and checks each signature's CMS value
  • Inspection — inspect_pdf reports version, page count, encryption, PDF/A claim, signature count and attachments, with a check array for CI-style assertions; validate_pdf runs a PDF/UA structural conformance check; extract_text and extract_attachments read content and embedded files back
  • Structure — merge_pdfs concatenates 2 to 50 files, split_pdf writes one document per page range, extract_pages pulls an arbitrary subset into a single file, annotate_pdf appends markup while preserving the original bytes
  • Archival and security — add_attachment produces PDF/A-3 with embedded files, which is what a Factur-X or ZUGFeRD invoice needs; encrypt_pdf applies AES-128 or AES-256 and never RC4; decrypt_pdf emits an unencrypted copy
Requirements

The npm package pdfnative-mcp over stdio, run with npx -y pdfnative-mcp. Tools return base64 unless PDFNATIVE_MCP_OUTPUT_DIR names a sandboxed directory that outputMode='file' may write to. PDFNATIVE_MCP_PORT switches to Streamable HTTP on loopback, unauthenticated unless PDFNATIVE_MCP_HTTP_TOKEN is set. PDFNATIVE_MCP_CACHE_DIR enables an opt-in response cache that never stores signing, encryption or timestamp output. PDFNATIVE_MCP_MAX_INFLATE_BYTES caps per-stream decompression against zip bombs. Timestamped and long-term-validation signatures need PDFNATIVE_MCP_TSA_URL and PDFNATIVE_MCP_REVOCATION set by the operator; without them those calls fail rather than reaching out. One thing to plan around: merging, splitting and page extraction drop signatures and AcroForms, because a page-tree edit invalidates the byte range.

Setup effort

One command — npx -y pdfnative-mcp