Open Source · Model Context Protocol · MIT

Let any AI agent read PDF statements and invoices into clean CSV, JSON or Excel

pdf-extract-mcp is a local MCP server that extracts tables from digital PDF bank statements, invoices and bills — with PII redaction on by default. Files never leave the machine.

Why an MCP server for PDF extraction

If you are building or running an AI agent that handles financial documents, pasting statements into a chat window or calling an online OCR API leaks confidential client data and gives back unstructured text. This server turns extraction into a deterministic local tool the agent can call — returning rows, not prose — so the data stays on the machine and drops straight into reconciliation pipelines.

Bookkeeping & accounting

Convert client bank and credit-card statements into Excel ready for reconciliation, without uploading sensitive ledgers.

Accounts payable

Pull invoice line items into structured records for ERP or spreadsheet workflows, with vendor and amounts intact.

AI agents & RAG

Give Claude Desktop, Cursor or any MCP client a callable tool that returns clean tables instead of noisy page text.

Compliance-safe sharing

Mask account numbers and IDs before a file ever leaves the firm, with selectable redaction levels.

What it does

Install and connect

Published to the official MCP Registry as io.github.diyaluo/pdf-extract-mcp and as an OCI image on GHCR. Run locally over stdio:

pip install -e .
pdf-extract-mcp

Client configuration (Claude Desktop / Cursor / any MCP client):

{
  "mcpServers": {
    "pdf-extract": {
      "command": "pdf-extract-mcp",
      "env": {}
    }
  }
}

Free tier: 100 pages per rolling 30 days per client (anonymous, keyed by a client hash), 50 MB per file. Over-quota calls return a structured QUOTA_EXCEEDED response with an in-band upgrade pointer — it never bills silently.

Frequently asked questions

What does this MCP server do?

It exposes PDF data extraction as MCP tools, so any MCP-compatible AI agent can take a digital PDF bank statement, invoice or bill and return its tables as CSV, JSON records or an Excel workbook, with sensitive PII masked by default.

Does it upload my PDFs to a server?

No. The server runs locally and communicates over stdio. PDF content and extracted data never leave the computer, which is why teams handling confidential client financial documents use it instead of online OCR websites.

Which MCP clients is it compatible with?

Any client that supports the Model Context Protocol over stdio, including Claude Desktop and Cursor. It is published to the official MCP Registry as io.github.diyaluo/pdf-extract-mcp and distributed as an OCI image on GHCR.

Can it read scanned or image-only PDFs?

No. Scanned or image-only PDFs are explicitly rejected with a structured SCANNED_PDF_UNSUPPORTED response rather than silently failing or triggering paid OCR. The current scope is digital, text-layer PDFs; OCR is a planned separate tier.

What sensitive data is redacted?

By default it masks SSN, EIN/TIN, IBAN, SWIFT/BIC, routing/ABA and account numbers, card numbers, phone and email, plus Chinese national ID, mobile, bank card, USCC and passport numbers. Ambiguous bare numbers are masked only after a label so reference numbers and amounts stay readable; amounts, dates and descriptions are never altered.