pdf-mcp
Let your AI agent pull text and tables out of PDFs. An MCP server for invoices, reports, and statements, where the data lives in tables the model can't read from a pasted blob.
When you paste a PDF into a prompt, the columns collapse and the table turns to mush, so the model guesses at the numbers. This extracts the actual table structure with deterministic code, so the agent gets clean rows and never invents a cell.
What it turns a PDF into
A PDF invoice table like this:
Item Qty Price
Widget 3 12.50
Gadget 1 40.00
Bolt 10 0.25
comes back as structured rows (or CSV), not a flattened line of text:
[["Item","Qty","Price"],["Widget","3","12.50"],["Gadget","1","40.00"],["Bolt","10","0.25"]]
The tools it gives an agent
| Tool | What it does |
|---|---|
page_count(path) |
How many pages the PDF has |
extract_text(path, page) |
Text per page (one page, or the whole doc) |
extract_tables(path, page) |
Tables as rows of cells |
table_to_csv(path, page, index) |
One table as clean CSV text |
Quickstart
pip install "pdf-agent-mcp[mcp]"
Add it to your MCP client (e.g. Claude Desktop):
{
"mcpServers": {
"pdf": { "command": "pdf-agent-mcp" }
}
}
Now your agent can answer "pull the line items out of this invoice" by reading the PDF, not guessing.
Also usable from plain Python
from pdf_mcp import extractor
extractor.extract_tables("invoice.pdf") # {'tables': [{'rows': [...]}], ...}
extractor.table_to_csv("invoice.pdf") # clean CSV of the first table
extractor.extract_text("report.pdf", page=1)
Tests
python -m unittest discover -s tests # builds its own test PDF, runs anywhere
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pdf_agent_mcp-0.1.0.tar.gz.
File metadata
- Download URL: pdf_agent_mcp-0.1.0.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb1cb67a365e2316ba16ca3b52c922472fed1c0b2ffea24ed6545a98b989f912
|
|
| MD5 |
f02d87be4f463df3c8c0911a7a105478
|
|
| BLAKE2b-256 |
c6609235fba486d90e8dc60fffed15c568367c9db05e02fdcca42767dcb54176
|
File details
Details for the file pdf_agent_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pdf_agent_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83d2b5e901b01c082a71636b13537335d66dcbd5d9ee860d51c035babfce561c
|
|
| MD5 |
0165463cce4e37a03095f74a61895ee9
|
|
| BLAKE2b-256 |
7ebc277131b062b782730fdc070875670e6866e8d37c19da76e1ecaa903cf35d
|