MCP.Market

pdffr MCP server

by AmerSarhan·io.github.AmerSarhan/pdffr-mcp·v0.1.1

Local, private PDF to Markdown for agents: geometry-first parsing, OCR only where needed.

A88/100grade A
What users say
No reviews yet
Be the first
Safety scan
A88/100

full report

Adoption
New

0 stars29 downloads/wk

Reviews

Write one

Nobody has reviewed pdffr yet.

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

pdffr tools (3)

write = sends, deletes, buys or posts

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

  • pdf_outline

    List the headings of a PDF with their level and page number, so you can decide which pages to read with pdf_to_markdown.

  • pdf_tables

    Extract every table in a PDF as JSON rows: [{ page, rows: string[][] }]. The first row is the header.

  • pdf_to_markdown

    Decompile a PDF into Markdown (headings, lists, tables, math as LaTeX) locally. Born-digital pages take milliseconds; scans and screenshots get on-device OCR only where needed. Nothing is uploaded. Use pdf_outline first on long documents to pick pages.

Public scan report

scanner v0.1.10 · 2026-10-16 · same rubric, same numbers if you re-run it

no findings
  • Code scan3 source files scanned25/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 qualitylocal package, no credentials required12/15
  • Maintenancelast push 43 days ago12/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 88/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How pdffr compares

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

Safety score
88/100
higher than 75% of 48,243 servers
Tools
3
the typical server has 7
Tools that change things
0%
typical: 0%. Fewer write tools means less an agent can break
Downloads a week
29
more than 16% of 12,306 servers with a package

What its tools let an agent do: 3 read

Install pdffr in Claude Code, Cursor or VS Code

Runs npx -y pdffr-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add pdffr-mcp -- npx -y pdffr-mcp
Add to Cursor

What the publisher says

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

pdffr

A PDF decompiler, not an image reader. PDF → Markdown in the browser or Node, in milliseconds for born-digital pages — with on-device OCR spent only on the pixels the text layer can't explain.

Try it in your browser → — drop any PDF; it never leaves the tab.

import { decompile } from 'pdffr';

const { markdown, stats } = await decompile(file);
// stats.firstOutputMs ≈ 150ms for a typical report; the file never leaves the tab
npx pdffr report.pdf -o report.md

Why this exists

Every PDF→Markdown tool sits at one of two extremes:

~80% of real-world PDFs are born-digital: every glyph's exact coordinates, size and font are already in the file. pdffr treats PDF as what it is — a drawing program — and decompiles the drawing back into structure:

  • Geometry-native decompilation. Glyph runs → lines → an XY-cut reading-order tree over whitespace → headings (font-size clustering), paragraphs (leading analysis), nested lists (marker glyph + indent), tables (ruling lines from the content stream, or column x-alignment), inline bold/italic/, math fonts and sub/superscripts transliterated to $LaTeX$, rotated text re-framed upright, running header/footer stripping, hyphenation repair. No rasterization. Milliseconds per page.
  • Render-diff oracle. When a page carries bitmaps or thin text coverage, the page is rendered once, the raster's ink mask is computed, and the dilated boxes of every native glyph are erased from it. What's left is ink the text layer cannot explain — scans, stamps, screenshots with burned-in text. Exact image rectangles from the content stream (CTM-tracked) sharpen the regions further. Only those regions go to OCR.
  • One IR for both sources. OCR words come back with boxes and confidence, get gated by a text-plausibility test (confidence alone lies on icons and charts), and enter the same geometry engine as native glyphs. Structure recovery is source-agnostic.
  • Parallel and optimistic. Pages decompile concurrently; markdown streams out immediately with placeholders; a pool of tesseract workers fills them in place. Whole-page scans are split along their own ink into chunks so the pool works in parallel.
  • Private by construction. pdf.js and tesseract.js run in web workers in the user's tab. Nothing is uploaded.
  • Same engine in Node. pdffr/node runs the identical pipeline on the server or the command line, with @napi-rs/canvas standing in for the DOM.

Install

npm install pdffr pdfjs-dist tesseract.js

Shortened. The full README is on GitHub.

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

pdffr: common questions

Is pdffr MCP server safe?
Yes, by our scan: it is graded A (88/100). Read the pdffr safety report
How do I install pdffr?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does pdffr need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is pdffr maintained?
The last commit was 63 days ago (2026-09-03). The latest release is v0.1.1.
What can I use instead of pdffr?
Servers from other publishers that do the same job: kordoc MCP server.
How does pdffr compare with other MCP servers?
safety score 88/100 (higher than 75% of 48,243 servers); tools 3 (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 pdffr

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