Sponsor MCPSafe10 founding slots
Registry/Pdf Reader MCP Server

Pdf Reader MCP Server

Verified

Any file → clean Markdown for AI agents: PDF, Word, PowerPoint, Excel, EPUB, HTML and web pages, images (OCR), audio and video (metadata, subtitles, transcripts). A fast Rust MCP server and CLI that runs on your machine. No API key.

MIT
other
other
1.0Kstars
89forks
Scanned Oct 2, 2026
WebsiteRepositoryGITHUB
Public Security Review Pending

Automated security grades and vulnerability claims are hidden while MCPSafe's reviewed-publication gate is active. Registry metadata and quality metrics remain live.

Trust Score 60

Review required
Trust grade C

Trust is stricter than security: it combines reviewed security, MCP capability risk, supply-chain metadata, quality, popularity, freshness, and penalties for unknowns.

Security
—
MCP risk
52
Supply chain
92
Maintenance
55
Docs
100
Freshness
80
Risk traits
Runs shell commands
Filesystem access
Network/API access
Requires secrets
Why it scores well
  • • Good documentation surface
  • • Solid supply-chain metadata
  • • Recently scanned
What reduces confidence
  • • No reviewed security score
  • • MCP risk traits: Runs shell commands, Filesystem access, Network/API access

Reviewed Security Publication Pending

MCPSafe treats automated scan output as internal evidence until review. Scan dates, versions, and coverage remain visible; public security scores and vulnerability claims appear only after findings pass the reviewed-publication gate.

Security Score?

—
out of 100

Vulnerabilities Found

0
Crit
0
High
0
Medi
0
Low
0
Info
Last scanned: 9/27/2026

Quality ScoreC

69
out of 100
55
Maint.
42
Popular
100
Docs
78
Compat
Maintenance55%
Popularity42%
Documentation100%
Compatibility78%

Maintenance55

Unknown
Commit Frequency65%
Release Frequency35%
Issue Response65%

Popularity42

1.0K
Stars
0
Downloads
89
Forks
Stars Score83%
Downloads Score0%
Forks Score67%

Documentation100

README Quality100%

Available Documentation

API DocsExamplesChangelog

Compatibility78

MCP Spec Compliance80%
Transport Support75%

Features

TypeScript

Supported Transports

STDIO

READMEPdf Reader MCP Server

View source

<!-- Marketing surface: scannable pitch first; engineering docs below the fold. -->

<div align="center">

Citra

Give your AI agent eyes for PDFs — with proof.

Local-first PDF evidence for agents. Structured text, tables, OCR, visual crops, and page-level citations your agent can defend — not invent.

Canonical package `@sylphx/citra` · bin citra · MCP io.github.SylphxAI/citra · live 5.0.0

