papyrio-mcp
papyrio-mcp exposes 12 PDF/Office/image/web tools that read and write local files while processing through the Papyrio API.
Compress PDFs with low/medium/high strength.
Merge 2–10 PDFs in order, or split every page into a ZIP.
Extract PDF text, or OCR scanned PDFs in supported languages.
Convert PDFs to editable Word documents or page JPGs in a ZIP.
Convert Word/PowerPoint/Excel files, images, or public webpages to PDF.
Encrypt PDFs with AES-256 or remove a known password.
Work with absolute local paths; outputs default to a
-papyriosuffix exceptwebpage_to_pdf, which requiresoutput_path.Inputs are limited to 50 MB and each call counts against the API quota.
papyrio-mcp
An MCP server for the Papyrio PDF API. Setup for Claude, Cursor and VS Code: papyrio.net/mcp. It lets an assistant compress, merge, OCR and convert PDFs on your own machine, reading and writing local files, so multi-step work does not mean uploading and downloading between every step.
OCR every scan in ~/invoices, merge them into one PDF, compress it under 5 MBis four tool calls the assistant makes by itself.
Install
Claude Desktop, one click

Download papyrio-mcp.mcpb and double-click it. Claude Desktop opens an install screen; leave the API key empty for the free guest tier or paste a RapidAPI key (see below). You can change it later under Settings, Extensions.
By hand, or any other client
Add this to your Claude Desktop config:
macOS ~/Library/Application Support/Claude/claude_desktop_config.json
Windows %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"papyrio": {
"command": "npx",
"args": ["-y", "papyrio-mcp"]
}
}
}Restart Claude Desktop. The tools appear under the connector icon.
Related MCP server: SmartPDF
API key
The server works without one, metered as ordinary free web traffic: three operations a day per IP address. Enough to see whether it is useful.
For real use, subscribe on RapidAPI and pass the key:
{
"mcpServers": {
"papyrio": {
"command": "npx",
"args": ["-y", "papyrio-mcp"],
"env": { "PAPYRIO_API_KEY": "your-rapidapi-key" }
}
}
}The free RapidAPI tier is 50 requests a month and needs no card.
Tools
Tool | Does | Writes |
| Shrinks a PDF, 30–80% on image-heavy files |
|
| Joins 2–10 PDFs in order |
|
| Separates every page into its own file |
|
| Returns the text layer as UTF-8 |
|
| Rebuilds the document as an editable .docx |
|
| Renders every page as a JPG |
|
| Adds a searchable text layer to a scan, up to 15 pages per call; |
|
| Word, PowerPoint or Excel to PDF |
|
| Wraps a JPG, PNG or WebP in a PDF page |
|
| Renders a public URL in a headless browser |
|
| Encrypts with AES-256 |
|
| Removes a password you already know |
|
Every tool takes absolute paths. output_path is optional and defaults to the
input name with a -papyrio suffix — except webpage_to_pdf, which has no
input file to derive a name from and so requires it.
Adding a tool
Add an entry to src/tools.ts. The MCP tool, its input schema and the HTTP
call are all generated from it.
Testing
npm run build
PAPYRIO_API_KEY=your-key node smoke.mjsDrives all twelve tools over the real MCP protocol against the live API and
checks the returned file's magic bytes, so a JSON error body named .pdf fails
rather than passes. Without a key it runs on the guest tier, where three
operations a day means most cases will hit rate_limit_exceeded.
Develop
npm install
npm run buildPoint your config at the local build while working on it:
{
"mcpServers": {
"papyrio": {
"command": "node",
"args": ["/absolute/path/to/mcp/dist/index.js"]
}
}
}Privacy: files are sent to the Papyrio API, processed in memory, and discarded when the response is sent. Nothing is stored.
Licence
MIT
Available Tools
12 toolscompress_pdfA
Shrink a PDF by downsampling its images. Image-heavy files lose 30-80% of their size; text stays selectable. Use this when a PDF is too large to email or upload. Already-optimized files come back unchanged rather than larger. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.
Inputs: file (required), level, output_path.
extract_pdf_textA
Return the text of a PDF as UTF-8, so it can be read or summarized. Fast and exact when the PDF already has a text layer. A scanned PDF has none — run ocr_pdf on it first. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.
Inputs: file (required), output_path.
image_to_pdfA
Wrap a JPG, PNG or WebP image in a PDF page. Use this when an image needs to be submitted or printed as a PDF. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.
Inputs: file (required), output_path.
merge_pdfsA
Combine 2 to 10 PDFs into one document, in the order given. Use this to join separate scans, chapters or invoices into a single file. Password-protected files must be unlocked first. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.
Inputs: files (required), output_path.
ocr_pdfA
Add an invisible text layer to a scanned PDF so its text can be searched, selected and extracted. Use this before extract_pdf_text or pdf_to_word on a scan or photographed document, and set lang when the text is not English. The page images are kept, so the output is about the same size as the input, and pages that already have text are left untouched. Takes roughly 2-10 seconds per page. Scans at 300 DPI or higher read well; below 150 DPI accuracy degrades badly. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.
Inputs: file (required), lang, output_path.
office_to_pdfA
Convert a Word (.doc, .docx, .odt), PowerPoint (.ppt, .pptx) or Excel (.xls, .xlsx) document to PDF with LibreOffice, keeping fonts, tables, images and page layout; each slide or sheet becomes one or more pages. Use this to turn an Office file into a fixed, shareable PDF, not for files that are already PDFs. Large presentations can take 30 seconds or more. Password-protected Office files are not supported. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.
Inputs: file (required), output_path.
pdf_to_jpgA
Render every page of a PDF as a JPG image, returned as a ZIP archive. Use this when the pages are needed as pictures, for a thumbnail, a slide or an image pipeline. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.
Inputs: file (required), output_path.
pdf_to_wordA
Convert a PDF into an editable Word document. PDFs exported from Word, Google Docs or InDesign come through well. A scanned PDF is a picture of a page, so run ocr_pdf on it first. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.
Inputs: file (required), output_path.
protect_pdfA
Encrypt a PDF with AES-256 so it cannot be opened without the password. Use this before sending a document that contains anything private. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.
Inputs: file (required), password (required), output_path.
split_pdfA
Separate every page of a PDF into its own file, returned as a ZIP archive. Use this to pull single pages out of a long document. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.
Inputs: file (required), output_path.
unlock_pdfA
Remove the password from a PDF you already know the password for. This decrypts with the supplied password; it does not break or guess encryption. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.
Inputs: file (required), password (required), output_path.
webpage_to_pdfA
Fetch a public URL and render the page to PDF in a headless browser. Use this to archive or print a web page. This tool takes a URL rather than a file, so output_path is required. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.
Inputs: url (required), output_path (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 12 tools
Each tool targets a distinct operation: conversion (pdf_to_jpg, pdf_to_word, office_to_pdf, image_to_pdf, webpage_to_pdf), manipulation (split, merge, compress), security (protect/unlock), and text (extract_pdf_text, ocr_pdf). The pair extract_pdf_text/ocr_pdf could seem close, but descriptions clearly explain OCR produces a text layer while extract retrieves existing text. No real overlap.
Most names follow a clear source_to_target or verb_noun convention (pdf_to_word, office_to_pdf, split_pdf, merge_pdfs). There are two styles mixed—conversion names use X_to_Y while manipulation names use verb_pdf—but both are readable and the pattern is semantically meaningful. Only ocr_pdf is an outlier.
12 tools is well within the ideal 3-15 range and each earns its place, covering conversion, manipulation, security and text extraction without redundancy. The count matches the scope of a focused PDF-utility API.
Core workflows are well covered: convert in/out, extract, OCR, split/merge, compress, protect/unlock. Minor gaps remain—no page rotation/reordering, no PDF-to-Excel/PPT, no watermarking or image extraction—but agents can work around these for most tasks.
Maintenance
Related MCP Connectors
Split, merge and compress PDF files locally - private by design, no uploads.
PDF tools: merge, split, compress, convert, OCR & more. OAuth with auto-registration or API key.
13 stateless PDF tools for AI agents: merge, split, rotate, compress, watermark, redact, flatten, repair, add page numbers and fill PDF forms. Files are processed in memory and nothing is stored. Part of FreeDailyPro's 211+ MCP tools; trial key with 20,000 calls/month at freedailypro.com/developers.
Convert PDFs/images to Word, Excel, and Markdown. Split, merge, and watermark PDF files.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to perform comprehensive PDF operations locally, including compression, text extraction, PII redaction, page organization, splitting, merging, watermarking, creation, and form filling, all without cloud uploads.13 npm-
- AlicenseNot gradedqualityCmaintenanceRemote MCP server exposing 24 PDF operations over Streamable HTTP that accept public file URLs up to 100 MB and return a download link, enabling conversion to and from PDF, compression, merging and splitting, OCR (including Russian), page manipulation, signing, watermarking, and password protection, plus balance checks. It also ships alongside an agent skill that lets file-on-disk workflows run against the same REST API.MIT
- FlicenseNot gradedqualityBmaintenanceCompress, merge, split, protect, convert, annotate and redact PDFs from any local MCP client. The server runs a bundled copy of the localipdf.com tools in a temporary browser profile on your machine, so your PDFs are not sent to a remote service.-
- AlicenseAqualityCmaintenanceEnables AI apps to edit PDFs on the local machine through natural language, merging, splitting, extracting, rotating, deleting, reordering and duplicating pages, plus inspecting page counts and encryption status. All work runs locally with no uploads, and every operation writes a new file beside the untouched original.8587 npmMIT