PDF Splitter

Proporciona acceso aleatorio al contenido de PDF, permitiendo la extracción selectiva de páginas y contenido para reducir los costos de lectura.

Documentación

Servidor MCP de PDF Splitter

Un servidor de Model Context Protocol (MCP) que proporciona acceso aleatorio a contenidos de PDF, reduciendo los costos totales de lectura al permitir la extracción selectiva de páginas y contenido.

Requisitos previos

Instalar Bun (requerido para todos los métodos de instalación):

# Linux/macOS
curl -fsSL https://bun.sh/install | bash

# Windows
powershell -c "irm bun.sh/install.ps1 | iex"

Inicio rápido: ¡Instalación con un solo comando!

Para Claude Code:

bunx espresso3389/pdf-splitter-mcp install claudecode

Para Gemini CLI:

bunx espresso3389/pdf-splitter-mcp install geminicli

¡Eso es todo! El instalador configurará todo automáticamente por ti.

Nota para actualizar el paquete

Debido a que bunx almacena en caché el paquete descargado en tu directorio temporal, si deseas actualizar el paquete de forma forzada, debes eliminar la caché por ti mismo antes de bunx:

# Linux/macOS
rm -rf /tmp/bunx-*-@espresso3389/pdf-splitter-mcp

# Windows
powershell -c "rm -Recurse -Force $env:TEMP/bunx-*-@espresso3389/pdf-splitter-mcp"

Instalación manual (opcional)

Si prefieres instalar localmente:

  1. Clonar y configurar
# Clone or download this project to your computer
# Then navigate to the project directory
cd /path/to/pdf-splitter-mcp
bun install
  1. Configurar tu herramienta de IA:

Para Claude Code:

claude mcp add pdf-splitter -- bun run /full/path/to/pdf-splitter-mcp/src/index.ts

Para Gemini CLI:

{
  "mcpServers": {
    "pdf-splitter": {
      "command": "bun",
      "args": ["run", "/full/path/to/pdf-splitter-mcp/src/index.ts"]
    }
  }
}

¡Reinicia tu herramienta de IA y comienza a usarla!

Ejemplo de conversación:

You: Load the PDF at /Users/me/documents/report.pdf
AI: [uses load_pdf tool] PDF loaded! ID: abc123, 50 pages

You: Show me page 10
AI: [uses extract_page tool] Here's page 10 content...

You: Search for "revenue" in the PDF
AI: [uses search_pdf tool] Found "revenue" on pages 3, 10, and 25...

You: Search for email addresses using regex
AI: [uses search_pdf tool with regex] Found matches for pattern "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b" on pages 5, 12...

You: Render page 10 as a high-quality image
AI: [uses render_page tool with dpi=300] Here's page 10 rendered at 300 DPI as a PNG image...

You: Create thumbnails of all pages
AI: [uses render_pages tool with dpi=72] Generated thumbnails for all 50 pages...

You: Save page 10 as a high-quality image to /tmp/page10.png
AI: [uses render_page tool with dpi=300 and outputPath="/tmp/page10.png"] Page 10 rendered and saved to: /tmp/page10.png

You: Extract all images from the PDF and save them to /tmp/images/
AI: [uses extract_images tool with outputPath="/tmp/images/page_{page}_img_{index}.png"] Saved 15 images. First image saved to: /tmp/images/page_1_img_0.png

Características

  • Cargar PDF: Cargar archivos PDF desde el sistema de archivos local o URLs en memoria
  • Extraer página: Extraer contenido de texto de páginas específicas
  • Extraer rango: Extraer texto de un rango de páginas
  • Buscar en PDF: Buscar texto dentro del PDF (admite texto plano y expresiones regulares, sensible o insensible a mayúsculas/minúsculas)
  • Obtener información del PDF: Recuperar metadatos e información sobre el PDF cargado
  • Listar PDFs cargados: Ver todos los PDFs actualmente cargados
  • Extraer esquema: Extraer el esquema/índice del documento con números de página
  • Listar imágenes: Listar todas las imágenes en el PDF con metadatos (página, dimensiones, formato)
  • Extraer imágenes: Extraer imágenes como datos codificados en base64 (PNG/JPEG)
  • Extraer imagen: Extraer una imagen específica por página e índice
  • Renderizar página: Renderizar una página de PDF como imagen a cualquier DPI (PNG/JPEG)
  • Renderizar páginas: Renderizar múltiples páginas de PDF como imágenes con procesamiento por lotes

Comandos CLI

El PDF Splitter MCP proporciona varios comandos útiles:

# Show help and usage
bunx @espresso3389/pdf-splitter-mcp

# Install for Claude Code
bunx @espresso3389/pdf-splitter-mcp install claudecode

# Install for Gemini CLI  
bunx @espresso3389/pdf-splitter-mcp install geminicli

# Run the MCP server directly
bunx @espresso3389/pdf-splitter-mcp serve