![npm version](https://www.npmjs.com/package/@sylphx/citra)

![License: MIT](https://opensource.org/licenses/MIT)

![stars](https://github.com/SylphxAI/pdf-reader-mcp/stargazers)

</div>

Zero-config in one line

bash
npx -y @sylphx/citra

No Docker. No API key. No global install. Spawns a stdio MCP server agents can use immediately.

| Client | Setup |

| --- | --- |

| Any agent / CLI | npx -y @sylphx/citra |

| Claude Code | claude mcp add citra -- npx -y @sylphx/citra |

| Claude Desktop / Cursor / VS Code / Codex | "command": "npx", "args": ["-y", "@sylphx/citra"] |

| Global CLI | npm i -g @sylphx/citra → citra |

Why Citra feels unfairly good

Plain-text PDF tools make agents guess. Citra returns an Agent Document Twin they can cite.

| Pain today | With Citra |

| --- | --- |

| Page numbers invented or missing | Page + geometry + provenance |

| Tables flattened into soup | Rows · columns · cells · bounding boxes |

| Scanned PDFs become noise | OCR path linked to evidence |

| Install / config / “hope it works” | `npx -y` — done |

| Silent engine fallbacks | Fail closed if the native binary is missing |

Five reasons teams pick Citra

  1. Zero-config — real npx MCP, not a 20-step bootstrap.
  2. Evidence, not vibes — citations agents can show a human.
  3. Local-first — PDFs stay on the machine; no required cloud vision API.
  4. Brand-sole — one package, one bin, one story (@sylphx/citra / citra).
  5. Instrument family — compose with Iris (image), Cue (video), Spine, Lookout, Locus.

See the difference

Plain text vs evidence

| Without evidence | With Citra |

| --- | --- |

| “Revenue was about $12M” | “Page 14, Table 3, cell (row 4, col 2) = $12.4M” |

| Lost table structure | Rows, columns, cells, bounding boxes |

| Scanned PDF = garbage text | OCR with page-linked evidence |

| Hidden / adversarial text ignored | Trust signals when requested |

What you get

Three tools. One product surface.

| Tool | What agents use it for |

| --- | --- |

| read_pdf | Smart default: markdown, tables, structure, OCR, citations |

| search_pdf | Find page + snippet matches before deep reading |

| pdf_evidence | Crops, renders, inspect, focused evidence ops |

Minimal call:

json
{
  "sources": [{ "path": "/absolute/path/to/report.pdf" }]
}

Flagship use cases

  1. Financial reports — extract table cells agents can cite by page and geometry
  2. Research papers — headings, reading order, page-level quotes
  3. Scanned documents — OCR path with evidence, not a text soup

Platforms

One optional native package is selected for your host only:

| Platform | Native package |

| --- | --- |

| macOS arm64 | @sylphx/citra-darwin-arm64 |

| macOS x64 | @sylphx/citra-darwin-x64 |

| Linux x64 | @sylphx/citra-linux-x64-gnu |

| Linux arm64 | @sylphx/citra-linux-arm64-gnu |

| Windows x64 | @sylphx/citra-win32-x64-msvc |

Missing native → fail closed (no silent TypeScript PDF engine).

Product docs

| Doc | Purpose |

| --- | --- |

| docs/POSITIONING.md | Strategic positioning |

| docs/COMPETITIVE.md | Peer anchors and wedge |

| docs/EVIDENCE_CONTRACT.md | Evidence = result contract |

| docs/TOOL_SURFACE.md | Few clear tools policy |

| docs/PRODUCT_INDEPENDENCE.md | This repo is SSOT |

| docs/IPPB.md | Independent public product bar |

| docs/PUBLISH.md | npm / git publish status |

| docs/guide/installation.md | Install & host config |

| skills/citra/SKILL.md | Agent skill surface |

Surfaces (MCP · CLI · SDK)

MCP (default agent path)

bash
npx -y @sylphx/citra

Claude Desktop / Cursor / VS Code / Codex

json
{
  "mcpServers": {
    "citra": {
      "command": "npx",
      "args": ["-y", "@sylphx/citra"]
    }
  }
}

Dual-era hosts that send server/discover before initialize (e.g. Gemini Antigravity CLI) are supported on stdio.

CLI

bash
npx -y @sylphx/citra --help

SDK

  • @sylphx/citra/sdk → Citra (read / search / evidence)
  • @sylphx/citra/pure-rust → low-level client helpers
  • Same tools as MCP: read_pdf · search_pdf · pdf_evidence
  • Requires the platform optional native package (same as MCP)

Install footprint (honest)

Compare full clean installs, not “JS wrapper tarball vs native executable”:

| Metric (measured clean install, linux-x64) | Historical TS 3.0.14 | Sole-Rust 4.1.0 lineage |

| --- | ---: | ---: |

| Main package on disk | ~403 KB | ~77 KB |

| Full node_modules | ~82.3 MiB | ~24.4 MiB (~3.4× smaller) |

| Installed files | 4,101 | 20 (~205× fewer) |

| Production npm deps | PDF.js + MCP TS SDK + more | {} + one platform native |

The native binary is multi-megabyte because it is the PDF engine. That is expected — and still a cleaner install than shipping PDF.js + a large JS tree.

Details: installed footprint comparison

Performance (method-bounded)

Controlled same-host linux-x64 dual-mode A/B vs historical @sylphx/pdf-reader-mcp@3.0.14, using registry-installed sole-Rust natives (measured on the 4.1.x lineage; method applies to current sole-Rust packages):

| Mode | What it measures | Result |

| --- | --- | --- |

| persistent_warm | long-lived server, repeated identical local read_pdf after warm-up | ≥ ~10× median latency improvement on all 8 required fixture classes |

| startup_inclusive | spawn + initialize + one task | large advantage on the same fixtures |

persistent_warm includes a process-local cache for identical local path+options. First request in a process still pays full parse cost.

Not a multi-host guarantee. Details: 4.1.0 report · claims policy

Engine note

Current production is a native Rust engine on supported platforms via a thin Node launcher.

Local-first. Five platform packages. One clean install. Fail closed without the matching native.

Unusually formed or broken ToUnicode CMaps are handled without crashing; the release binary is panic-unwind so a worker-thread panic fails the request instead of aborting the process (#608).

Engineering history and recovery pins: docs/migration.md — not the product pitch.

Product proof & links


<div align="center">

Stop PDF hallucinations. Give agents proof.

bash
npx -y @sylphx/citra

</div>

Embed Security Badge

Add this badge to your README or documentation

Pdf Reader MCP Server MCPSafe Security
[![Pdf Reader MCP Server MCPSafe Security](https://api.mcpsafe.org
/api/badge/pdf-reader-mcp-server.svg)](https://mcpsafe.org/registry/pdf-reader-mcp-server)
Need more customization options?Badge Documentation

Server Information

Source
GITHUB
Language
other
License
MIT
Transport
STDIO
Added
Aug 11, 2026
Updated
Oct 1, 2026