PDF Reader (PDF Agent Stack) logo

PDF Reader (PDF Agent Stack)

Read, search, render, and inspect local PDFs, with structural details and explicit reporting of unreadable content.

Install PDF Reader (PDF Agent Stack)

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "pdf-reader-pdf-agent-stack": {
      "command": "npx",
      "args": [
        "-y",
        "@shuji-bonji/pdf-reader-mcp@latest"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Install not yet sandbox-tested— the server itself is confirmed live (we called its tools/list endpoint). The stdio install command is a separate, ongoing check.

Overview

PDF Reader (PDF Agent Stack) is an MCP server for reading local PDF files and inspecting their internal structure. It extracts text, searches content, reads metadata, renders pages, returns embedded images, and examines tags, fonts, annotations, signatures, catalog entries, and PDF objects. The server also accepts a remote PDF URL for one-shot text extraction, while other analysis tools require a local file path. Reach for it when page content, reading order, accessibility structure, extractability, or document internals matter more than simple text conversion.

Use cases

  • Extract text from selected PDF pages
  • Search a large PDF before reading matching pages
  • Inspect accessibility tags, fonts, annotations, and signatures
  • Render scanned or handwritten PDF pages for vision models
  • Compare the structure of two PDF versions

Key features

  • Coordinate-aware and tagged logical text extraction
  • PDF metadata and extractability reporting
  • Full-text search with page context
  • Page rendering and embedded image extraction
  • Catalog, object, font, tag, annotation, and signature inspection
  • Structural comparison between PDFs

Tools18

What PDF Reader (PDF Agent Stack) lets your agent do. Expand a tool for its parameters.

Verified live~10.8k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

9/9 checks healthy over the last 37d

What it can do

From the 18 tools this server returned when we ran it; 18 declare their own safety hints.

Runs commands · 1Handles credentials · 1Makes network requests · 1Read-only tools · 17
Network at startup3 connections
Files written at startupNone
Install scriptsNone
npm provenanceSigned build
Package age264 days
Maintainers1

Observed 2026-10-30 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 13d ago via OSV.dev · @shuji-bonji/pdf-reader-mcp@latest (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars2Stargazers on the source repository.
npm downloads2.9kPackage downloads in the last 30 days.
Last commit4d agoMost recent push to the default branch.
Tools exposed18Callable tools this server registers over MCP.
Directory activity2 viewsConfig copies, upvotes, and views on AllMCPs.

How PDF Reader (PDF Agent Stack) works

What PDF Reader (PDF Agent Stack) does

PDF Reader (PDF Agent Stack) exposes read-only PDF analysis through MCP. It works primarily with absolute paths to local PDF files and can inspect both visible content and the objects behind it. Its coverage ranges from lightweight page counting to tagged-content extraction, catalog inspection, font inventories, annotation analysis, signature-field inspection, and structural comparison between two documents.

The server distinguishes information that was read successfully from information that could not be observed. Text extraction reports per-page states such as extracted, no_text_layer, not_extractable, and not_observed, so an empty result is not automatically treated as an empty page. Responses also use scope information to identify which readings completed.

How it works

read_text extracts pages in coordinate-based order, sorting from top to bottom and then left to right. It resolves /ActualText replacements and can reorder untagged multi-column documents with split_columns. For Japanese form-style PDFs, compact_whitespace collapses repeated whitespace, including fullwidth spaces. Tagged documents have a separate path: extract_structured_text follows the structure tree's logical order and preserves roles, depth, labels, page spans, and optional bounding boxes.

Use search_text before extracting a large document when only selected passages are needed. It searches the same text representation as read_text and returns page numbers, matched text, and surrounding context. read_url downloads an HTTP or HTTPS PDF for text extraction, then discards the bytes; it does not create a local file for other tools.

render_page rasterizes selected pages through the optional PDFium WebAssembly dependency. It is intended for scans, handwriting, forms, vector drawings, stamps, and pages whose text layer cannot be read. read_images instead returns embedded image objects, not complete rendered pages. Both image-producing tools cap encoded response data at 4 MB and identify omissions.

Setup and configuration

The published package is @shuji-bonji/pdf-reader-mcp. It is designed to run wherever npx runs and uses a standard MCP server arrangement. Claude Code is named by the project, and the server can be used by MCP clients that support standard server connections.

Rendering requires the optional @hyzyla/pdfium dependency. Without it, render_page reports that the dependency is unavailable while the other tools continue to work. Rendering uses a 20-second per-page timeout by default; PDF_READER_RENDER_TIMEOUT_MS overrides that value. The pages argument is required for render_page, and specifying page ranges is advisable for large text or image-heavy documents.

Tools and capabilities

  • Count pages and extract document metadata, including PDF version, dates, flags, and file size.
  • Read or search text with page ranges, JSON or Markdown output, column handling, and extractability reporting.
  • Fetch a remote PDF for text-only extraction with read_url.
  • Extract embedded images or render complete pages as MCP image blocks.
  • Summarize a document using metadata, page-one preview, image count, extractability, and suggested next tools.
  • Inspect catalogs, object statistics, tags, fonts, annotations, signature fields, and document-level actions.
  • Extract logical tagged text and tagged tables, including optional element coordinates.
  • Map object numbers to page locations and compare structural properties and fonts across two PDFs.

Limitations and notes

The server reports PDF contents and structure; it does not perform cryptographic signature verification or PDF/A and PDF/UA conformance validation. Signature inspection covers field structure, signer details, and signing metadata only. Tagged-table extraction returns no table rows for untagged PDFs, does not apply rowspan or colspan, and does not emit nested tables separately.

read_text uses coordinate order rather than logical structure order, so tagged PDFs should use extract_structured_text when document order matters. Untagged PDFs cannot provide trusted logical order. render_page is expensive and can omit pages that exceed the response budget or rendering timeout, while separately identifying pages that were never attempted.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about PDF Reader (PDF Agent Stack)

PDF Reader (PDF Agent Stack) is an MCP server that connects AI clients to local PDF files and remote PDF URLs for read-only analysis. Its main tools count pages, extract and search text, inspect metadata and internal structure, render pages, read images, analyze tags, tables, fonts, annotations, and signature fields.

Install the published `@shuji-bonji/pdf-reader-mcp` package through your MCP client's standard server configuration. It is intended to run wherever `npx` runs. Add `@hyzyla/pdfium` when you need the optional `render_page` capability.

Yes, it can be used with Cursor through a standard MCP server connection. The server primarily accepts local PDF paths, while `read_url` handles one-shot text extraction from HTTP or HTTPS PDF URLs.

Render the needed pages with `render_page` and provide the resulting images to a vision-capable model. `render_page` is intended for pages reported as having no text layer or non-extractable text; the server itself does not perform OCR.

No, it only inspects digital signature field structure. `inspect_signatures` reports fields, signed or unsigned status, signer details, and signing metadata, but cryptographic signature verification is outside this server.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewPDF Reader (PDF Agent Stack) AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/pdf-reader-pdf-agent-stack?style=directory)](https://allmcps.com/mcp/pdf-reader-pdf-agent-stack)
HTML Embed
<a href="https://allmcps.com/mcp/pdf-reader-pdf-agent-stack"><img src="https://allmcps.com/api/badge/pdf-reader-pdf-agent-stack?style=directory" alt="PDF Reader (PDF Agent Stack) on AllMCPs" /></a>