PDF Tools MCP Server
Local-first MCP server for Claude Desktop that fetches, views, fills, signs, reorganizes, and extracts data from PDFs without uploading files to external services.
PDF Tools is an open-source MCP server, maintained by the Open Document Alliance, that brings PDF manipulation directly into Claude Desktop and other MCP hosts. It is designed to keep documents on the user's machine: files are read, written, and analyzed locally rather than being uploaded to a third party service. By default the server can read and write inside ~/Documents, ~/Downloads, and ~/Desktop, and additional folders can be allowed through Claude Desktop's "Allowed PDF Directories" setting.
The server exposes roughly 40 tools across five workflows: viewing and reading PDFs (display_pdf, read_pdf_content, render_pdf_page, search_pdf_text), form workflows with reusable profiles (read_pdf_fields, fill_pdf, bulk_fill_from_csv, save_profile, load_profile), signature handling (detect_signature_zones, create_signature, apply_signature), page management (merge_pdfs, split_pdf, rotate_pdf_pages, reorder_pdf_pages), and structured extraction (extract_to_csv, get_pdf_info, get_page_analysis).
PDF Tools is distributed as a Claude Desktop Extension (.mcpb bundle) for one-click install, and can also be wired into any other MCP host by pointing it at the Node server entry point. It is MIT-licensed and requires no API keys or external accounts.
Tools
| Tool | Description |
|---|---|
fetch_pdf_from_url |
Download a PDF from a URL into an allowed local directory. |
display_pdf |
Show a PDF inline so Claude can inspect it visually. |
list_pdfs |
List PDFs in allowed directories. |
read_pdf_content |
Extract full text content from a PDF. |
read_pdf_pages |
Read text from a specific page range. |
render_pdf_page |
Render a PDF page as an image for visual inspection. |
search_pdf_text |
Search for text within a PDF. |
read_pdf_fields |
Inspect all fillable form fields in a PDF. |
fill_pdf |
Fill and save a PDF with provided field values. |
bulk_fill_from_csv |
Generate many filled PDFs from a CSV of field values. |
save_profile |
Save a reusable set of field values as a named profile. |
load_profile |
Load a saved profile to reuse field values across forms. |
list_profiles |
List saved form-fill profiles. |
validate_pdf |
Validate PDF structure and form integrity. |
detect_signature_zones |
Detect likely signature zones in a document. |
add_signature_field |
Add a signature field at a given location. |
create_signature |
Create a reusable signature asset. |
list_signatures |
List saved signatures. |
apply_signature |
Apply a saved signature to a PDF. |
apply_text |
Apply text overlays such as dates or names to a PDF. |
merge_pdfs |
Merge multiple PDFs into one. |
split_pdf |
Split a PDF into multiple files. |
rotate_pdf_pages |
Rotate selected pages by 90, 180, or 270 degrees. |
reorder_pdf_pages |
Reorder pages within a PDF. |
apply_page_plan |
Apply a multi-step page reorganization plan in one call. |
extract_to_csv |
Extract structured data from a PDF into CSV. |
get_pdf_info |
Return PDF metadata such as page count, title, and author. |
get_page_analysis |
Analyze the layout and content of a specific page. |
Claude Desktop (recommended)
Download the latest .mcpb file from the project's GitHub Releases page and double-click it. Claude Desktop will install it as an extension. The extension also appears in Claude's built-in extension directory.
After install, open Claude Desktop settings and review the "Allowed PDF Directories" list. By default the server can access:
~/Documents~/Downloads~/Desktop
Add any additional folders you want Claude to read or write before invoking PDF tools on them.
Other MCP hosts (Cursor, Cline, Continue, etc.)
Clone the repo and point your MCP client at the Node server entry:
git clone https://github.com/Open-Document-Alliance/PDF-Tools.git
cd PDF-Tools
npm install
Then add the server to your MCP client config:
{
"mcpServers": {
"pdf-tools": {
"command": "node",
"args": ["/full/path/to/PDF-Tools/server/index.js"]
}
}
}
Prerequisites
- Node.js installed locally
- Claude Desktop (for the
.mcpbinstall path) or any MCP-compatible client - No API keys, accounts, or paid plans required
- Batch-fill recurring HR or tax forms by saving a reusable profile and re-applying it to new templates, or by bulk-filling many records from a CSV.
- Sign and date contracts locally: detect signature zones, apply a stored signature, and overlay the date without sending the document to a cloud signing service.
- Reorganize scanned documents by merging multiple PDFs, splitting a combined statement into per-month files, and rotating or reordering pages.
- Pull structured data out of invoices, statements, or reports into CSV for further analysis with
extract_to_csvandget_page_analysis. - Triage a PDF inbox: list PDFs in
~/Downloads, search across them for keywords, and surface the relevant pages as rendered images for review.
- "Fill out the W-9 in ~/Downloads using my 'Acme LLC' profile and save it as W-9-acme-signed.pdf."
- "Merge all invoices from ~/Documents/Invoices/2026/Q1 into one PDF and rotate any landscape pages back to portrait."
- "Detect signature zones in lease.pdf, apply my saved signature, and stamp today's date next to it."
- "Read the form fields in benefits-enrollment.pdf and bulk-fill it from employees.csv, one output per row."
- "Extract the line items from statement.pdf into a CSV with columns date, description, and amount."
- Local-first design keeps PDFs on the user's machine with a directory sandbox; no uploads, no API keys.
- Broad tool coverage across viewing, form filling, signing, page management, and extraction (40+ tools).
- Ships as a one-click Claude Desktop
.mcpbextension while also supporting any other MCP host via a standard Node command. - Reusable profiles and signatures make repetitive form workflows much faster.
- Tightly oriented around Claude Desktop's extension model; the cleanest install path assumes Claude Desktop users.
- Access is limited to directories explicitly allowed in settings, which can trip up users who store PDFs outside
~/Documents,~/Downloads, or~/Desktop. - README is concise and does not document every tool's parameter schema in detail, so some experimentation is needed.
- PDF.co MCP Server: cloud-backed PDF operations including OCR and advanced form handling via the PDF.co API.
- FormFill MCP: focused MCP server specifically for filling PDF forms from an AI agent.
- danielkennedy1/pdf-tools-mcp: Python-based MCP server for extracting text, snippets, and rendering PDF pages.