PDF Splitter

Fornece acesso aleatório ao conteúdo de PDFs, permitindo extração seletiva de páginas e conteúdo para reduzir custos de leitura.

Documentação

Servidor MCP PDF Splitter

Um servidor Model Context Protocol (MCP) que fornece acesso aleatório ao conteúdo de PDFs, reduzindo os custos totais de leitura ao permitir a extração seletiva de páginas e conteúdo.

Pré-requisitos

Instalar Bun (necessário para todos os métodos de instalação):

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

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

Início Rápido - Instalação em Um Comando!

Para Claude Code:

bunx espresso3389/pdf-splitter-mcp install claudecode

Para Gemini CLI:

bunx espresso3389/pdf-splitter-mcp install geminicli

É isso! O instalador configurará tudo automaticamente para você.

Nota sobre atualização do pacote

Como o bunx armazena em cache o pacote baixado no seu diretório temporário, se você quiser atualizar o pacote à força, deve excluir o cache manualmente 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"

Instalação Manual (Opcional)

Se preferir instalar localmente:

  1. Clone e configure
# Clone or download this project to your computer
# Then navigate to the project directory
cd /path/to/pdf-splitter-mcp
bun install
  1. Configure sua ferramenta 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"]
    }
  }
}

Reinicie sua ferramenta de IA e comece a usar!

Exemplo de conversa:

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

Recursos

  • Carregar PDF: Carregar arquivos PDF do sistema de arquivos local ou URLs na memória
  • Extrair Página: Extrair conteúdo de texto de páginas específicas
  • Extrair Intervalo: Extrair texto de um intervalo de páginas
  • Pesquisar no PDF: Pesquisar texto dentro do PDF (suporta texto simples e expressões regulares, com ou sem distinção entre maiúsculas e minúsculas)
  • Obter Informações do PDF: Recuperar metadados e informações sobre o PDF carregado
  • Listar PDFs Carregados: Visualizar todos os PDFs atualmente carregados
  • Extrair Estrutura: Extrair estrutura do documento/índice com números de página
  • Listar Imagens: Listar todas as imagens no PDF com metadados (página, dimensões, formato)
  • Extrair Imagens: Extrair imagens como dados codificados em base64 (PNG/JPEG)
  • Extrair Imagem: Extrair uma imagem específica por página e índice
  • Renderizar Página: Renderizar uma página do PDF como imagem em qualquer DPI (PNG/JPEG)
  • Renderizar Páginas: Renderizar múltiplas páginas do PDF como imagens com processamento em lote

Comandos CLI

O PDF Splitter MCP fornece vários comandos úteis:

# 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

