pdfcompress-mcp
PDFCompress
PDFCompress es un compresor de PDF de código abierto que preserva la estructura, pensado para humanos y agentes de IA. Utiliza ajustes preestablecidos de imagen estilo WPS verificados de forma independiente, pero no llama ni distribuye DLL de WPS y no depende de una cuenta de WPS.
Su regla principal es simple:
Mantener el texto y los vectores como texto y vectores; reducir la resolución solo de las imágenes pintadas sobredimensionadas; verificar el resultado antes de publicarlo.
Características
Calcula la resolución de la imagen a partir de la matriz de transformación real del PDF, incluidas las imágenes anidadas en Form XObjects.
Aplica los ajustes
high,standard,mediumylowcompatibles con WPS.Añade un perfil
archive-safepara adjuntos de premios, licitaciones y archivos.Conserva el archivo fuente y escribe atómicamente en una ruta de salida diferente.
Preserva marcadores, adjuntos, anotaciones, fuentes y la estructura visible del PDF por defecto.
Rechaza PDF firmados a menos que se acepte explícitamente la invalidación de la firma.
Verifica el número de páginas, los cuadros de página y el texto extraíble después de cada candidato.
Admite un tamaño objetivo sin recompimir repetidamente el resultado JPEG anterior.
Proporciona una API de Python, CLI, Skill de agente compartida, plugin de Codex, plugin de Claude Code y servidor MCP.
Related MCP server: MokuPDF
Instalación
Se requiere Python 3.11 o superior.
git clone https://github.com/ncepuee/PDFCompress.git
cd PDFCompress
python -m pip install -e ".[mcp]"Con uv:
uv tool install --editable ".[mcp]"Instalar la versión etiquetada de GitHub sin clonar:
uv tool install "pdfcompress-agent[mcp] @ git+https://github.com/ncepuee/PDFCompress.git@v0.1.0"Inicio rápido
Analizar antes de comprimir:
pdfcompress analyze "input.pdf" --jsonComprimir usando el perfil de alta calidad compatible con WPS:
pdfcompress compress "input.pdf" "output.pdf" --preset high --jsonPara un adjunto formal que debe ser inferior a 4 MB:
pdfcompress compress "input.pdf" "output.pdf" `
--preset archive-safe `
--target-size-mb 4 `
--jsonVerificar un par existente:
pdfcompress verify "input.pdf" "output.pdf" --jsonPreajustes
Preajuste | PPI de activación | PPI objetivo | Calidad JPEG | Uso previsto |
| 360 | 300 | 85 | Adjuntos formales y de archivo conservadores |
| 300 | 300 | 75 | Alta calidad compatible con WPS |
| 150 | 150 | 75 | Calidad estándar compatible con WPS |
| 110 | 110 | 50 | Calidad media compatible con WPS |
| 96 | 96 | 30 | Calidad baja compatible con WPS |
Los cuatro valores compatibles con WPS se recuperaron de las ramas generateCompressArgs del plugin de compresión instalado y se documentaron de forma independiente en la nota de análisis adjunta. El kernel de remuestreo exacto de WPS, la política de submuestreo de croma y la máscara de bits completa del optimizador no se copian ni se reivindican.
Comportamiento del tamaño objetivo
Cuando se proporciona --target-size-mb, PDFCompress prueba perfiles progresivamente más fuertes comenzando por el preajuste solicitado. Cada intento reabre el PDF original:
archive-safe → high → standard → medium → lowSe selecciona el primer candidato verificado por debajo del límite. Si ningún perfil alcanza el límite, se devuelve el candidato verificado más pequeño con una advertencia. PDFCompress no rasteriza páginas silenciosamente, no elimina fuentes ni quita adjuntos para forzar el objetivo.
Integración con agentes
Claude Code
Instale primero el paquete de Python y luego cargue el plugin para una sesión:
cd PDFCompress
claude --plugin-dir .Invoque la skill como /pdfcompress:pdf-compress, o pida a Claude que comprima un PDF. Claude Code también carga el .mcp.json del plugin e inicia pdfcompress-mcp sobre stdio.
Codex
El repositorio contiene un .codex-plugin/plugin.json validado, un directorio compartido skills/ y .mcp.json. Se puede instalar desde un marketplace local de Codex, o la skill se puede copiar a un directorio de skills personal o de proyecto. El paquete principal debe estar instalado para que pdfcompress-mcp esté en PATH.
Clientes MCP genéricos
Use esta configuración stdio:
{
"mcpServers": {
"pdfcompress": {
"type": "stdio",
"command": "pdfcompress-mcp",
"args": []
}
}
}Herramientas MCP:
analyze_pdf(path, password?)compress_pdf(input_path, output_path, preset?, target_size_mb?, overwrite?, allow_signature_loss?)verify_pdf(input_path, output_path)
Investigación de código abierto e ideas adoptadas
Proyecto | Fortaleza | Lo que PDFCompress adopta |
Transformaciones y reparación de PDF maduras que preservan el contenido | Análisis fiable, escritura de flujos de objetos y preservación estructural a través de pikepdf | |
API de Python sobre qpdf | Modelo de objetos central, decodificación de imágenes, limpieza de recursos y pipeline de guardado | |
CLI de lotes independiente y comandos de validación amplios | Subcomandos aptos para scripts e informes JSON | |
Procesamiento por etapas seguro y flujos de trabajo conscientes de PDF/A | Candidatos temporales, verificación final y publicación atómica | |
Controles efectivos de reducción de resolución de imágenes | PPI de activación, PPI objetivo y preajustes de calidad separados; no incluido por límite de licencia | |
Recolección de basura multinivel y reutilización de flujos duplicados | La limpieza agresiva se trata como una etapa separada y comprobable; no incluido | |
Optimización de archivos más pequeños en múltiples etapas | Comparar candidatos y seleccionar la salida verificada más pequeña |
Consulte THIRD_PARTY_NOTICES.md para conocer los límites de licencia.
Seguridad y limitaciones
Reescribir un PDF invalida las firmas digitales. El valor predeterminado es detenerse.
Los PDF cifrados requieren una contraseña; el cifrado se conserva en la salida.
La versión 0.1 omite máscaras de imagen, transparencia, matrices de decodificación personalizadas, espacios de color inusuales e imágenes que no sean de 8 bits, en lugar de arriesgarse a una corrupción visual.
Las comprobaciones de igualdad de texto utilizan texto extraíble. Las páginas escaneadas sin OCR aún requieren revisión visual.
Se recomienda la comparación de renderizado a nivel de píxel antes de usar la herramienta en documentos legalmente significativos o altamente complejos.
Si un candidato no es más pequeño que el original, PDFCompress genera una copia byte a byte del original e informa que no se encontró una reducción de tamaño segura.
Ejemplo validado
En un PDF de 12 páginas con muchas imágenes utilizado durante el desarrollo:
Perfil | Origen | Salida | Reducción | Verificación |
| 24,004,483 B | 3,149,368 B | 86.88% | Páginas, cuadros y texto extraído iguales |
| 24,004,483 B | 2,940,952 B | 87.75% | Páginas, cuadros y texto extraído iguales |
En la comparación de renderizado a 100 DPI, todas las dimensiones de página coincidieron; el resultado archive-safe tuvo una diferencia RMS media por página de 0.388 y un máximo de 3.002 en una escala de canal de 0–255. Este es un caso de validación, no una garantía universal de calidad.
Desarrollo
python -m pip install -e ".[mcp,dev]"
pytest
ruff check .Las pruebas generan su propio PDF con texto buscable y una imagen de alta resolución. No se incluyen documentos privados en el repositorio.
Licencia
PDFCompress se publica bajo la Licencia MIT. Las dependencias de terceros conservan sus propias licencias.
Consulte el registro de cambios y los lanzamientos de GitHub para ver los cambios versionados y los paquetes de Python descargables.
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