Rust-based Python MCP server for PDF creation, reading, manipulation, extraction, and encryption with local workspace sandboxing.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
The install command below didn't complete successfully in our automated test.
uvx --fromerror: a value is required for '--from <FROM>' but none was supplied For more information, try '--help'.
This is an experimental automated check and can have false negatives โ missing environment variables, a slow cold install, etc. It doesnโt necessarily mean somethingโs wrong. Last checked 1mo ago.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Oxidize Python.
read_pdfRead metadata โ page count, version, encryption status, title, author
extract_textExtract text from all pages or a specific page
convert_pdfConvert to markdown, chunks, or RAG-optimized format
create_pdfCreate a new PDF with optional metadata
save_pdfSave a session to disk, with optional encryption
add_contentAdd pages, text, and graphics to a session
Rust-powered PDF library for Python. Generate, parse, split, merge, and manipulate PDFs with native performance. Ships with a built-in MCP server so AI agents can work with PDFs out of the box.
No C dependencies. No Java. No subprocess calls.
Platforms: Linux (x86_64, aarch64) | macOS (x86_64, Apple Silicon) | Windows (x86_64) Requires: Python 3.10+
| oxidize-pdf | Pure-Python libs | C/Java wrappers | |
|---|---|---|---|
| Performance | Native (compiled Rust) | Interpreted | Native but heavy |
| Dependencies | Zero | Varies | Poppler, Java, Ghostscript |
| Memory safety | Rust ownership model | GC-dependent | Manual / GC |
| Type stubs | Full (mypy/pyright) | Partial | Rare |
| AI-ready (MCP) | Built-in | No | No |
Give your AI agent full PDF capabilities in one line:
The built-in Model Context Protocol server exposes 12 tools, 6 resources, and 5 prompts โ compatible with Claude, GPT, and any MCP client.
Add to your claude_desktop_config.json:
Copilot's agent mode speaks MCP. Add .vscode/mcp.json to your workspace:
Open the Chat view, switch to Agent mode, and the 12 PDF tools appear in
the tool picker. (The same block also works under the mcp.servers key in your
user settings.json if you prefer a global install.)
The OpenAI Agents SDK spawns the server over stdio and exposes its tools to an agent:
A runnable version is in examples/openai_agents_quickstart.py.
Both integrations run the server locally over stdio, so its tools operate on PDFs in the configured workspace directory. Remote/hosted use (e.g. the OpenAI Responses API hosted MCP tool) needs an HTTP transport and is not yet exposed.
| Tool | What it does |
|---|---|
read_pdf | Read metadata โ page count, version, encryption status, title, author |
extract_text | Extract text from all pages or a specific page |
convert_pdf | Convert to markdown, chunks, or RAG-optimized format |
create_pdf | Create a new PDF with optional metadata |
save_pdf | Save a session to disk, with optional encryption |
add_content | Add pages, text, and graphics to a session |
annotate_pdf | Add text annotations and highlights |
manipulate_pdf | Split, merge, rotate, extract pages, reverse, overlay |
manage_forms | Create, fill, read, and validate form fields |
secure_pdf | Encrypt, check permissions, verify signatures |
extract_entities | Extract structured entities from pages |
analyze_pdf | Validate structure, detect corruption, check PDF/A compliance |
The server also exposes resources (session data, capabilities, version info) and prompts (guided workflows for summarization, data extraction, form filling, and more).
The server is configured entirely through environment variables:
| Variable | Default | Purpose |
|---|---|---|
OXIDIZE_WORKSPACE | ~/Documents/oxidize-mcp | Sandbox root; all paths must resolve inside it. |
OXIDIZE_ALLOWED_PATHS | (none) | Comma-separated extra directories allowed outside the workspace. |
OXIDIZE_MAX_FILE_SIZE_MB | 100 | Reject input PDFs larger than this on disk. |
OXIDIZE_MAX_PAGES | 10000 | Reject documents with more pages than this before any extraction work. |
OXIDIZE_MAX_OUTPUT_BYTES | 10485760 | Cap the serialized size of a tool's JSON response (10 MB). |
OXIDIZE_MAX_SESSIONS | 10 | Maximum concurrent stateful PDF-creation sessions. |
OXIDIZE_MAX_SESSION_BYTES | 10485760 | Cap the content a single session may accumulate (10 MB). |
OXIDIZE_SESSION_TIMEOUT | 3600 | Session expiry, in seconds. |
Resource caps (OXIDIZE_MAX_*) protect the server from a large or malicious
PDF: oversized documents are rejected up front and tool responses are bounded
rather than serialized unbounded. Exceeding a cap returns an error with code
RESOURCE_LIMIT.
Or start programmatically:
Exception hierarchy: PdfError > PdfIoError, PdfParseError, PdfEncryptionError, PdfPermissionError
oxidize-pdf includes an MCP server that exposes PDF capabilities to AI assistants like Claude. Install with the mcp extra:
Add this to your claude_desktop_config.json:
Factual signals from GitHub, npm, and our automated checks โ not a rating.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/bzsanti-oxidize-python)<a href="https://allmcps.com/mcp/bzsanti-oxidize-python"><img src="https://allmcps.com/api/badge/bzsanti-oxidize-python?style=directory" alt="Oxidize Python on AllMCPs" /></a>