/ 目录 / 演练场 / Kreuzberg
● 社区 kreuzberg-dev ⚡ 即开即用

Kreuzberg

作者 kreuzberg-dev · kreuzberg-dev/kreuzberg

通过 Rust 核心 MCP,从 PDF、Office 文档、图片及 97 种以上格式中提取干净的文本、表格和元数据。

Kreuzberg 是一个多格式文档智能框架。MCP 服务器封装了 Rust 核心处理管线:Claude 通过它从任意文档格式中提取结构化内容,无需依赖 Unstructured/Tika/pdfplumber。一次调用即可处理扫描版 PDF 的 OCR、表格识别和元数据提取。

为什么要用

核心特性

实时演示

实际使用效果

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 中的表格提取为干净的 Markdown

👤 处理报告 PDF 的分析师 ⏱ ~10 min beginner

何时使用: 你有一个 PDF,里面的表格被 pdftotext 弄得一团糟,又不想手动重录。

前置条件
  • 已安装 MCPuvx kreuzberg-mcp——或通过 claude mcp add 添加
步骤
  1. 提取
    用 kreuzberg 提取 /docs/2025-annual-report.pdf。将表格以 Markdown 格式输出,正文文本单独返回。✓ 已复制
    → 表头完整的 Markdown 表格
  2. 核验
    对「分部门营收」表,核对各列合计。标出任何 OCR 识别错误的单元格。✓ 已复制
    → 附标记单元格的算术核验结果

结果: 可直接粘贴到文档的 Markdown 表格,无需二次整理。

注意事项
  • 扫描版 PDF——OCR 把 6 识别成 8 — 利用 OCR 置信度输出,手动重新扫描置信度低的单元格
搭配使用: filesystem

批量处理混合格式文档目录,供下游索引使用

👤 构建 RAG 管线的工程师 ⏱ ~30 min intermediate

何时使用: 客户给你一个压缩包,里面有 PDF、Word、PowerPoint,你需要提取纯文本用于向量化。

前置条件
  • Filesystem MCP 已挂载到该目录 — 以导入目录为根目录启动 fs MCP
步骤
  1. 清点文件
    列出 /ingest/ 下的所有文件。对每个文件调用 kreuzberg.detect_format 并报告结果。✓ 已复制
    → 每个文件对应格式的汇总表
  2. 批量提取
    对每个文件,提取文本和元数据。在原文件旁保存清理后的 .txt,并写入包含元数据的 manifest.json。✓ 已复制
    → 所有文件处理完毕;清单包含每条记录
  3. 质量检查
    列出提取结果不足 100 字符的文件——这些很可能是扫描件或损坏文件。强制开启 OCR 重跑。✓ 已复制
    → 低内容文件已识别并重新处理

结果: 一批已清理的文本文件,附元数据清单,可直接用于向量化。

注意事项
  • 加密 PDF — Kreuzberg 会返回错误——用 qpdf 解密,或要求对方提供无密码版本
搭配使用: filesystem · memory

组合

与其他 MCP 搭配,撬动十倍杠杆

kreuzberg + filesystem

遍历目录并就地提取所有文档

对 /docs 下的每个 PDF,提取文本并保存为同名 .md 文件。✓ 已复制
kreuzberg + memory

将提取内容导入知识图谱

提取 /contracts/*.pdf,将关键术语存入 memory 供跨文档查询。✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
extract_text path: str, ocr?: bool 主要的文本提取调用 free
extract_metadata path: str 只需要元数据,不需要正文 free
extract_tables path: str 以表格为重点的提取场景 free
detect_format path: str 提取前确认文件格式 free

成本与限制

运行它的成本

API 配额
无限制——本地运行
每次调用 Token 数
与文档大小成正比;20 页 PDF 约产生 8k tokens 的输出
费用
免费(开源)
提示
对大文件先调用 extract_metadata,避免处理无关文档

安全

权限、密钥、影响范围

凭据存储: 本地模式无需凭证
数据出站: 无——全部本地处理

故障排查

常见错误与修复

ModuleNotFoundError: tesseract

安装 Tesseract 系统二进制:brew install tesseract / apt install tesseract-ocr

验证: `tesseract --version`
Empty output on PDF

很可能是纯图片 PDF——加上 ocr=true 重新运行

验证: Check output.metadata.has_text_layer
XLSX tables come out jumbled

显式指定工作表名称:工具支持 sheet 参数

替代方案

Kreuzberg 对比其他方案

替代方案何时用它替代权衡
markdownify-mcp你想要一个更轻量的基于 Node 的转换器,不需要 OCR格式支持较少,不保留表格结构
Unstructured.io你需要企业级 PDF 解析,且能接受云服务费用付费;云托管

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills