Official Model Context Protocol (MCP) server for local-first PDF/A generation. Empowers AI agents (Claude, Cursor, Zed) to securely create, sign (PAdES), verify, and transform documents with barcodes and AcroForms.
git clone https://github.com/Nizoka/pdfnative-mcp{
"mcpServers": {
"pdfnative-mcp": {
"command": "node",
"args": ["/path/to/pdfnative-mcp/dist/index.js"]
}
}
}MCP Servers overview
# pdfnative-mcp > **Model Context Protocol (MCP) server** that bridges the [pdfnative](https://github.com/Nizoka/pdfnative) library — a zero-dependency, ISO 32000-1 compliant PDF engine — to any MCP-compatible AI client (Claude Desktop, Cursor, Continue, ChatGPT, Zed, …). [](https://www.npmjs.com/package/pdfnative-mcp) [](https://www.npmjs.com/package/pdfnative-mcp) [](https://nodejs.org) [](LICENSE) [](https://github.com/Nizoka/pdfnative-mcp/actions/workflows/ci.yml) [](https://modelcontextprotocol.io) [](https://www.typescriptlang.org/) [](https://scorecard.dev/viewer/?uri=github.com/Nizoka/pdfnative-mcp) [](https://github.com/Nizoka/pdfnative-mcp/actions/workflows/codeql.yml) --- ## ✨ Features `pdfnative-mcp` exposes **24 production-grade tools** to any MCP host: | Tool | Purpose | | ---------------------------------- | ------------------------------------------------------------------------------------------------ | | `generate_basic_pdf` | Multi-page A4 documents from structured blocks (headings, paragraphs, lists, page breaks). Embedded newlines auto-split into paragraphs. Optional `pdfA`. | | `add_barcode` | QR Code, Code 128, EAN-13, Data Matrix, PDF417 — embedded in a single-page PDF. | | `add_international_text` | 24 scripts (incl. **Latin** & COLRv1 **colour emoji**) with BiDi & OpenType shaping; multi-lang per document. | | `add_table` | Tabular reports with smart fields (wrap, repeatHeader, zebra, caption, minRowHeight, cellPadding). | | `add_form` | Create a **new** interactive AcroForm PDF with text fields, checkboxes, radio buttons, dropdowns. | | `read_form_fields` *(new in v1.5.0)* | Read-only enumeration of an **existing** AcroForm's field tree (names, types, values, widgets). | | `fill_form` *(new in v1.5.0)* | Fill and/or flatten an **existing** AcroForm (non-destructive incremental update). | | `add_chart` *(new in v1.5.0)* | Native vector charts — bar / horizontal-bar / line / pie / donut (pure PDF path operators, PDF/A-safe). | | `embed_image` | Embed a JPEG or PNG image (base64) into a titled PDF document. | | `prepare_signature_placeholder` | Step 1 of the two-step sign workflow — create a PDF with a `/Sig` AcroForm placeholder. | | `sign_pdf` | Apply a PAdES-compatible CMS signature (RSA-SHA256 / ECDSA-SHA256 P-256). Auto-injects a placeholder when needed. | | `verify_pdf` | Verify every PAdES signature in a PDF (integrity + signature value + optional chain trust). | | `validate_pdf` *(new in v1.1.0)* | Validate a Tagged PDF for PDF/UA (ISO 14289-1) structural conformance (read-only). | | `add_attachment` | Generate a PDF/A-3 document with embedded files (Factur-X / ZUGFeRD invoices). | | `extract_attachments` | Read-only extraction of embedded files (Factur-X / ZUGFeRD XML round-trip) with byte-for-byte payloads. | | `extract_text` | Unicode text extraction (resolves `/ToUnicode`) with optional positioned runs; opens encrypted PDFs via `password`. | | `inspect_pdf` | Read-only inspection: PDF version, page count, encryption (+ precise `encryptionInfo`), PDF/A claim, signatures, attachments, placeholder state. | | `encrypt_pdf` *(new in v1.5.0)* | Re-secure a PDF with AES-128 / AES-256 (owner/user passwords, permissions, password rotation). | | `decrypt_pdf` *(new in v1.5.0)* | Emit an unencrypted copy of an RC4 / AES-128 / AES-256 document. | | `merge_pdfs` *(new in v1.3.0)* | Concatenate 2–50 PDFs into one via pdfnative's page-tree API. | | `split_pdf` *(new in v1.3.0)* | Split one PDF into one document per page range (multi-output). | | `extract_pages` *(new in v1.3.0)* | Pull an arbitrary page subset into a single PDF. | | `annotate_pdf` *(new in v1.4.0)* | Add markup annotations (highlight, note, square/circle, line, freetext) as a visual overlay — **not** a redaction. | | `draft_governance_issue` *(new in v1.4.0)* | Draft a governance-compliant GitHub issue locally for **human** review; never submits, no network. | **New in v1.5.0:** - 📊 **Native vector charts** — `add_chart` renders bar / horizontal-bar / line / pie / donut charts as pure PDF path operators (zero rasterisation, PDF/A-safe with auto alt text). `generate_basic_pdf` also accepts a `chart` block for composition with text and tables. - 📝 **Fill & flatten forms** — `read_form_fields` lists an existing AcroForm's fields; `fill_form` fills and/or flattens it via a non-destructive incremental update (the counterpart to `add_form`). - 🔐 **Encryption round-trip** — `encrypt_pdf` re-secures with AES-128 / AES-256 (RC4 never emitted), `decrypt_pdf` recovers an unencrypted copy, a `password` input opens encrypted sources on the read-only tools, and `merge_pdfs` / `split_pdf` / `extract_pages` gain `password` + `encrypt`. - 🔤 **Real text extraction** — `extract_text` now resolves each font's `/ToUnicode` CMap (no more glyph-index output) and can return positioned `runs`. - 🔗 **Native MCP resources** — sandboxed generated PDFs become `pdfnative://output/…` resources (`resources/list` + `resources/read`), with a `resource_link` in file-mode results for cross-call re-reference. - 🏷️ **Tool annotations** — every tool advertises `readOnlyHint` / `destructiveHint` / `idempotentHint` / `openWorldHint`. - ⬆ **Engine upgrade** — [pdfnative **v1.6.0**](https://github.com/Nizoka/pdfnative) (decrypt/re-encrypt, `extractText`, fill/flatten, charts; colour-emoji subset 221 → 1167 glyphs). **New in v1.4.0:** - 🤝 **AI governance + human-in-the-loop** — `draft_governance_issue` lets an agent draft a fully compliant GitHub issue **locally** (draft `.md` + machine-readable compliance report). The agent is a *draftsman, never an autonomous submitter*: a human is the only gate, and the server makes **zero** GitHub writes and no outbound network calls. Backed by the `governance_contract` and `draft_issue_workflow` MCP prompts. - ✏️ **Markup annotations** — `annotate_pdf` overlays highlight, sticky-note, underline, strikeout, squiggly, square, circle, line, and freetext annotations on an existing PDF via incremental update. It is a *visual review layer, not a redaction* — underlying bytes remain. - 🔢 **Page labels in `inspect_pdf`** — read-only surfacing of `/PageLabels` ranges (roman, decimal, prefixed). - ∑ **Math / scientific script** — `add_international_text` accepts `lang: 'math'` (explicit, like `emoji`) to embed the Noto Sans Math face on demand. - 🧩 **MCP prompts** — the server now advertises the `prompts` capability with `governance_contract` and `draft_issue_workflow`. - ⬆ **Engine upgrade** — pdfnative **v1.5.0**. **New in v1.3.0:** - 🆕 **Three page-tree tools** — `merge_pdfs`, `split_pdf`, `extract_pages` (built on [pdfnative v1.4.0](https://github.com/Nizoka/pdfnative)'s page-tree API; encrypted sources are rejected). - 🔖 **Bookmarks, page labels & nested lists** — `generate_basic_pdf` gains `outline` (`'auto'` or explicit tree), `pageLabels`, multi-level `list` items, and `viewerPreferences`. - 📐 **Table cell borders & alignment** — `add_table` gains `cellBorders`, `cellVAlign`, and `viewerPreferences`; `add_international_text` gains `viewerPreferences`. - 🔐 **Constant-time signing** — `sign_pdf` signs RSA and EC-DER keys through a `node:crypto` provider with a transparent pure-JS fallback; signatures stay interoperable. - ⬆ **Engine upgrade** — pdfnative **v1.4.0**. - 🆕 **Tool `extract_attachments`** — read embedded files back out of a PDF (completes the Factur-X / ZUGFeRD round-trip) with byte-for-byte payloads, a `filename` filter, and an `includeData: false` metadata-only probe. - 💧 **Watermarks** — `generate_basic_pdf` and `add_table` accept an optional `watermark` (text, opacity, angle, colour, position) rendered on every page. - 🌐 **Unicode `normalize`** — opt-in `NFC`/`NFD`/`NFKC`/`NFKD` on `generate_basic_pdf` and `add_international_text`. - 🪙 **Token-frugal reads** — the read-only tools (`inspect_pdf`, `verify_pdf`, `validate_pdf`, `extract_text`, `extract_attachments`) accept optional `verbosity: 'summary'` and `fields: […]` inputs for ~90% smaller responses on large results, with no loss of the fields agents branch on. Defaults are unchanged. - 🪙 **No base64 duplication** — generated PDFs (base64 mode) are returned **once** as an embedded `resource` content block instead of also being copied into `structuredContent`. - 🔧 **MCP registry publish fix** — `mcpName` now uses the canonical GitHub login casing (`io.github.Nizoka/pdfnative-mcp`) so the registry's case-sensitive validation accepts the npm package. - ⬆ **Dependency** — upgraded to **zod 4**. **New in v1.1.0:** - 🆕 **Tool `validate_pdf`** — read-only PDF/UA (ISO 14289-1) structural conformance check.
What people ask about pdfnative-mcp
What is Nizoka/pdfnative-mcp?
+
Nizoka/pdfnative-mcp is mcp servers for the Claude AI ecosystem. Official Model Context Protocol (MCP) server for local-first PDF/A generation. Empowers AI agents (Claude, Cursor, Zed) to securely create, sign (PAdES), verify, and transform documents with barcodes and AcroForms. It has 2 GitHub stars and was last updated today.
How do I install pdfnative-mcp?
+
You can install pdfnative-mcp by cloning the repository (https://github.com/Nizoka/pdfnative-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is Nizoka/pdfnative-mcp safe to use?
+
Nizoka/pdfnative-mcp has not been audited yet by our security agent. Review the original repository on GitHub before using it in production.
Who maintains Nizoka/pdfnative-mcp?
+
Nizoka/pdfnative-mcp is maintained by Nizoka. The last recorded GitHub activity is from today, with 7 open issues.
Are there alternatives to pdfnative-mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy pdfnative-mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/nizoka-pdfnative-mcp)<a href="https://claudewave.com/repo/nizoka-pdfnative-mcp"><img src="https://claudewave.com/api/badge/nizoka-pdfnative-mcp" alt="Featured on ClaudeWave: Nizoka/pdfnative-mcp" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface