Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

PDF Card MCP

by velyanversion 0.1.2i★ –iRuns on your computer
Registry nameio.github.velyan/pdf-card-mcp

Install

Overview

Description from the maker (original English)

Local-first MCP server + CLI that turns PDFs into source-linked, card-based HTML readers.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Docs, sheets & office work

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • The registry lists no key to fill in.

You need

  • PyPIPython’s uv installed (for the uvx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Download the maker’s .mcpb file

The link goes to the maker’s own file; we do not host or repackage it. Open the file and Claude Desktop installs it.

Run this in your terminal

claude mcp add pdf-card -- uvx pdf-card-mcp

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "pdf-card": {
      "command": "uvx",
      "args": [
        "pdf-card-mcp"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "pdf-card": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "pdf-card-mcp"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 10, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account velyan, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Docs, sheets & office worki

  • More stars than 0% of the other 3669 servers in this category
  • Published to the registry more recently than 13% of the other 3669 servers in this category
  • Basic checks equal to or better than 100% of the other 3669 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is PDF Card MCP safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.1.2) reached the registry 5 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv), MCPB on your computer.

What can I use instead?

In the same category: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Agent-Native Calendar

Agent-Native Google Calendar - manage events, sync, and public booking

by BuilderIOGrowing★ 7.6KUpdated 2 months ago

Runs in the cloud

Excel MCP Server

Lets AI create and edit Excel files itself, including formulas, charts and PivotTables, without Excel installed.

by haris-musaWidely used↓ 49.6K/wk★ 4.3KUpdated today

Runs on your computer

MCP Server for Excel

Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.

by sbroenneGrowing↓ 4.3K/wk★ 847Updated 7 days ago

Runs on your computer

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

PDF Card MCP

PDF Card MCP is a local-first MCP server and CLI for turning dense local PDFs into portable, source-linked HTML readers. An MCP host can ask it to convert a PDF path, validate notes/highlights, or publish a static annotated reader bundle. The converter preserves source text, renders source pages for verification, crops detected tables, figures, and display formulas as images, derives safe reader styling from the original PDF palette, and writes a standalone HTML file that can be moved across devices without losing assets.

Default conversion runs locally and does not require a hosted service. Optional MCP sampling is deliberately bounded: the host model may choose validated style tokens or suggest card-boundary polish operations, but raw CSS and source-text rewrites are rejected.

The default reader is designed for comfortable reading: large type, small cards, search, section navigation, next/previous controls, keyboard navigation, a font-size slider, and source-page previews.

PDF Card MCP is meant for PDFs you actually need to read, cite, or inspect. It turns long documents into smaller source-linked cards, keeps tables/figures/formulas as faithful image crops, and lets you export your own notes and highlights as Markdown.

Quick Install (one-click)

PDF Card MCP is a Python server, so it needs a runtime. The one thing to install first is uv — it manages Python for you, so you do not have to. This is the only prerequisite for every install path below:

# macOS / Linux

curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Then add the server with one click. The buttons run the published pdf-card-mcp package through uv:

Claude Code (terminal):

claude mcp add pdf-card -- uvx --from pdf-card-mcp pdf-card-mcp-server

Claude Desktop (no terminal, no prerequisites): download pdf-card-mcp-desktop.mcpb from the latest release and double-click it to install as an extension. This bundle declares the uv runtime, so Claude Desktop installs Python and dependencies for you — you do not need the uv step above for this path.

After installing, restart (or reload MCP servers in) your client so it picks up the new server.

Real Screenshots

These screenshots are from a generated reader for *Agents in Software Engineering* and the same source PDF opened side by side for comparison.

Generated readerOriginal PDF

Quick Examples

Convert a local PDF into one portable HTML reader:

pdf-card-mcp ./paper.pdf --output ./out/paper-reader.html

Use the explicit subcommand form with PDF-derived styling:

pdf-card-mcp convert ./paper.pdf \

--output ./out/paper-reader.html \ --style-engine pdf

Run the MCP server so a compatible host can generate readers from local PDF paths:

python -m pdf_card_mcp.server

Publish a read-only static reader with selected public annotations:

pdf-card-mcp publish ./out/paper-reader.html \

--annotations ./paper.annotations.json \ --output ./published/paper-reader.html

Output At A Glance

OutputWhat it contains
paper-reader.htmlStandalone reader with embedded CSS, JavaScript, page images, and detected crops.
paper.manifest.jsonStructured metadata for cards, pages, warnings, and source anchors.
Markdown exportUser-authored notes and highlights from the reader UI.
Published bundleRead-only static HTML or a directory bundle for sharing public annotations.

Status

This is an early open-source implementation. It is useful for text-layer PDFs now, with best-effort table detection via pdfplumber, permissive raster rendering via pypdfium2, and optional richer local table detection via gmft. Scanned PDFs need optional OCR support.

Install

Most people should use the one-click install above. To install the package directly instead, from PyPI:

python -m pip install pdf-card-mcp

Or install the latest unreleased changes directly from the repository:

python -m pip install "pdf-card-mcp @ git+https://github.com/velyan/pdf-card-mcp.git"

For local development:

git clone https://github.com/velyan/pdf-card-mcp.git

cd pdf-card-mcp python3 -m venv .venv . .venv/bin/activate python3 -m pip install -e ".[dev]"

uv is recommended for MCPB packaging:

uv sync

uv run pdf-card-mcp path/to/document.pdf --output out/document.html

Install the optional local ML table detector when you want stronger table crops:

uv sync --extra table-ml

uv run --extra table-ml pdf-card-mcp path/to/document.pdf --table-engine gmft

Use In An MCP Client

Add it to Claude Code or another CLI-compatible MCP client with uvx (requires uv):

claude mcp add pdf-card -- uvx --from pdf-card-mcp pdf-card-mcp-server

Generic MCP host configuration:

{

"mcpServers": { "pdf-card": { "command": "uvx", "args": ["--from", "pdf-card-mcp", "pdf-card-mcp-server"] } } }

For local development before the PyPI release, point the client at this checkout:

{

"mcpServers": { "pdf-card-local": { "command": "uv", "args": [ "--directory", "/path/to/pdf-card-mcp", "run", "python", "-m", "pdf_card_mcp.server" ] } } }

Claude Desktop can also install the .mcpb bundle from the latest GitHub release.

Docker / Registry Scanners

The repository includes a minimal Dockerfile so registries such as Glama can build the server, start it over stdio, and inspect its MCP tool schemas. The server still works on local file paths, so container users must mount any PDFs and output directories they want the tool to read or write:

docker build -t pdf-card-mcp .

docker run --rm -i \ -v "$PWD/examples:/docs" \ pdf-card-mcp

CLI Usage

pdf-card-mcp path/to/document.pdf --output examples/out/document.html

The command writes:

  • document.html: standalone reader with embedded CSS, JavaScript, table crops, figure crops, formula crops, and source-page images.
  • document.manifest.json: structured metadata without embedded image payloads.

The explicit subcommand form is also supported:

pdf-card-mcp convert path/to/document.pdf --output examples/out/document.html

Notes, Highlights, And Static Publishing

Generated readers include a local annotation overlay:

  • A highlight is selected source text.
  • A note is selected source text plus your own typed note text.

Select text in a text card, choose Highlight or Note, and use Export Markdown to download a readable .annotations.md file. Import is intentionally not exposed in the reader UI yet. Notes and highlights are user-authored data and are kept separate from the source-derived document.manifest.json.

The lower-level CLI and MCP publishing tools still accept a structured annotation bundle when you need to build a read-only static reader with embedded annotations. Validate that bundle against a reader:

pdf-card-mcp validate-annotations examples/out/document.html document.annotations.json

Publish a shareable static reader with public annotations:

pdf-card-mcp publish examples/out/document.html \

--annotations document.annotations.json \ --output published/document-reader.html

If --output is a directory instead of an .html file, the command writes a static bundle:

  • index.html
  • reader.manifest.json
  • reader.annotations.json
  • bundle.json

Publishing includes only visibility: public annotations by default, redacts the local source_pdf path by default, and renders the published reader read-only by default. Use --include-private only when you intentionally want private local notes included in the published output. Publishing fails if any included annotation cannot be anchored to the reader; run validate-annotations to inspect mismatches before publishing.

MCP Tool

The MCP server is the automation layer around the same local converter. It accepts local file paths from an MCP client and returns generated reader paths, manifest metadata, warnings, and publishing/validation results.

The server exposes three tools:

convert_pdf_to_card_html

validate_reader_annotations publish_reader_bundle

Inputs:

  • pdf_path: local PDF path.
  • output_path: optional HTML output path.
  • title: optional title override.
  • standalone: defaults to true; asset-folder output is reserved for a later release.
  • ocr: optional OCR fallback if pytesseract is installed.
  • max_pages: optional processing limit.
  • theme: defaults to soft.
  • style_engine: fixed, pdf, or sampling; defaults to pdf. fixed preserves the original soft palette, pdf derives bounded colors and typography hints locally from the source PDF, and sampling asks the host LLM to choose validated style tokens from those local hints.
  • table_engine: auto, pdfplumber, or gmft; auto uses gmft when installed.
  • text_engine: char_geometry or pdfplumber_words; defaults to char_geometry so missing spaces are repaired from PDF character positions instead of trusting fused words.
  • postprocess_engine: none or sampling; defaults to none. When set to sampling, the MCP server asks the host LLM for boundary-only card polish operations, validates exact source-text preservation, and rewrites the generated reader. If the MCP client does not support sampling, deterministic output is returned with a warning.
  • model_cache_dir: optional cache directory for local ML table model weights.

-

Only the beginning is shown; read the rest in the repo

Ask PopNx