/ Annuaire / Playground / Kreuzberg
● Communauté kreuzberg-dev ⚡ Instantané

Kreuzberg

par kreuzberg-dev · kreuzberg-dev/kreuzberg

Extrayez texte propre, tableaux et métadonnées depuis des PDF, documents Office, images et plus de 97 autres formats — via un MCP à cœur Rust.

Kreuzberg est un framework d'intelligence documentaire polyglotte. Le serveur MCP enveloppe un pipeline Rust central : Claude l'appelle pour extraire du contenu structuré depuis n'importe quel format de document, sans passer par Unstructured/Tika/pdfplumber. Gère l'OCR pour les PDF numérisés, la détection de tableaux et les métadonnées en un seul appel.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

kreuzberg.replay ▶ prêt
0/0

Installer

Choisissez votre client

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

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

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

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

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

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

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

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

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

Continue utilise un tableau d'objets serveur plutôt qu'une map.

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

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

claude mcp add kreuzberg -- uvx kreuzberg-mcp

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : Kreuzberg

Extraire les tableaux d'un PDF mal formaté en markdown propre

👤 Analystes traitant des rapports PDF ⏱ ~10 min beginner

Quand l'utiliser : Vous avez un PDF avec des tableaux que pdftotext déforme et vous ne voulez pas les ressaisir.

Prérequis
  • MCP installéuvx kreuzberg-mcp — ou ajoutez-le via claude mcp add
Déroulement
  1. Extraction
    Utilise kreuzberg pour extraire /docs/2025-annual-report.pdf. Donne-moi les tableaux en markdown et le corps du texte séparément.✓ Copié
    → Tableaux markdown propres avec en-têtes préservés
  2. Vérification
    Pour le tableau « Revenue by Segment », vérifie les totaux de colonnes. Signale toute erreur OCR.✓ Copié
    → Vérification arithmétique avec cellules suspectes signalées

Résultat : Des tableaux markdown prêts à coller dans un document sans retouche.

Pièges
  • PDF numérisé — l'OCR confond le 6 et le 8 — Utilisez la sortie de confiance OCR et vérifiez manuellement les cellules à faible confiance
Combiner avec : filesystem

Ingérer un dossier de documents de formats variés pour indexation

👤 Ingénieurs construisant des pipelines RAG ⏱ ~30 min intermediate

Quand l'utiliser : Un client vous envoie un zip avec des PDF, Word, PowerPoints, et vous avez besoin de texte propre pour l'embedding.

Prérequis
  • MCP filesystem limité au dossier — Lancez le MCP fs avec le répertoire d'ingestion comme racine
Déroulement
  1. Inventaire
    Liste tous les fichiers sous /ingest/. Pour chacun, appelle kreuzberg.detect_format et rapporte.✓ Copié
    → Tableau format-par-fichier
  2. Extraction en lot
    Pour chaque fichier, extrais le texte + les métadonnées. Écris un .txt nettoyé à côté de l'original et un manifest.json avec les métadonnées.✓ Copié
    → Tous les fichiers traités ; le manifest contient chaque entrée
  3. Contrôle qualité
    Liste chaque fichier où l'extraction a retourné moins de 100 caractères — ce sont probablement des documents numérisés ou corrompus. Relance avec OCR forcé.✓ Copié
    → Fichiers pauvres en contenu identifiés et retentés

Résultat : Un dossier de fichiers texte nettoyés prêts pour l'embedding, avec un manifest de métadonnées.

Pièges
  • PDF chiffré — Kreuzberg retourne une erreur — déchiffrez avec qpdf ou demandez la copie déverrouillée
Combiner avec : filesystem · memory

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

kreuzberg + filesystem

Parcourir un dossier et extraire chaque document sur place

Pour chaque PDF sous /docs, extrais le texte et enregistre-le en .md à côté.✓ Copié
kreuzberg + memory

Ingérer le contenu extrait dans un graphe de connaissance

Extrais /contracts/*.pdf et stocke les termes clés en mémoire pour des requêtes inter-documents.✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
extract_text path: str, ocr?: bool Appel d'extraction principal free
extract_metadata path: str Quand on veut uniquement les métadonnées sans le corps du texte free
extract_tables path: str Extraction centrée sur les tableaux free
detect_format path: str Confirmer le format avant l'extraction free

Coût et limites

Coût d'exécution

Quota d'API
Illimité — local
Tokens par appel
Proportionnel à la taille du document ; un PDF de 20 pages ≈ 8k tokens en sortie
Monétaire
Gratuit (open source)
Astuce
Utilisez extract_metadata en premier sur les gros fichiers pour éviter de traiter ceux qui ne sont pas pertinents

Sécurité

Permissions, secrets, portée

Stockage des identifiants : Aucun en mode local
Sortie de données : Aucune — tout le traitement est local

Dépannage

Erreurs courantes et correctifs

ModuleNotFoundError: tesseract

Installez le binaire système Tesseract : brew install tesseract / apt install tesseract-ocr

Vérifier : `tesseract --version`
Sortie vide sur un PDF

PDF probablement constitué uniquement d'images — relancez avec ocr=true

Vérifier : Check output.metadata.has_text_layer
Les tableaux XLSX sortent désordonnés

Passez le nom de la feuille explicitement : l'outil supporte l'argument sheet

Alternatives

Kreuzberg vs autres

AlternativeQuand l'utiliserCompromis
markdownify-mcpVous souhaitez un convertisseur plus léger, basé sur Node, sans OCRMoins de formats, pas de préservation des tableaux
Unstructured.ioVous avez besoin d'un parsing PDF enterprise et acceptez le coût cloudPayant ; hébergé dans le cloud

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills