/ Directorio / Playground / Kreuzberg
● Comunidad kreuzberg-dev ⚡ Instantáneo

Kreuzberg

por kreuzberg-dev · kreuzberg-dev/kreuzberg

Extraiga texto, tablas y metadatos limpios de archivos PDF, documentos de Office, imágenes y más de 97 formatos, a través de un MCP Rust-core.

Kreuzberg es un marco de inteligencia de documentos políglota. El servidor MCP envuelve el canal principal de Rust: Claude lo llama para extraer contenido estructurado de cualquier formato de documento sin que usted lo envíe a Unstructured/Tika/pdfplumber. Maneja OCR para PDF escaneados, detección de tablas y metadatos en una sola llamada.

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

kreuzberg.replay ▶ listo
0/0

Instalar

Elige tu cliente

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

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

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

Cursor usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

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

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "Edit Configuration".

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

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

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

Continue usa un array de objetos de servidor en lugar de un mapa.

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

Añádelo a context_servers. Zed recarga en caliente al guardar.

claude mcp add kreuzberg -- uvx kreuzberg-mcp

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: Kreuzberg

Extraer tablas de un PDF desordenado en rebajas limpias

👤 Analistas que se ocupan de los PDF de informes ⏱ ~10 min beginner

Cuándo usarlo: Tienes un PDF con tablas que pdftotext mangles y no quieres volver a escribirlas.

Requisitos previos
  • MCP instaladouvx kreuzberg-mcp — o añadir a través de claude mcp añadir
Flujo
  1. Extraer
    Utilice kreuzberg para extraer /docs/2025-annual-report.pdf. Dame las tablas como rebaja y el texto del cuerpo por separado.✓ Copiado
    → Limpiar las tablas de rebajas con encabezados conservados
  2. Verificar
    For the "Revenue by Segment" table, reconcile the column totals. Flag any OCR misreads.✓ Copiado
    → Arithmetic check with flagged cells

Resultado: Tablas de Markdown que puedes pegar en un documento sin tener que volver a trabajar.

Errores comunes
  • Scanned PDF — OCR mistakes 6 for 8 — Use the OCR confidence output and re-scan low-confidence cells manually
Combinar con: filesystem

Ingest a folder of mixed-format docs for downstream indexing

👤 Engineers building RAG pipelines ⏱ ~30 min intermediate

Cuándo usarlo: Client drops you a zip with PDFs, Word docs, PowerPoints, and you need clean text for embedding.

Requisitos previos
  • Filesystem MCP scoped to the folder — Launch fs MCP with the ingest dir as root
Flujo
  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.

Errores comunes
  • Encrypted PDF — Kreuzberg returns an error — decrypt with qpdf or ask for the unlocked copy
Combinar con: filesystem · memory

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

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

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
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

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
Unlimited — local
Tokens por llamada
Proportional to doc size; a 20-page PDF ≈ 8k tokens of output
Monetario
Free (open source)
Consejo
Use extract_metadata first on large files to avoid processing irrelevant ones

Seguridad

Permisos, secretos, alcance

Almacenamiento de credenciales: None for local mode
Salida de datos: None — all processing is local

Resolución de problemas

Errores comunes y soluciones

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 otros

AlternativaCuándo usarlaContrapartida
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

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills