/ Verzeichnis / Playground / Kreuzberg
● Community kreuzberg-dev ⚡ Sofort

Kreuzberg

von kreuzberg-dev · kreuzberg-dev/kreuzberg

Sauberen Text, Tabellen und Metadaten aus PDFs, Office-Dokumenten, Bildern und über 97 weiteren Formaten extrahieren — über einen Rust-Core-MCP.

Kreuzberg ist ein polyglotes Document-Intelligence-Framework. Der MCP-Server kapselt die Rust-Core-Pipeline: Claude ruft sie auf, um strukturierte Inhalte aus beliebigen Dokumentformaten zu extrahieren — ohne Umweg über Unstructured/Tika/pdfplumber. Erledigt OCR für gescannte PDFs, Tabellenerkennung und Metadaten in einem einzigen Aufruf.

Warum nutzen

Hauptfunktionen

Live-Demo

In der Praxis

kreuzberg.replay ▶ bereit
0/0

Installieren

Wählen Sie Ihren Client

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

Öffne Claude Desktop → Settings → Developer → Edit Config. Nach dem Speichern neu starten.

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

Cursor nutzt das gleiche mcpServers-Schema wie Claude Desktop. Projektkonfiguration schlägt die globale.

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

Klicken Sie auf das MCP-Servers-Symbol in der Cline-Seitenleiste, dann "Edit Configuration".

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

Gleiche Struktur wie Claude Desktop. Windsurf neu starten zum Übernehmen.

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

Continue nutzt ein Array von Serverobjekten statt einer Map.

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

In context_servers hinzufügen. Zed lädt beim Speichern neu.

claude mcp add kreuzberg -- uvx kreuzberg-mcp

Einzeiler. Prüfen mit claude mcp list. Entfernen mit claude mcp remove.

Anwendungsfälle

Praxisnahe Nutzung: Kreuzberg

Tabellen aus einem unübersichtlichen PDF in sauberes Markdown extrahieren

👤 Analysten, die mit Report-PDFs arbeiten ⏱ ~10 min beginner

Wann einsetzen: Du hast ein PDF mit Tabellen, die pdftotext zerstückelt, und willst sie nicht manuell abtippen.

Voraussetzungen
  • MCP installiertuvx kreuzberg-mcp — oder per claude mcp add hinzufügen
Ablauf
  1. Extrahieren
    Nutze kreuzberg, um /docs/2025-annual-report.pdf zu extrahieren. Gib mir die Tabellen als Markdown und den Fließtext separat.✓ Kopiert
    → Saubere Markdown-Tabellen mit erhaltenen Kopfzeilen
  2. Verifizieren
    Prüfe für die Tabelle „Revenue by Segment“ die Spaltensummen. Markiere mögliche OCR-Lesefehler.✓ Kopiert
    → Arithmetische Prüfung mit markierten Zellen

Ergebnis: Markdown-Tabellen, die du ohne Nacharbeit direkt in ein Dokument einfügen kannst.

Fallstricke
  • Gescanntes PDF — OCR verwechselt 6 und 8 — OCR-Konfidenzausgabe nutzen und Zellen mit niedriger Konfidenz manuell nachprüfen
Kombinieren mit: filesystem

Einen Ordner mit gemischten Dokumentformaten für nachgelagerte Indexierung einlesen

👤 Entwickler, die RAG-Pipelines aufbauen ⏱ ~30 min intermediate

Wann einsetzen: Ein Kunde liefert dir ein ZIP mit PDFs, Word-Docs und PowerPoints, und du brauchst sauberen Text zum Embedding.

Voraussetzungen
  • Filesystem MCP auf den Ordner eingeschränkt — Filesystem-MCP mit dem Ingest-Verzeichnis als Root starten
Ablauf
  1. Inventar aufnehmen
    Liste alle Dateien unter /ingest/. Rufe für jede kreuzberg.detect_format auf und berichte.✓ Kopiert
    → Tabelle mit Format pro Datei
  2. Bulk-Extraktion
    Extrahiere für jede Datei Text und Metadaten. Speichere bereinigten .txt neben dem Original und schreibe eine manifest.json mit den Metadaten.✓ Kopiert
    → Alle Dateien verarbeitet; Manifest enthält jeden Eintrag
  3. Qualitätsprüfung
    Liste alle Dateien, bei denen die Extraktion weniger als 100 Zeichen zurückgab — das sind wahrscheinlich gescannte oder beschädigte Dateien. Erneut mit erzwungener OCR ausführen.✓ Kopiert
    → Dateien mit wenig Inhalt identifiziert und wiederholt

Ergebnis: Ein Ordner bereinigter Textdateien, bereit zum Embedding, mit einem Metadaten-Manifest.

Fallstricke
  • Verschlüsseltes PDF — Kreuzberg gibt einen Fehler zurück — mit qpdf entschlüsseln oder die entsperrte Kopie anfordern
Kombinieren mit: filesystem · memory

Kombinationen

Mit anderen MCPs für 10-fache Wirkung

kreuzberg + filesystem

Ordner durchlaufen und jedes Dokument direkt extrahieren

Extrahiere für jedes PDF unter /docs Text und speichere ihn als .md daneben.✓ Kopiert
kreuzberg + memory

Extrahierte Inhalte in einen Knowledge-Graphen einlesen

Extrahiere /contracts/*.pdf und speichere Schlüsselbegriffe in memory für dokumentübergreifende Abfragen.✓ Kopiert

Werkzeuge

Was dieses MCP bereitstellt

WerkzeugEingabenWann aufrufenKosten
extract_text path: str, ocr?: bool Primärer Extraktionsaufruf free
extract_metadata path: str Nur Metadaten ohne Fließtext benötigt free
extract_tables path: str Tabellenfokussierte Extraktion free
detect_format path: str Format vor der Extraktion bestätigen free

Kosten & Limits

Was der Betrieb kostet

API-Kontingent
Unbegrenzt — lokal
Tokens pro Aufruf
Proportional zur Dokumentgröße; ein 20-seitiges PDF ≈ 8k Token Ausgabe
Kosten in €
Kostenlos (Open Source)
Tipp
Bei großen Dateien zuerst extract_metadata aufrufen, um irrelevante Dateien auszuschließen

Sicherheit

Rechte, Secrets, Reichweite

Credential-Speicherung: Keine im lokalen Modus
Datenabfluss: Keine — alle Verarbeitung erfolgt lokal

Fehlerbehebung

Häufige Fehler und Lösungen

ModuleNotFoundError: tesseract

Tesseract-Systembinär installieren: brew install tesseract / apt install tesseract-ocr

Prüfen: `tesseract --version`
Leere Ausgabe bei PDF

Wahrscheinlich nur-Bild-PDF — erneut mit ocr=true ausführen

Prüfen: Check output.metadata.has_text_layer
XLSX-Tabellen kommen durcheinander

Blattname explizit angeben: Tool unterstützt sheet-Argument

Alternativen

Kreuzberg vs. andere

AlternativeWann stattdessenKompromiss
markdownify-mcpDu willst einen leichteren, Node-basierten Konverter ohne OCRWeniger Formate, keine Tabellenerhaltung
Unstructured.ioDu brauchst Enterprise-PDF-Parsing und akzeptierst die Cloud-KostenKostenpflichtig; cloud-gehostet

Mehr

Ressourcen

📖 Offizielle README auf GitHub lesen

🐙 Offene Issues ansehen

🔍 Alle 400+ MCP-Server und Skills durchsuchen