MCP.Market

pdfmux MCP server

by NameetP·io.github.NameetP/pdfmux·v1.8.7·82 stars

PDF-to-Markdown extraction that audits its own output and flags any extractor's silent drops.

C65/100grade C
What users say
No reviews yet
Be the first
Safety scan
C65/100

full report

Adoption
Growing

82 stars

Reviews

Write one

Nobody has reviewed pdfmux yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

pdfmux tools (8)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • analyze_pdf

    Quick PDF triage — classify type and audit page quality without full extraction. Returns page count, type detection, per-page quality breakdown, and estimated extraction difficulty. Much cheaper than convert_pdf for initial assessment.

  • batch_convert

    Convert all PDFs in a directory to Markdown. Returns a summary with per-file results.

  • convert_pdf

    Convert a PDF to AI-readable Markdown. Automatically detects the PDF type and picks the best extraction method. Returns confidence score and warnings when extraction is limited.

  • extract_pdf

    Convert a PDF to AI-readable Markdown.

  • extract_streaming

    Stream extraction events for a PDF as NDJSON.

  • extract_structured

    Extract structured data from a PDF — tables as JSON, key-value pairs, and optionally map to a JSON schema. Returns tables with headers/rows, detected key-value pairs with auto-normalization (dates, amounts, rates), and schema-mapped output if a schema is provided.

  • get_pdf_metadata

    Get PDF metadata instantly — page count, file size, document type, and whether it has tables. No extraction performed. Use this first to decide which tool to call next: convert_pdf for full text, analyze_pdf for quality audit, or extract_structured for tables.

  • verify_extraction

    Audit an extraction of a PDF for silently-dropped pages — the failure where an extractor returns nothing for a page that has real text while reporting success. Pass extracted_text with another engine's output (Reducto, Mistral OCR, LlamaParse, Docling, an in-house parser — as JSON, Markdown, or plain text) to certify THAT engine against the source PDF; omit it to have pdfmux extract the document i

Public scan report

scanner v0.1.9 · 2026-09-24 · same rubric, same numbers if you re-run it

1 high
  • Code scan158 source files scanned13/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 13 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10

Findings (1)

  • highShell command built from a string (injection risk)exec.shell-concat
    pdfmux-1.8.7/.claude/worktrees/nifty-colden-3d35cb/npm-wrapper/index.js: …on"]) { try { const version = execSync(`${cmd} --version 2>&1`, { encoding: "utf8"…
Overall 65/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How pdfmux compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
65/100
higher than 20% of 48,255 servers
Tools
8
the typical server has 7
Tools that change things
0%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
82
more than 95% of 28,688 servers

What its tools let an agent do: 8 read

Install pdfmux in Claude Code, Cursor or VS Code

claude mcp add pdfmux -- uvx pdfmux
Add to Cursor

What the publisher says

From the pdfmux repository's README, as published. We do not edit it. Read it on GitHub

pdfmux

Self-healing PDF extraction that flags the pages it can't read instead of dropping them — and now certifies any extractor's output for silent drops. Open-source LlamaParse alternative for RAG pipelines, MCP server for Claude Desktop, LangChain + LlamaIndex loaders.

pdfmux extracts PDFs and checks its own work — and now certifies any extractor's, telling you which pages it silently dropped. Free, MIT. Patent-pending method. pip install pdfmux.

Two jobs, one tool:

  • Self-healing extraction. The only PDF extractor that audits its own output. Catches blank pages, scrambled columns, broken tables — re-extracts them with a stronger backend, and flags what it still can't read instead of silently dropping it. So your LLM gets clean data, not silent garbage. Routes each page to the best of 7 built-in extraction backends + BYOK LLM fallback (Gemini / Claude / GPT-4o / Ollama). One CLI. One API. Zero config.
  • Certify Anything — new in v1.8.1. pdfmux verify audits any extraction engine's output against the source PDF — Reducto, Mistral OCR, LlamaParse, Docling, your in-house parser — and tells you which pages it silently dropped. Free, MIT, patent-clean.
PDF ──> pdfmux router ──> best extractor per page ──> audit ──> re-extract failures ──> Markdown / JSON / chunks
            |
            ├─ PyMuPDF         (digital text, 0.01s/page)
            ├─ OpenDataLoader  (complex layouts, 0.05s/page)
            ├─ RapidOCR        (scanned pages, CPU-only)
            ├─ Docling         (tables, 97.9% TEDS)
            ├─ Surya           (heavy OCR fallback)
            ├─ Marker          (academic papers, neural)
            ├─ Mistral OCR     ($0.002/page, 96.6% tables)
            └─ YOUR LLM        (Gemini / Gemma 3 / Claude / GPT-4o / Ollama / Mistral — BYOK via YAML)

Install

pip install pdfmux

That handles digital PDFs. For any real-world batch, install pdfmux[ocr] too — almost every directory of PDFs has at least one scan, and without OCR those pages return empty text:

pip install "pdfmux[ocr]"             # ⭐ recommended — RapidOCR for scanned pages (~200MB, CPU)

Other backends, by document type:

pip install "pdfmux[tables]"          # Docling — table-heavy docs (~500MB)
pip install "pdfmux[opendataloader]"  # OpenDataLoader — complex layouts (Java 11+)
pip install "pdfmux[marker]"          # Marker — neural extraction for academic papers
pip install "pdfmux[llm]"             # Gemini fallback (default LLM)
pip install "pdfmux[llm-claude]"      # Claude (Sonnet / Opus)
pip install "pdfmux[llm-openai]"      # GPT-4o family
pip install "pdfmux[llm-ollama]"      # Ollama (any local model)
pip install "pdfmux[llm-mistral]"     # Mistral OCR API ($0.002/page)
pip install "pdfmux[llm-all]"         # all LLM providers (incl. Gemma via Gemini key)
pip install "pdfmux[watch]"           # `pdfmux watch <dir>` auto-convert on change
pip install "pdfmux[all]"             # everything

Requires Python 3.11+.

Quick Start

CLI

# zero config — just works
pdfmux convert invoice.pdf
# invoice.pdf -> invoice.md (2 pages, 95% confidence, via pymupdf4llm)

# RAG-ready chunks with token limits
pdfmux convert report.pdf --chunk --max-tokens 500

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

pdfmux: common questions

Is pdfmux MCP server safe?
With care: it is graded C, so read the findings first (65/100). Read the pdfmux safety report
How do I install pdfmux?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does pdfmux need an API key?
Yes. The registry entry asks for GEMINI_API_KEY.
Is pdfmux maintained?
The last commit was 53 days ago (2026-09-12). The latest release is v1.8.7.
What can I use instead of pdfmux?
Servers from other publishers that do the same job: kordoc MCP server.
How does pdfmux compare with other MCP servers?
safety score 65/100 (higher than 20% of 48,255 servers); tools 8 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to pdfmux

Same job from other publishers: the closest match first, then the best rated.

  • kordoc
    Parse Korean documents (HWP, HWPX, PDF, XLSX, DOCX, PPTX) to Markdown; fill forms, diff, render.
    A