Puter MCP
Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more
MCP server for PDF generation, parsing, splitting, merging, and manipulation via oxidize-pdf
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
3/3 Prüfungen bestanden · Läuft auf deinem Computer · ✓ Befehle geprüft am 13. Nov. 2026
Zuerst: Welche KI nutzt du?
Wähle deine App, dann erscheinen die Schritte unten.
Klappt mit Claude, aber erst etwas vorbereiten
Installiere zuerst Python (uv) auf deinem Computer (nur einmal) · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy
Nur einmal; gilt für alle Server, die Python (uv) brauchen
SettingsDeveloperEdit Config
{
"mcpServers": {
"oxidize-pdf": {
"command": "uvx",
"args": [
"oxidize-pdf",
"oxidize-mcp"
]
}
}
}Nutze oxidize-pdf MCP Server und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Claude sagt, dass es oxidize-pdf MCP Server nutzt, oder ein Werkzeug von oxidize-pdf MCP Server in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
ChatGPT kann oxidize-pdf MCP Server noch nicht verbinden
oxidize-pdf MCP Server läuft auf deinem Computer, aber ChatGPT verbindet nur Server, die im Web laufen
A · Eine App nutzen, die oxidize-pdf MCP Server verbinden kann
Klappt mit Claude Code, aber erst etwas vorbereiten
Installiere zuerst Python (uv) auf deinem Computer (nur einmal)
Nur einmal; gilt für alle Server, die Python (uv) brauchen
Mac: Command+Leertaste drücken und Terminal tippen · Windows: PowerShell öffnen
claude mcp add --scope user oxidize-pdf -- uvx oxidize-pdf oxidize-mcpoxidize-pdf MCP Server sollte in der Liste als verbunden erscheinen
Nutze oxidize-pdf MCP Server und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Claude Code sagt, dass es oxidize-pdf MCP Server nutzt, oder ein Werkzeug von oxidize-pdf MCP Server in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Klappt mit Cursor, aber erst etwas vorbereiten
Installiere zuerst Python (uv) auf deinem Computer (nur einmal)
Nur einmal; gilt für alle Server, die Python (uv) brauchen
Nutze oxidize-pdf MCP Server und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Cursor sagt, dass es oxidize-pdf MCP Server nutzt, oder ein Werkzeug von oxidize-pdf MCP Server in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von Cursor abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Klappt mit VS Code, aber erst etwas vorbereiten
Installiere zuerst Python (uv) auf deinem Computer (nur einmal)
Nur einmal; gilt für alle Server, die Python (uv) brauchen
VS Code fragt nach einer Bestätigung; klicke Install
Nutze oxidize-pdf MCP Server und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn VS Code sagt, dass es oxidize-pdf MCP Server nutzt, oder ein Werkzeug von oxidize-pdf MCP Server in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von VS Code abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Andere Apps mit MCP, etwa Windsurf, Zed oder Gemini CLI, fügen Server unterschiedlich hinzu. Sieh in der App-Liste nach
JSON-Einstellungen stehen unten unter „Für Entwickler“
Claude Code
claude mcp add --scope user oxidize-pdf -- uvx oxidize-pdf oxidize-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"oxidize-pdf": {
"command": "uvx",
"args": [
"oxidize-pdf",
"oxidize-mcp"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"oxidize-pdf": {
"command": "uvx",
"args": [
"oxidize-pdf",
"oxidize-mcp"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"oxidize-pdf": {
"type": "stdio",
"command": "uvx",
"args": [
"oxidize-pdf",
"oxidize-mcp"
]
}
}
}Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Basierend darauf, wie sich dieser Server verbindet, und auf der eigenen Doku jeder App, geprüft am 10. Nov. 2026.
Laufen auf deinem Computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 13. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto bzsanti bestätigt, dem das Repo gehört
Code zuletzt geändert: vor 10 Tagen
Nutzt MIT
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Fragen, Tipps teilen oder melden, dass etwas nicht geht. Sortiert nach „hilfreich“.
Noch keine Beiträge. Stell die erste Frage oder teile einen Tipp.
Beiträge hier stammen von Nutzern, nicht vom PopNx-Team.
Noch keine Bewertungen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 3 von 3 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt vor 10 Tagen geändert, und die neueste Version (0.23.0) kam vor 18 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.
In derselben Kategorie: Puter MCP, XcodeBuildMCP, XcodeBuildMCP
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
Documentation · Context7 · Documentation publishing and indexing
Version 0.23.4 pins Rust core 5.5.6. See compatibility and validation.
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.
pip install oxidize-pdf # Core library
pip install "oxidize-pdf[mcp]" # + MCP server for AI agents
Platforms: Linux (x86_64, aarch64) | macOS (x86_64, Apple Silicon) | Windows (x86_64) Requires: Python 3.10+
Version 0.23.4 pins Rust core 5.5.6, using the MIT-licensed oxidize-webpki RustCrypto provider for certificate verification. See the dependency policy for supported builds and limits. 0.23.4 release notes describe the signed-field permission fixes. New APIs include explicit text recovery, non-breaking-space normalization, build identification controls and incremental signature slots. See the API guide and validation.
The current develop branch contains post-release parity work. See the current capability inventory and Python/.NET comparison for the audited subset, missing bindings and inherited core limitations. Neither the core version nor the type stubs establish full functional parity; no global coverage percentage is claimed.
| 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 | Public API inventory + strict mypy checks on develop | Varies | Varies |
| AI-ready (MCP) | Built-in | No | No |
Expose the supported PDF tools to your AI agent:
oxidize-mcp
The built-in Model Context Protocol server exposes 12 tools, 5 static resources plus a session resource template, and 5 prompts over stdio. Install oxidize-pdf[mcp] to include its dependencies; the base library keeps MCP optional.
Version 0.20 uses FastMCP 4 and MCP Python SDK 2, with support for both modern and legacy stdio clients. See the migration guide for versions and installation routes.
If tools/list returns an empty array with an older installation (issue #198), upgrade to 0.20.0 or newer. These versions fix tool registration when starting server.py directly. On Windows, use the same Python environment for installation and startup:
python -m pip install --upgrade "oxidize-pdf[mcp]"
python -m oxidize_pdf.mcp.server
For a custom JSON-RPC client, send initialize, wait for its response, then send notifications/initialized before tools/list. Read newline-delimited JSON-RPC from stdout and keep stderr separate; the startup banner is written to stderr.
Add to your claude_desktop_config.json:
{
"mcpServers": { "oxidize-pdf": { "command": "oxidize-mcp", "env": { "OXIDIZE_WORKSPACE": "/path/to/your/pdfs" } } } }
Copilot's agent mode speaks MCP. Add .vscode/mcp.json to your workspace:
{
"servers": { "oxidize-pdf": { "command": "oxidize-mcp", "env": { "OXIDIZE_WORKSPACE": "/path/to/your/pdfs" } } } }
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:
from agents import Agent, Runner
from agents.mcp import MCPServerStdio
async with MCPServerStdio( params={"command": "oxidize-mcp", "env": {"OXIDIZE_WORKSPACE": "/path/to/your/pdfs"}}, cache_tools_list=True, ) as server: agent = Agent( name="PDF assistant", instructions="Use the oxidize-pdf tools to inspect and manipulate PDFs.", mcp_servers=[server], ) result = await Runner.run(agent, "How many pages does report.pdf have?") print(result.final_output)
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. This package does not expose
a hosted HTTP endpoint. ChatGPT web needs a remote connection; developer-mode
testing can also use Secure MCP Tunnel
with a local stdio server. No ChatGPT plugin is published by this migration.
| 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).
OXIDIZE_WORKSPACE=/path/to/pdfs oxidize-mcp
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:
from oxidize_pdf.mcp.server import run
run()
from oxidize_pdf import Document, Page, Font, Color
doc = Document() doc.set_title("My Document") doc.set_author("Jane Doe")
page = Page.a4() page.set_font(Font.HELVETICA, 24.0) page.set_text_color(Color.black()) page.text_at(72.0, 750.0, "Hello from oxidize-pdf!")
page.set_font(Font.TIMES_ROMAN, 12.0) page.text_at(72.0, 700.0, "Generated with Python + Rust.")
doc.add_page(page) doc.save("output.pdf")
from oxidize_pdf import PdfReader
reader = PdfReader.open("document.pdf") print(f"Pages: {reader.page_count}, Version: {reader.version}")
for i, text in enumerate(reader.extract_text()): print(f"--- Page {i + 1} ---") print(text)
from pathlib import Path
from oxidize_pdf import TaggedPdfLimits, TaggedPdfValidationOptions, validate_tagged_pdf
report = validate_tagged_pdf( Path("input.pdf").read_bytes(), TaggedPdfValidationOptions(TaggedPdfLimits(max_depth=64)), ) for finding in report.findings: print(finding.severity, finding.code, finding.path, finding.message)
The report includes structure elements, artifacts, role/class maps, the parent number tree and content MCIDs. Original dictionary values remain typed PdfValue objects, including unknown attributes and reference generations. Results are immutable snapshots; returned lists and dictionaries are owned copies.
valid means the core validator found no error-level findings. It is not a PDF/UA certificate: an untagged PDF can have tagged=False, valid=True and a MissingStructureTree warning. Malformed input raises PdfParseError, locked input raises PdfEncryptionError, and exceeded validation budgets raise PdfError.
TaggedPdfLimits bounds visited objects, traversal depth, entries and decoded content bytes (defaults: 100,000; 256; 1,000,000; 256 MiB). These are core validator budgets, not a process memory or time limit: input copying and initial PDF parsing occur before traversal. No PDF bytes are modified.
from oxidize_pdf import split_pdf, merge_pdfs, rotate_pdf, extract_pages
split_pdf("input.pdf", "output_dir/") # Split into individual pages merge_pdfs(["part1.pdf", "part2.pdf"], "merged.pdf") # Merge multiple PDFs rotate_pdf("input.pdf", "rotated.pdf", 90) # Rotate all pages extract_pages("input.pdf", "subset.pdf", [0, 2, 4]) # Extract specific pages
from oxidize_pdf import Document, Page, Color
doc = Document() page = Page.a4()
page.set_fill_color(Color.hex("#3498db")) page.draw_rect(72.0, 700.0, 200.0, 100.0) page.fill()
page.set_stroke_color(Color.red()) page.set_line_width(2.0) page.draw_circle(300.0, 500.0, 50.0) page.stroke()
doc.add_page(page) doc.save("graphics.pdf")
from oxidize_pdf import Color, Point, Rectangle, Margins, Font
Color.rgb(1.0, 0.0, 0.0) # RGB Color.hex("#ff6600") # Hex Color.cmyk(0.0, 1.0, 1.0, 0.0) # CMYK
Point(72.0, 720.0) Rectangle.from_xywh(72.0, 72.0, 468.0, 648.0) Margins.uniform(72.0)
Font.HELVETICA # Font.HELVETICA_BOLD Font.TIMES_ROMAN # Font.TIMES_BOLD Font.COURIER