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

Kreuzberg

por kreuzberg-dev · kreuzberg-dev/kreuzberg

Extract clean text, tables, and metadata from PDFs, Office docs, images, and 97+ other formats — via a Rust-core MCP.

Kreuzberg is a polyglot document intelligence framework. The MCP server wraps the core Rust pipeline: Claude calls it to extract structured content from any document format without you shelling out to Unstructured/Tika/pdfplumber. Handles OCR for scanned PDFs, table detection, and metadata in one call.

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

Extract tables from a messy PDF into clean markdown

👤 Analysts dealing with report PDFs ⏱ ~10 min beginner

Quando usar: You have a PDF with tables that pdftotext mangles and you don't want to retype them.

Pré-requisitos
  • MCP installeduvx kreuzberg-mcp — or add via claude mcp add
Fluxo
  1. Extract
    Use kreuzberg to extract /docs/2025-annual-report.pdf. Give me the tables as markdown and the body text separately.✓ Copiado
    → Clean markdown tables with preserved headers
  2. Verify
    For the "Revenue by Segment" table, reconcile the column totals. Flag any OCR misreads.✓ Copiado
    → Arithmetic check with flagged cells

Resultado: Markdown tables you can paste into a doc without rework.

Armadilhas
  • Scanned PDF — OCR mistakes 6 for 8 — Use the OCR confidence output and re-scan low-confidence cells manually
Combine com: filesystem

Ingest a folder of mixed-format docs for downstream indexing

👤 Engineers building RAG pipelines ⏱ ~30 min intermediate

Quando usar: Client drops you a zip with PDFs, Word docs, PowerPoints, and you need clean text for embedding.

Pré-requisitos
  • Filesystem MCP scoped to the folder — Launch fs MCP with the ingest dir as root
Fluxo
  1. Inventory
    List every file under /ingest/. For each, call kreuzberg.detect_format and report.✓ Copiado
    → Format-per-file table
  2. Bulk extract
    For each file, extract text + metadata. Write cleaned .txt next to the original and a manifest.json with metadata.✓ Copiado
    → All files processed; manifest contains every entry
  3. Quality check
    List every file where extraction returned <100 chars — those are likely scanned or corrupt. Re-run with OCR forced.✓ Copiado
    → Low-content files identified and retried

Resultado: A folder of cleaned text files ready for embedding, with a metadata manifest.

Armadilhas
  • Encrypted PDF — Kreuzberg returns an error — decrypt with qpdf or ask for the unlocked copy
Combine com: filesystem · memory

Combinações

Combine com outros MCPs para 10× de alavancagem

kreuzberg + filesystem

Walk a folder and extract every doc in place

For each PDF under /docs, extract text and save as .md next to it.✓ Copiado
kreuzberg + memory

Ingest extracted content into a knowledge graph

Extract /contracts/*.pdf and store key terms in memory for cross-doc querying.✓ Copiado

Ferramentas

O que este MCP expõe

FerramentaEntradasQuando chamarCusto
extract_text path: str, ocr?: bool Primary extraction call free
extract_metadata path: str Just want metadata without body text free
extract_tables path: str Table-focused extraction free
detect_format path: str Confirm format before extraction free

Custo e limites

O que custa rodar

Cota de API
Unlimited — local
Tokens por chamada
Proportional to doc size; a 20-page PDF ≈ 8k tokens of output
Monetário
Free (open source)
Dica
Use extract_metadata first on large files to avoid processing irrelevant ones

Segurança

Permissões, segredos, alcance

Armazenamento de credenciais: None for local mode
Saída de dados: None — all processing is local

Solução de problemas

Erros comuns e correções

ModuleNotFoundError: tesseract

Install Tesseract system binary: brew install tesseract / apt install tesseract-ocr

Verificar: `tesseract --version`
Empty output on PDF

Likely image-only PDF — re-run with ocr=true

Verificar: Check output.metadata.has_text_layer
XLSX tables come out jumbled

Pass sheet name explicitly: tool supports sheet arg

Alternativas

Kreuzberg vs. outros

AlternativaQuando usarTroca
markdownify-mcpYou want a lighter, Node-based converter without OCRFewer formats, no table preservation
Unstructured.ioYou need enterprise PDF parsing and accept the cloud costPaid; cloud-hosted

Mais

Recursos

📖 Leia o README oficial no GitHub

🐙 Ver issues abertas

🔍 Ver todos os 400+ servidores MCP e Skills