Herramientas disponibles

  1. load_pdf

    • Cargar un archivo PDF en memoria (admite URLs)
    • Parámetros: path (cadena - ruta local o URL)
    • Devuelve: ID del PDF y número de páginas
  2. extract_page

    • Extraer contenido de una página específica
    • Parámetros: pdfId (cadena), pageNumber (número, indexado desde 1)
    • Devuelve: Contenido de la página como texto
  3. extract_range

    • Extraer contenido de un rango de páginas
    • Parámetros: pdfId (cadena), startPage (número), endPage (número)
    • Devuelve: Contenido combinado del rango de páginas
  4. search_pdf

    • Buscar texto dentro del PDF
    • Parámetros: pdfId (cadena), query (cadena), caseSensitive (booleano, opcional)
    • Devuelve: Resultados de búsqueda con números de página y contexto
  5. get_pdf_info

    • Obtener metadatos sobre un PDF cargado
    • Parámetros: pdfId (cadena)
    • Devuelve: Información del PDF incluyendo metadatos
  6. list_loaded_pdfs

    • Listar todos los PDFs actualmente cargados
    • Devuelve: Matriz de PDFs cargados con sus IDs y números de páginas
  7. extract_outline

    • Extraer esquema/TOC del documento con números de página
    • Parámetros: pdfId (cadena)
    • Devuelve: Esquema formateado con referencias de página
  8. list_images

    • Listar todas las imágenes en el PDF con metadatos
    • Parámetros: pdfId (cadena)
    • Devuelve: Matriz de información de imágenes (página, índice, dimensiones, formato)
  9. extract_images

    • Extraer imágenes del PDF como datos codificados en base64
    • Parámetros:
      • pdfId (cadena)
      • pageNumbers (matriz de números, opcional)
      • dpi (número, opcional, predeterminado: 96)
      • outputPath (cadena, opcional - guardar imágenes en archivos en lugar de devolver base64)
    • Devuelve: Matriz de imágenes con datos base64 (o guarda en archivos si se proporciona outputPath)
    • Patrón de outputPath: Usa {page} para el número de página y {index} para el índice de imagen (por ejemplo, /path/page_{page}_img_{index}.png)
  10. extract_image

    • Extraer una imagen específica del PDF
    • Parámetros:
      • pdfId (cadena)
      • pageNumber (número)
      • imageIndex (número)
      • dpi (número, opcional, predeterminado: 96)
      • outputPath (cadena, opcional - guardar imagen en archivo en lugar de devolver base64)
    • Devuelve: Imagen única con datos base64 (o guarda en archivo si se proporciona outputPath)
  11. render_page

    • Renderizar una página de PDF como imagen a un DPI especificado
    • Parámetros:
      • pdfId (cadena)
      • pageNumber (número, indexado desde 1)
      • dpi (número, opcional, predeterminado: 96)
      • format (cadena, opcional, "png" o "jpeg", predeterminado: "png")
      • outputPath (cadena, opcional - guardar imagen en archivo en lugar de devolver base64)
    • Devuelve: Imagen de página renderizada con datos base64, dimensiones y formato (o guarda en archivo si se proporciona outputPath)
  12. render_pages

    • Renderizar múltiples páginas de PDF como imágenes
    • Parámetros:
      • pdfId (cadena)
      • pageNumbers (matriz de números, opcional - renderiza todas las páginas si no se proporciona)
      • dpi (número, opcional, predeterminado: 96)
      • format (cadena, opcional, "png" o "jpeg", predeterminado: "png")
      • outputPath (cadena, opcional - guardar imágenes en archivos en lugar de devolver base64)
    • Devuelve: Matriz de imágenes de páginas renderizadas con datos base64 (o guarda en archivos si se proporciona outputPath)
    • Patrón de outputPath: Usa {page} para el número de página (por ejemplo, /path/page_{page}.png)

Configuración del cliente MCP

Agrega esto a tu configuración del cliente MCP:

{
  "mcpServers": {
    "pdf-splitter": {
      "command": "bun",
      "args": ["run", "/path/to/pdf-splitter-mcp/src/index.ts"]
    }
  }
}

Desarrollo

# Run in development mode with hot reload
bun run dev

# Build for production
bun run build

# Run production build
bun run start

Beneficios

  • Uso reducido de tokens: Solo extrae las páginas que necesitas en lugar de procesar PDFs completos
  • Procesamiento más rápido: Acceso aleatorio a secciones específicas sin lectura secuencial
  • Eficiencia de memoria: Los PDFs se analizan una vez y se mantienen en memoria para acceso rápido
  • Capacidad de búsqueda: Encuentra contenido específico en documentos grandes rápidamente
  • Procesamiento visual: Renderiza páginas como imágenes para OCR, análisis visual o generación de miniaturas
  • Salida flexible: Soporte para diferentes configuraciones de DPI y formatos de imagen (PNG/JPEG)

Casos de uso comunes

Análisis de documentos

  • Extraer páginas o secciones específicas para análisis detallado
  • Buscar patrones, palabras clave o datos en documentos grandes
  • Extraer tablas de contenido y navegar documentos complejos

Procesamiento de imágenes

  • Extraer imágenes incrustadas de PDFs para procesamiento separado
  • Renderizar páginas como imágenes de alta calidad para OCR o análisis visual
  • Crear vistas previas en miniatura de páginas PDF
  • Convertir páginas PDF a imágenes para visualización web

Investigación y desarrollo

  • Procesar artículos técnicos y extraer secciones específicas
  • Buscar citas, fórmulas o términos específicos
  • Extraer figuras y diagramas de artículos de investigación

Automatización

  • Procesar múltiples PDFs por lotes de forma programática
  • Extraer datos de formularios o informes estandarizados
  • Generar vistas previas de imágenes para sistemas de gestión de documentos