Technology3 min read

PaperPilot – Zero-Cloud, Pure-Rust PDF Engine with WASM and MCP

By · Published by Everything Blog

In short

PaperPilot is a zero-Cloud, pure-Rust PDF engine that supports multiple surfaces including MCP, CLI, browser (WASM), and desktop app, ensuring no files leave your system. It is optimized for performance and security with features like watermarking, signature validation, and deep sanitization, and is built on Rust libraries like lopdf, pdf_oxide, rten, and others. It is small, dependency-light, and agent-ready with MCP support as a first-class feature, available for download and integration into Claude Desktop, Claude Cursor, or any MCP client.

Key points

  • It supports multiple surfaces including MCP, CLI, browser (WASM), and desktop app.: It supports multiple surfaces including MCP, CLI, browser (WASM), and desktop app.
  • It is small, dependency-light, and built on Rust libraries.: It is small, dependency-light, and built on Rust libraries.
  • It is available for download and integration into Claude Desktop, Claude Cursor, or any M…: It is available for download and integration into Claude Desktop, Claude Cursor, or any MCP client.

Sources checked by our analysis pipeline: 1

PDF tools for your AI agent — and for you. Pure Rust. Runs locally. Files never leave your machine.

Try it in your browser → · Download · Roadmap

PaperPilot is a PDF and document toolkit written in Rust. The same engine runs as:

Surface | Use it for |

---|---|

MCP server | Give Claude Desktop, Cursor, or any MCP client the ability to merge, split, OCR, and compress PDFs |

CLI | Batch and scripted workflows |

Browser (WASM) | Zero-install tools; files are processed in browser memory, nothing is uploaded |

Desktop app | Tauri + Svelte GUI with viewer, markup, and diff |

Local REST API | Call it from Python, Node, or n8n at localhost:7823 |

No Chromium, no C++ runtime, no cloud calls.

Download paperpilot-mcp

from Releases, then add it to claude_desktop_config.json

:

{

"mcpServers": {

"paperpilot": {

"command": "/path/to/paperpilot-mcp"

}

}

}

Restart Claude and try: "Merge these two PDFs and compress the result."

# Merge

paperpilot merge --inputs doc1.pdf doc2.pdf --output merged.pdf

# Compress

paperpilot compress --input in.pdf --quality 75 --output compressed.pdf

# Rotate pages 1, 3–5 by 90°

paperpilot rotate --input in.pdf --pages 1,3-5 --angle 90 --output out.pdf

Go to usepaperpilot.com. Open your browser's Network tab while you work — you'll see no file uploads.

git clone https://github.com/KrushnaVardhanReddy/PaperPilot.git

cd PaperPilot

cargo build --release -p paperpilot-cli -p paperpilot-mcp -p paperpilot-gateway

Desktop app:

cd apps/desktop && pnpm install && pnpm tauri dev

Requires Rust 1.75+, Node.js, and pnpm.

Organize: merge, split, rotate, delete pages, reorder pages, extract pages, booklet imposition, N-up grid

Optimize: compress

Extract: plain text, OCR (pure-Rust PaddleOCR via rten

)

Security: watermark, validate signatures, remove signatures, PII scan, deep sanitize

Office data: Excel → JSON, Excel → CSV

Coming next (see ROADMAP.md):

- v0.7: PDF ↔ Markdown / HTML / JSON

- v0.8: PDF → Word / Excel / PowerPoint

- v0.9: encrypt, decrypt, sign, redact, forms, annotations

- v1.0: render, flatten, repair, compare, PDF/A, Bates numbering

- Private by default. Everything runs locally or in your browser tab.

- Agent-ready. MCP support is first-class, not an afterthought.

- One engine, many surfaces. CLI, MCP, REST, WASM, and desktop share the same Rust core, so behavior is consistent.

- Small and dependency-light. Pure Rust, built on

lopdf

,pdf_oxide

,rten

, and friends.

Run cargo bench --workspace

to reproduce. Methodology and results: SYSTEM_BENCHMARK_REPORT.md.

Desktop (Tauri) · CLI · REST (Axum) · MCP (stdio) · WASM (browser / edge)

│

Rust core workspace

paperpilot-core · paperpilot-pdf · paperpilot-nlp · paperpilot-gateway

paperpilot-mcp · paperpilot-wasm · paperpilot-storage

<script src="https://cdn.usepaperpilot.com/embed.js" data-tools="merge,compress,ocr"></script>

<div id="paperpilot-widget"></div>

paperpilot serve --port 7823

curl -X POST http://localhost:7823/api/v1/pdf/merge \

-H "Content-Type: application/json" \

-d '{"inputs": ["a.pdf", "b.pdf"], "output": "out.pdf"}'

Swagger docs at http://localhost:7823/docs

.

Issues and PRs are welcome. Good first contributions: bug reports with a sample PDF, new tool requests, and docs fixes.

Community Edition (this repo): Apache 2.0. It includes the CLI, MCP server, REST gateway, WASM engine, and desktop app.

An Enterprise Edition (SSO, RBAC, audit logs, DLP) is developed separately.

Original source: github.com

Technology