# pdfmux

Extracts PDF content into Markdown and checks for pages an extractor may have missed. Use it to prepare documents for RAG or audit another parser’s output.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 84
- Author: NameetP
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/NameetP/pdfmux
- Updated: 2026-10-19
- HTML: https://affpapa.org/en/nevibecode/mcp/pdfmux

## What it does

pdfmux processes PDFs page by page, checks the extracted text, and flags pages that were skipped. It can also compare another extraction engine’s output with the source document, so an empty result on a page does not pass unnoticed. That check is useful when you need to audit an existing PDF pipeline.

For Claude Code, the MCP command runs `uvx pdfmux` and passes `GEMINI_API_KEY`; have a Gemini key ready for this configuration. The package requires Python 3.11 or later. Scanned pages need the package’s `ocr` option, since they can otherwise produce empty text. The server also lists Codex, Cursor, GitHub Copilot, Windsurf, Cline, and Zed as supported platforms.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `GEMINI_API_KEY` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add pdfmux -e GEMINI_API_KEY=<GEMINI_API_KEY> -- uvx pdfmux
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from pdfmux <command>

### Codex

**Platform CLI**
```bash
codex mcp add pdfmux --env GEMINI_API_KEY=<GEMINI_API_KEY> -- uvx pdfmux
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from pdfmux <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "pdfmux": {
            "command": "uvx",
            "args": [
                "pdfmux"
            ],
            "env": {
                "GEMINI_API_KEY": "<GEMINI_API_KEY>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from pdfmux <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "pdfmux": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "pdfmux"
            ],
            "env": {
                "GEMINI_API_KEY": "<GEMINI_API_KEY>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from pdfmux <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e GEMINI_API_KEY=<GEMINI_API_KEY> pdfmux uvx pdfmux
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from pdfmux <command>

## When to use it
- extract PDF text as Markdown
- spot pages omitted by an extractor
- audit another parser’s output against the source PDF
- prepare extracted text for RAG

## Example prompts
- Extract `report.pdf` and check whether any pages were missed.
- Compare the extraction of `invoice.pdf` with its source and flag empty pages.
- Audit my parser’s output for missing pages in `report.pdf`.

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [World Monitor](https://affpapa.org/en/nevibecode/mcp/world-monitor.md) — MCP server · ★ 89408
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [Front-End Checklist](https://affpapa.org/en/nevibecode/mcp/front-end-checklist.md) — MCP server · ★ 74559
- [Scrapling MCP Server](https://affpapa.org/en/nevibecode/mcp/scrapling-mcp-server.md) — MCP server · ★ 89433

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
