Compress, convert, merge, split and OCR PDFs from an assistant, using local files.
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 MB
is four tool calls the assistant makes by itself.
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.
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.
| Tool | Does | Writes |
|---|---|---|
compress_pdf | Shrinks a PDF, 30–80% on image-heavy files | .pdf |
merge_pdfs | Joins 2–10 PDFs in order | .pdf |
split_pdf | Separates every page into its own file | .zip |
extract_pdf_text | Returns the text layer as UTF-8 | .txt |
pdf_to_word | Rebuilds the document as an editable .docx | .docx |
pdf_to_jpg | Renders every page as a JPG | .zip |
ocr_pdf | Adds a searchable text layer to a scan | .pdf |
office_to_pdf | Word, PowerPoint or Excel to PDF | .pdf |
image_to_pdf | Wraps a JPG, PNG or WebP in a PDF page | .pdf |
webpage_to_pdf | Renders a public URL in a headless browser | .pdf |
protect_pdf | Encrypts with AES-256 | .pdf |
unlock_pdf | Removes a password you already know | .pdf |
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.
Add an entry to src/tools.ts. The MCP tool, its input schema and the HTTP
call are all generated from it.
npm run build
PAPYRIO_API_KEY=your-key node smoke.mjs
Drives 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.
npm install
npm run build
Point 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.
MIT
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y papyrio-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-atabekdemurtaza-papyrio-mcp": {
"command": "npx",
"args": [
"-y",
"papyrio-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencePapyrio PDF Tools works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.