/ ディレクトリ / プレイグラウンド / Kreuzberg
● コミュニティ kreuzberg-dev ⚡ 即起動

Kreuzberg

作者 kreuzberg-dev · kreuzberg-dev/kreuzberg

RustコアMCPを介して、PDF、Officeドキュメント、画像、および97以上の他のフォーマットからクリーンなテキスト、表、およびメタデータを抽出します。

Kreuzbergは、多言語文書インテリジェンスフレームワークです。MCPサーバーは、コアのRustパイプラインをラップします。Claudeは、Unstructured/Tika/pdfplumberにシェルアウトすることなく、任意のドキュメント形式から構造化コンテンツを抽出するように呼び出します。スキャンされたPDF、テーブル検出、およびメタデータのOCRを1回の呼び出しで処理します。

なぜ使うのか

主な機能

ライブデモ

実際の動作

kreuzberg.replay ▶ 準備完了
0/0

インストール

クライアントを選択

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

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

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

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

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

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

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

Claude Desktop と同じ形式。Windsurf を再起動して反映。

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

Continue はマップではなくサーバーオブジェクトの配列を使用。

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

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add kreuzberg -- uvx kreuzberg-mcp

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: Kreuzberg

散らかったPDFから表をきれいなマークダウンに抽出する

👤 レポートPDFを扱うアナリスト ⏱ ~10 min beginner

使うタイミング: Pdftotextがマングリングするテーブルを含むPDFがあり、それらを再入力したくありません。

前提条件
  • MCPがインストールされましたuvx kreuzberg - mcp —またはclaude mcp add経由で追加
フロー
  1. 抽出
    Kreuzbergを使用して/docs/2025-annual-report.pdfを抽出します。表をマークダウンとして、本文テキストを別々に渡します。✓ コピーしました
    → 保存されたヘッダーでマークダウンテーブルをクリーンアップする
  2. 認証
    「セグメント別収益」表では、列の合計を照合します。OCRの読み間違いにフラグを立てます。✓ コピーしました
    → フラグ付きセルの算術チェック

結果: 手直しなしでドキュメントに貼り付けることができるマークダウンテーブル。

注意点
  • スキャンされたPDF — OCRミス6/8 — OCR信頼度出力を使用し、信頼度の低いセルを手動で再スキャンする
組み合わせ: filesystem

ダウンストリームのインデックス作成のために、混合形式のドキュメントのフォルダーを取り込む

👤 RAGパイプラインを構築するエンジニア ⏱ ~30 min intermediate

使うタイミング: クライアントはPDF、Wordドキュメント、PowerPointをZIP形式で提供し、埋め込みにはクリーンなテキストが必要です。

前提条件
  • フォルダーにスコープを設定したファイルシステムMCP — Launch fs MCP with the ingest dir as root
フロー
  1. Inventory
    List every file under /ingest/. For each, call kreuzberg.detect_format and report.✓ コピーしました
    → 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.✓ コピーしました
    → 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.✓ コピーしました
    → Low-content files identified and retried

結果: メタデータマニフェストを含む、埋め込みの準備ができたクリーンなテキストファイルのフォルダ。

注意点
  • Encrypted PDF — Kreuzberg returns an error — decrypt with qpdf or ask for the unlocked copy
組み合わせ: filesystem · memory

組み合わせ

他のMCPと組み合わせて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.✓ コピーしました
kreuzberg + memory

Ingest extracted content into a knowledge graph

Extract /contracts/*.pdf and store key terms in memory for cross-doc querying.✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
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

コストと制限

運用コスト

APIクォータ
Unlimited — local
呼び出しあたりのトークン
Proportional to doc size; a 20-page PDF ≈ 8k tokens of output
金額
Free (open source)
ヒント
Use extract_metadata first on large files to avoid processing irrelevant ones

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: None for local mode
データ送信先: None — all processing is local

トラブルシューティング

よくあるエラーと対処法

ModuleNotFoundError: tesseract

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

確認: `tesseract --version`
Empty output on PDF

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

確認: Check output.metadata.has_text_layer
XLSX tables come out jumbled

Pass sheet name explicitly: tool supports sheet arg

代替案

Kreuzberg 他との比較

代替案代わりに使う場面トレードオフ
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

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る