/ Diretório / Playground / Kreuzberg
● Comunidade kreuzberg-dev ⚡ Instantâneo

Kreuzberg

por kreuzberg-dev · kreuzberg-dev/kreuzberg

Extraia texto limpo, tabelas e metadados de PDFs, documentos Office, imagens e mais de 97 outros formatos — via um MCP com núcleo em Rust.

Kreuzberg é um framework de inteligência documental poliglota. O servidor MCP encapsula o pipeline central em Rust: o Claude o aciona para extrair conteúdo estruturado de qualquer formato sem precisar recorrer a Unstructured/Tika/pdfplumber. OCR para PDFs digitalizados, detecção de tabelas e metadados — tudo em uma única chamada.

Por que usar

Principais recursos

Demo ao vivo

Como fica na prática

kreuzberg.replay ▶ pronto
0/0

Instalar

Escolha seu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "kreuzberg": {
      "command": "uvx",
      "args": [
        "kreuzberg-mcp"
      ]
    }
  }
}

Abra Claude Desktop → Settings → Developer → Edit Config. Reinicie após salvar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "kreuzberg": {
      "command": "uvx",
      "args": [
        "kreuzberg-mcp"
      ]
    }
  }
}

Cursor usa o mesmo esquema mcpServers que o Claude Desktop. Config de projeto vence a global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "kreuzberg": {
      "command": "uvx",
      "args": [
        "kreuzberg-mcp"
      ]
    }
  }
}

Clique no ícone MCP Servers na barra lateral do Cline, depois "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "kreuzberg": {
      "command": "uvx",
      "args": [
        "kreuzberg-mcp"
      ]
    }
  }
}

Mesmo formato do Claude Desktop. Reinicie o Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "kreuzberg",
      "command": "uvx",
      "args": [
        "kreuzberg-mcp"
      ]
    }
  ]
}

O Continue usa um array de objetos de servidor em vez de um map.

~/.config/zed/settings.json
{
  "context_servers": {
    "kreuzberg": {
      "command": {
        "path": "uvx",
        "args": [
          "kreuzberg-mcp"
        ]
      }
    }
  }
}

Adicione em context_servers. Zed recarrega automaticamente ao salvar.

claude mcp add kreuzberg -- uvx kreuzberg-mcp

Uma linha só. Verifique com claude mcp list. Remova com claude mcp remove.

Casos de uso

Usos do mundo real: Kreuzberg

Extrair tabelas de um PDF bagunçado e gerar markdown limpo

👤 Analistas que lidam com PDFs de relatórios ⏱ ~10 min beginner

Quando usar: Você tem um PDF com tabelas que o pdftotext distorce e não quer digitá-las manualmente.

Pré-requisitos
  • MCP instaladouvx kreuzberg-mcp — ou adicione via claude mcp add
Fluxo
  1. Extrair
    Use kreuzberg para extrair /docs/2025-annual-report.pdf. Me dê as tabelas em markdown e o corpo do texto separadamente.✓ Copiado
    → Tabelas em markdown limpo com cabeçalhos preservados
  2. Verificar
    Na tabela "Receita por Segmento", confira os totais das colunas. Aponte qualquer leitura incorreta do OCR.✓ Copiado
    → Verificação aritmética com células sinalizadas

Resultado: Tabelas em markdown prontas para colar em um documento sem retrabalho.

Armadilhas
  • PDF digitalizado — OCR confunde 6 com 8 — Use a saída de confiança do OCR e revise manualmente as células com baixa confiança
Combine com: filesystem

Ingerir uma pasta de documentos em formatos mistos para indexação posterior

👤 Engenheiros construindo pipelines RAG ⏱ ~30 min intermediate

Quando usar: O cliente te entrega um zip com PDFs, Word, PowerPoints e você precisa de texto limpo para embedding.

Pré-requisitos
  • MCP de filesystem com escopo na pasta — Inicie o MCP de fs com o diretório de ingestão como raiz
Fluxo
  1. Inventário
    Liste todos os arquivos em /ingest/. Para cada um, chame kreuzberg.detect_format e reporte.✓ Copiado
    → Tabela de formato por arquivo
  2. Extração em lote
    Para cada arquivo, extraia texto + metadados. Salve o .txt limpo ao lado do original e um manifest.json com os metadados.✓ Copiado
    → Todos os arquivos processados; manifesto contém todas as entradas
  3. Verificação de qualidade
    Liste todos os arquivos onde a extração retornou menos de 100 caracteres — provavelmente são digitalizados ou corrompidos. Reprocesse com OCR forçado.✓ Copiado
    → Arquivos com pouco conteúdo identificados e reprocessados

Resultado: Uma pasta de arquivos de texto limpo prontos para embedding, com um manifesto de metadados.

Armadilhas
  • PDF com senha — Kreuzberg retorna um erro — descriptografe com qpdf ou peça a cópia sem senha
Combine com: filesystem · memory

Combinações

Combine com outros MCPs para 10× de alavancagem

kreuzberg + filesystem

Percorrer uma pasta e extrair cada documento no lugar

Para cada PDF em /docs, extraia o texto e salve como .md ao lado.✓ Copiado
kreuzberg + memory

Ingerir o conteúdo extraído em um grafo de conhecimento

Extraia /contracts/*.pdf e armazene os termos-chave na memória para consultas entre documentos.✓ Copiado

Ferramentas

O que este MCP expõe

FerramentaEntradasQuando chamarCusto
extract_text path: str, ocr?: bool Chamada principal de extração free
extract_metadata path: str Quando só quer metadados sem o corpo do texto free
extract_tables path: str Extração focada em tabelas free
detect_format path: str Confirmar o formato antes de extrair free

Custo e limites

O que custa rodar

Cota de API
Ilimitado — local
Tokens por chamada
Proporcional ao tamanho do documento; um PDF de 20 páginas gera ~8k tokens de saída
Monetário
Gratuito (código aberto)
Dica
Use extract_metadata primeiro em arquivos grandes para evitar processar os irrelevantes

Segurança

Permissões, segredos, alcance

Armazenamento de credenciais: Nenhum no modo local
Saída de dados: Nenhum — todo o processamento é local

Solução de problemas

Erros comuns e correções

ModuleNotFoundError: tesseract

Instale o binário do Tesseract: brew install tesseract / apt install tesseract-ocr

Verificar: `tesseract --version`
Saída vazia em PDF

Provavelmente PDF só com imagens — reprocesse com ocr=true

Verificar: Verifique output.metadata.has_text_layer
Tabelas XLSX saem embaralhadas

Passe o nome da aba explicitamente: a ferramenta suporta o argumento sheet

Alternativas

Kreuzberg vs. outros

AlternativaQuando usarTroca
markdownify-mcpVocê quer um conversor mais leve, baseado em Node, sem OCRMenos formatos, sem preservação de tabelas
Unstructured.ioVocê precisa de parsing empresarial de PDF e aceita o custo na nuvemPago; hospedado na nuvem

Mais

Recursos

📖 Leia o README oficial no GitHub

🐙 Ver issues abertas

🔍 Ver todos os 400+ servidores MCP e Skills