pdfcompress-mcp
PDFCompress
PDFCompress ist ein quelloffener, strukturerhaltender PDF-Kompressor für Menschen und KI-Agenten. Es verwendet unabhängig verifizierte WPS-ähnliche Bildvoreinstellungen, ruft jedoch keine WPS-DLLs auf, vertreibt sie nicht und ist nicht von einem WPS-Konto abhängig.
Seine Kernregel ist einfach:
Text und Vektoren bleiben Text und Vektoren; nur überdimensionierte gerasterte Bilder werden heruntergerechnet; das Ergebnis wird vor der Veröffentlichung verifiziert.
Funktionen
Berechnet die Bildauflösung aus der tatsächlichen PDF-Transformationsmatrix, einschließlich Bildern, die in Form-XObjects verschachtelt sind.
Wendet WPS-kompatible Einstellungen
high,standard,mediumundlowan.Fügt ein
archive-safe-Profil für Preis-, Ausschreibungs- und Archiv-Anhänge hinzu.Erhält die Quelldatei und schreibt atomar in einen anderen Ausgabepfad.
Erhält standardmäßig Lesezeichen, Anhänge, Annotationen, Schriften und die sichtbare PDF-Struktur.
Lehnt signierte PDFs ab, es sei denn, die Ungültigmachung der Signatur wird ausdrücklich akzeptiert.
Verifiziert Seitenzahl, Seitenboxen und extrahierbaren Text nach jedem Kandidaten.
Unterstützt eine Zielgröße, ohne das vorherige JPEG-Ergebnis wiederholt neu zu komprimieren.
Bietet eine Python-API, CLI, gemeinsame Agent-Skill, Codex-Plugin, Claude-Code-Plugin und MCP-Server.
Related MCP server: MokuPDF
Installation
Python 3.11 oder neuer ist erforderlich.
git clone https://github.com/ncepuee/PDFCompress.git
cd PDFCompress
python -m pip install -e ".[mcp]"Mit uv:
uv tool install --editable ".[mcp]"Installieren Sie das getaggte GitHub-Release ohne Klonen:
uv tool install "pdfcompress-agent[mcp] @ git+https://github.com/ncepuee/PDFCompress.git@v0.1.0"Schnellstart
Vor dem Komprimieren analysieren:
pdfcompress analyze "input.pdf" --jsonMit dem WPS-kompatiblen High-Quality-Profil komprimieren:
pdfcompress compress "input.pdf" "output.pdf" --preset high --jsonFür einen formellen Anhang, der unter 4 MB liegen muss:
pdfcompress compress "input.pdf" "output.pdf" `
--preset archive-safe `
--target-size-mb 4 `
--jsonEin vorhandenes Paar verifizieren:
pdfcompress verify "input.pdf" "output.pdf" --jsonVoreinstellungen
Voreinstellung | Trigger-PPI | Ziel-PPI | JPEG-Qualität | Verwendungszweck |
| 360 | 300 | 85 | Konservative formelle und Archiv-Anhänge |
| 300 | 300 | 75 | WPS-kompatible hohe Qualität |
| 150 | 150 | 75 | WPS-kompatible Standardqualität |
| 110 | 110 | 50 | WPS-kompatible mittlere Qualität |
| 96 | 96 | 30 | WPS-kompatible niedrige Qualität |
Die vier WPS-kompatiblen Werte wurden aus den generateCompressArgs-Zweigen des installierten
Komprimierungs-Plugins rekonstruiert und in der begleitenden Analyse-Notiz unabhängig dokumentiert.
Der exakte WPS-Resampling-Kernel, die Chroma-Subsampling-Richtlinie und die vollständige
Optimierer-Bitmaske werden weder kopiert noch beansprucht.
Verhalten bei Zielgröße
Wenn --target-size-mb angegeben wird, versucht PDFCompress progressiv stärkere Profile, beginnend
mit der angeforderten Voreinstellung. Jeder Versuch öffnet die ursprüngliche PDF erneut:
archive-safe → high → standard → medium → lowDer erste verifizierte Kandidat unter dem Limit wird ausgewählt. Wenn kein Profil das Limit erreicht, wird der kleinste verifizierte Kandidat mit einer Warnung zurückgegeben. PDFCompress rasiert nicht stillschweigend Seiten, löscht Schriften oder entfernt Anhänge, um das Ziel zu erzwingen.
Agent-Integration
Claude Code
Installieren Sie zuerst das Python-Paket, dann laden Sie das Plugin für eine Sitzung:
cd PDFCompress
claude --plugin-dir .Rufen Sie die Skill als /pdfcompress:pdf-compress auf oder bitten Sie Claude, eine PDF zu
komprimieren. Claude Code lädt auch die .mcp.json des Plugins und startet pdfcompress-mcp über
stdio.
Codex
Das Repository enthält ein validiertes .codex-plugin/plugin.json, ein gemeinsames skills/-Verzeichnis
und .mcp.json. Es kann aus einem lokalen Codex-Marketplace installiert werden, oder die Skill kann in
ein persönliches/Projekt-Skill-Verzeichnis kopiert werden. Das Kernpaket muss installiert sein, damit
pdfcompress-mcp im PATH liegt.
Generische MCP-Clients
Verwenden Sie diese stdio-Konfiguration:
{
"mcpServers": {
"pdfcompress": {
"type": "stdio",
"command": "pdfcompress-mcp",
"args": []
}
}
}MCP-Werkzeuge:
analyze_pdf(path, password?)compress_pdf(input_path, output_path, preset?, target_size_mb?, overwrite?, allow_signature_loss?)verify_pdf(input_path, output_path)
Open-Source-Forschung und übernommene Ideen
Projekt | Stärke | Was PDFCompress übernimmt |
Ausgereifte inhaltserhaltende PDF-Transformationen und Reparatur | Zuverlässiges Parsen, Objektstrom-Schreiben und strukturelle Erhaltung durch pikepdf | |
Python-API über qpdf | Kernobjektmodell, Bilddekodierung, Ressourcenbereinigung und Speicher-Pipeline | |
Eigenständige Batch-CLI und umfassende Validierungsbefehle | Skriptfreundliche Unterbefehle und JSON-Berichte | |
Sichere stufenweise Verarbeitung und PDF/A-bewusste Arbeitsabläufe | Temporäre Kandidaten, endgültige Verifizierung und atomare Veröffentlichung | |
Effektive Bild-Downsampling-Steuerungen | Getrennte Trigger-PPI, Ziel-PPI und Qualitätsvoreinstellungen; nicht gebündelt wegen Lizenzgrenze | |
Mehrstufige Garbage-Collection und Wiederverwendung doppelter Streams | Aggressive Bereinigung wird als separate, testbare Stufe behandelt; nicht gebündelt | |
Mehrstufige Optimierung auf kleinste Datei | Kandidaten vergleichen und das kleinste verifizierte Ergebnis auswählen |
Siehe THIRD_PARTY_NOTICES.md für Lizenzgrenzen.
Sicherheit und Einschränkungen
Das Umschreiben einer PDF macht digitale Signaturen ungültig. Standardmäßig wird gestoppt.
Verschlüsselte PDFs erfordern ein Passwort; die Verschlüsselung bleibt bei der Ausgabe erhalten.
Version 0.1 überspringt Bildmasken, Transparenz, benutzerdefinierte Decode-Arrays, ungewöhnliche Farbräume und Nicht-8-Bit-Bilder, anstatt eine visuelle Beeinträchtigung zu riskieren.
Textgleichheitsprüfungen verwenden extrahierbaren Text. Gescannte Seiten ohne OCR erfordern weiterhin eine visuelle Qualitätskontrolle.
Ein Pixel-Render-Vergleich wird empfohlen, bevor das Werkzeug für rechtlich bedeutsame oder sehr komplexe Dokumente verwendet wird.
Wenn ein Kandidat nicht kleiner als die Quelle ist, gibt PDFCompress eine bytegenaue Kopie der Quelle aus und meldet, dass keine sichere Größenreduzierung gefunden wurde.
Validierter Beispiel
Auf einer 12-seitigen, bildintensiven PDF, die während der Entwicklung verwendet wurde:
Profil | Quelle | Ausgabe | Reduktion | Verifizierung |
| 24,004,483 B | 3,149,368 B | 86.88% | Seiten, Boxen und extrahierter Text gleich |
| 24,004,483 B | 2,940,952 B | 87.75% | Seiten, Boxen und extrahierter Text gleich |
Bei einem Render-Vergleich mit 100 DPI stimmten alle Seitenabmessungen überein; das archive-safe-Ergebnis
hatte eine mittlere RGB-RMS-Differenz pro Seite von 0,388 und ein Maximum von 3,002 auf einer 0–255-Kanalskala.
Dies ist ein Validierungsfall, keine universelle Qualitätsgarantie.
Entwicklung
python -m pip install -e ".[mcp,dev]"
pytest
ruff check .Tests erzeugen ihre eigene PDF mit durchsuchbarem Text und einem hochauflösenden Bild. Es sind keine privaten Dokumente im Repository enthalten.
Lizenz
PDFCompress wird unter der MIT-Lizenz veröffentlicht. Drittanbieter-Abhängigkeiten behalten ihre eigenen Lizenzen.
Siehe das Änderungsprotokoll und die GitHub-Releases für versionierte Änderungen und herunterladbare Python-Pakete.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents and users to process documents through natural language, supporting PDF operations like text extraction, redaction, splitting, form filling, annotations, and content search.1161MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI applications to read and process PDF files with intelligent file search, text extraction, image processing, and optional OCR support for scanned documents.MIT
- FlicenseAqualityCmaintenanceEnables AI agents to efficiently process large local and online PDFs through selective extraction of text, images, and metadata. It provides tools for content search and document outline navigation to optimize context window usage.714
- AlicenseNot gradedqualityBmaintenancePrivacy-first file tools for AI agents, enabling operations like PDF merge/split, image compression/convert, metadata stripping, and background removal without storing files.46MIT
Related MCP Connectors
PDF accessibility checks (veraPDF PDF/UA-1), auto-fix and Markdown conversion. EU-hosted.
Turn any PDF into structured JSON via AI + OCR: invoices, bank statements, contracts.
Upload, edit, compress, protect, redact, and compare PDFs with KDAN PDF in Claude and ChatGPT.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ncepuee/PDFCompress'
If you have feedback or need assistance with the MCP directory API, please join our Discord server