Ferramentas Disponíveis

  1. load_pdf

    • Carregar um arquivo PDF na memória (suporta URLs)
    • Parâmetros: path (string - caminho local ou URL)
    • Retorna: ID do PDF e contagem de páginas
  2. extract_page

    • Extrair conteúdo de uma página específica
    • Parâmetros: pdfId (string), pageNumber (número, indexado a partir de 1)
    • Retorna: Conteúdo da página como texto
  3. extract_range

    • Extrair conteúdo de um intervalo de páginas
    • Parâmetros: pdfId (string), startPage (número), endPage (número)
    • Retorna: Conteúdo combinado do intervalo de páginas
  4. search_pdf

    • Pesquisar texto dentro do PDF
    • Parâmetros: pdfId (string), query (string), caseSensitive (booleano, opcional)
    • Retorna: Resultados da pesquisa com números de página e contexto
  5. get_pdf_info

    • Obter metadados sobre um PDF carregado
    • Parâmetros: pdfId (string)
    • Retorna: Informações do PDF incluindo metadados
  6. list_loaded_pdfs

    • Listar todos os PDFs atualmente carregados
    • Retorna: Matriz de PDFs carregados com seus IDs e contagens de páginas
  7. extract_outline

    • Extrair estrutura do documento/índice com números de página
    • Parâmetros: pdfId (string)
    • Retorna: Estrutura formatada com referências de página
  8. list_images

    • Listar todas as imagens no PDF com metadados
    • Parâmetros: pdfId (string)
    • Retorna: Matriz de informações de imagem (página, índice, dimensões, formato)
  9. extract_images

    • Extrair imagens do PDF como dados codificados em base64
    • Parâmetros:
      • pdfId (string)
      • pageNumbers (matriz de números, opcional)
      • dpi (número, opcional, padrão: 96)
      • outputPath (string, opcional - salvar imagens em arquivos em vez de retornar base64)
    • Retorna: Matriz de imagens com dados base64 (ou salva em arquivos se outputPath for fornecido)
    • Padrão de outputPath: Use {page} para o número da página e {index} para o índice da imagem (ex.: /path/page_{page}_img_{index}.png)
  10. extract_image

    • Extrair uma imagem específica do PDF
    • Parâmetros:
      • pdfId (string)
      • pageNumber (número)
      • imageIndex (número)
      • dpi (número, opcional, padrão: 96)
      • outputPath (string, opcional - salvar imagem em arquivo em vez de retornar base64)
    • Retorna: Imagem única com dados base64 (ou salva em arquivo se outputPath for fornecido)
  11. render_page

    • Renderizar uma página do PDF como imagem em DPI especificado
    • Parâmetros:
      • pdfId (string)
      • pageNumber (número, indexado a partir de 1)
      • dpi (número, opcional, padrão: 96)
      • format (string, opcional, "png" ou "jpeg", padrão: "png")
      • outputPath (string, opcional - salvar imagem em arquivo em vez de retornar base64)
    • Retorna: Imagem da página renderizada com dados base64, dimensões e formato (ou salva em arquivo se outputPath for fornecido)
  12. render_pages

    • Renderizar múltiplas páginas do PDF como imagens
    • Parâmetros:
      • pdfId (string)
      • pageNumbers (matriz de números, opcional - renderiza todas as páginas se não for fornecido)
      • dpi (número, opcional, padrão: 96)
      • format (string, opcional, "png" ou "jpeg", padrão: "png")
      • outputPath (string, opcional - salvar imagens em arquivos em vez de retornar base64)
    • Retorna: Matriz de imagens de páginas renderizadas com dados base64 (ou salva em arquivos se outputPath for fornecido)
    • Padrão de outputPath: Use {page} para o número da página (ex.: /path/page_{page}.png)

Configuração do Cliente MCP

Adicione isto à configuração do seu cliente MCP:

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

Desenvolvimento

# Run in development mode with hot reload
bun run dev

# Build for production
bun run build

# Run production build
bun run start

Benefícios

  • Uso Reduzido de Tokens: Extraia apenas as páginas necessárias em vez de processar PDFs inteiros
  • Processamento Mais Rápido: Acesso aleatório a seções específicas sem leitura sequencial
  • Eficiência de Memória: PDFs são analisados uma vez e mantidos na memória para acesso rápido
  • Capacidade de Pesquisa: Encontre conteúdo específico em documentos grandes rapidamente
  • Processamento Visual: Renderize páginas como imagens para OCR, análise visual ou geração de miniaturas
  • Saída Flexível: Suporte para diferentes configurações de DPI e formatos de imagem (PNG/JPEG)

Casos de Uso Comuns

Análise de Documentos

  • Extrair páginas ou seções específicas para análise detalhada
  • Pesquisar padrões, palavras-chave ou dados em documentos grandes
  • Extrair índices e navegar em documentos complexos

Processamento de Imagens

  • Extrair imagens incorporadas de PDFs para processamento separado
  • Renderizar páginas como imagens de alta qualidade para OCR ou análise visual
  • Criar visualizações em miniatura de páginas de PDF
  • Converter páginas de PDF em imagens para exibição na web

Pesquisa e Desenvolvimento

  • Processar artigos técnicos e extrair seções específicas
  • Pesquisar citações, fórmulas ou termos específicos
  • Extrair figuras e diagramas de artigos de pesquisa

Automação

  • Processar múltiplos PDFs em lote programaticamente
  • Extrair dados de formulários ou relatórios padronizados
  • Gerar visualizações de imagem para sistemas de gerenciamento de documentos