Labsco
MCP SERVER

PDF Reader

by sylphxltd

PDF answers an agent can cite — page, table cell and bounding box, from a native Rust engine.

Document Conversion, PDF & TranslationVerified
Summary
Three tools, and every answer carries its coordinates.

Plain-text extraction is what makes agents invent page numbers: once the layout is gone, there is nothing to cite. Citra keeps the geometry, so a figure comes back as a page, a table and a cell you can show someone. The tool surface is deliberately small — advanced work lives inside pdf_evidence's op enum instead of spawning new tool names.

What it is

Citra, a local-first PDF reader for agents. It returns structured text, table geometry, OCR output and page-level citations rather than a flat text dump, so a claim can be traced back to a page and a cell. Published as `@sylphx/citra`, version 5.0.0, binary citra.

What you get
  • `read_pdf` — the primary read: markdown, tables, document structure, OCR and citations, from a minimal call that only needs the file path
  • `search_pdf` — literal retrieval that comes back with page and bounding-box locators, for finding the passage before reading deeply
  • `pdf_evidence` — the follow-up operations behind one op enum: inspect, render, crop, OCR and region extraction
  • Table structure kept as structure — rows, columns, cells and bounding boxes, so a number can be quoted as page, table and cell rather than as a sentence
  • Scanned documents handled by an OCR path that stays linked to the same evidence, and trust signals on hidden or adversarial text when you ask for them
  • The same three tools from a CLI and from the SDK entry point `@sylphx/citra/sdk`, which exposes read, search and evidence
Requirements

Node.js 22.13.0 or newer for the launcher, and nothing else — no Docker, no API key, no cloud vision service, and PDFs stay on the machine. Run it with npx and the package, or install globally and call citra. One platform native package is selected automatically for your host: macOS arm64 and x64, Linux x64 and arm64 gnu, and Windows x64 are the supported targets. If the matching native binary is missing the server fails closed rather than falling back to a slower engine, which is a deliberate choice — there is no TypeScript PDF runtime in the production package. Optional OCR and visual providers are opt-in and not needed for the core text paths.

Setup effort

One command — npx -y @sylphx/citra