kreuzberg MCP搭建以及配合claude使用

Kreuzberg是一个高性能的多格式文档处理工具,支持56+种文件格式的文本提取、OCR处理和元数据提取,适用于多语言环境下的文档处理需求。

主要特点

  1. 可扩展架构 --用于自定义OCR后端、验证器、后处理器和文档提取器的插件系统

  2. 通晓多种语言的人

    --Rust、Python、TypeScript/Node.js、Ruby、Go、Java、C#、PHP和Elixir的原生绑定

  3. 56种文件格式 --PDF、Office文档、图像、HTML、XML、电子邮件、档案、8类学术格式

  4. OCR支持

    --Tesseract(通过本机绑定的所有语言)、EasyOCR/PaddleOCR(Python)、Guten(Node.js),可通过插件API扩展

  5. 高性能 --具有原生PDFium、SIMD优化和完全并行性的Rust核心

  6. 灵活部署 --用作库、CLI工具、REST API服务器或MCP服务器

  7. 内存效率高 --多GB文件的流式解析器

安装方式
1.Java

需要 Java 25 或更高版本(FFM/Panama API)。本地库已打包在 JAR 文件中。

powershell 复制代码
<dependency>
    <groupId>dev.kreuzberg</groupId>
    <artifactId>kreuzberg</artifactId>
    <version>4.8.6</version>
</dependency>`

2.Go

WSL里面安装步骤如下

powershell 复制代码
~ sudo apt update
# 由于用VPN一直下载不下来改用skopeo, 如果可以请直接用
# (docker pull ghcr.io/kreuzberg-dev/kreuzberg:latest)
~ sudo apt install skopeo
~ skopeo copy docker://ghcr.io/kreuzberg-dev/kreuzberg:latest docker-archive:kreuzberg.tar
~ ls -lh /home/minieye/kreuzberg.tar
-rw-r--r-- 1 minieye minieye 1.7G Apr 14 14:47 /home/minieye/kreuzberg.tar
~ docker load -i /home/minieye/kreuzberg.tar
Loaded image ID: sha256:77166e73afcc775818fff6452bd19a7c5d8af09d3a90e5100babefb5ecdd69da
#手动打上tag
~ docker images --all --no-trunc
REPOSITORY                                                       TAG                 IMAGE ID                                                                  CREATED         SIZE
<none>                                                           <none>              sha256:77166e73afcc775818fff6452bd19a7c5d8af09d3a90e5100babefb5ecdd69da   15 hours ago    3.48GB
~ docker tag 77166e73afcc ghcr.io/kreuzberg-dev/kreuzberg:latest
~ docker images --all --no-trunc
REPOSITORY                                                       TAG                 IMAGE ID                                                                  CREATED         SIZE
ghcr.io/kreuzberg-dev/kreuzberg                                  latest              sha256:77166e73afcc775818fff6452bd19a7c5d8af09d3a90e5100babefb5ecdd69da   15 hours ago    3.48GB
#确认下载的是否有mcp模式, 而不用再走 HTTP API 包装,后面直接把它接进 Claude Code 就行。
 docker run --rm -i ghcr.io/kreuzberg-dev/kreuzberg:latest 命令是启动 kreuzberg 容器作为 MCP 服务器来运行。拆解一下各个参数:
  - docker run --- 启动一个新容器
  - --rm --- 容器退出后自动删除,不留残留
  - -i --- 保持标准输入 (stdin) 开启,这是 stdio 模式 MCP 通信必须的
  - ghcr.io/kreuzberg-dev/kreuzberg:latest --- 使用的镜像

  为什么要这样运行?

  Claude Code 通过 stdio 和 MCP 服务器通信,也就是通过标准输入/输出发送 JSON 消息。-i 让容器保持 stdin 开启,这样 Claude 就能把请求发进去,容器处理后把结果输出回来。

  你的启动脚本 kreuzberg-mcp.sh 实际上是这样运行的:

  docker run --rm -i \
    -v /home/minieye/claude-files:/files:ro \
    ghcr.io/kreuzberg-dev/kreuzberg:latest \
    mcp

  多了两个东西:
  - -v /home/minieye/claude-files:/files:ro --- 把你本地的文件目录挂载进容器(只读)
  - mcp --- 告诉 kreuzberg 以 MCP 服务器模式启动
  
~  docker run --rm ghcr.io/kreuzberg-dev/kreuzberg:latest --help
  Command-line interface for Kreuzberg document intelligence

  Usage: kreuzberg [OPTIONS] <COMMAND>

  Commands:
    extract             Extract text from a document
    extract-structured  Extract structured data from a document using an LLM
    batch               Batch extract from multiple documents
    detect              Detect MIME type of a file
    formats             List all supported document formats
    version             Show version information
    cache               Cache management operations
    serve               Start the API server
    mcp                 Start the MCP (Model Context Protocol) server
    api                 API utilities
    embed               Generate embeddings for text
    chunk               Chunk text for processing
    completions         Generate shell completions
    help                Print this message or the help of the given subcommand(s)
# 每次 Claude Code 需要用 kreuzberg 时, 自动启动一个临时容器,把 /home/minieye/claude-files 挂载为容器里的 /files, 以 MCP 模式运行 
~ mkdir -p /home/minieye/bin  /home/minieye/claude-files
~ cat > /home/minieye/bin/kreuzberg-mcp.sh <<'EOF'
#!/usr/bin/env bash
  set -euo pipefail
  exec 2>>/tmp/kreuzberg-mcp.log
  echo "[$(date -Is)] starting kreuzberg wrapper, PATH=$PATH" >&2
  DOCKER_BIN="$(command -v docker || true)"
  echo "[$(date -Is)] docker=$DOCKER_BIN" >&2
  if [ -z "$DOCKER_BIN" ]; then
    echo "[$(date -Is)] docker not found" >&2
    exit 127
  fi
  exec "$DOCKER_BIN" run --rm -i \
    -v /home/minieye/claude-files:/files:ro \
    ghcr.io/kreuzberg-dev/kreuzberg:latest \
    mcp
  EOF

~ chmod +x /home/minieye/bin/kreuzberg-mcp.sh
#!/usr/bin/env bash  一定要左对齐贴边


# ~/.claude.json 里的 MCP 配置, json的根目录添加如下
~ vim ~/.claude.json

"mcpServers": {
    "kreuzberg": {
      "type": "stdio",
      "command": "/home/minieye/bin/kreuzberg-mcp.sh",
      "args": [],
      "env": {}
    }
  }
# 注册到 Claude Code
~ claude mcp remove kreuzberg 2>/dev/null || true
~ claude mcp add -s user kreuzberg -- /home/minieye/bin/kreuzberg-mcp.sh
~ claude mcp list
kreuzberg: /home/minieye/bin/kreuzberg-mcp.sh  - ✓ Connected

~ claude hi
 ▐▛███▜▌   Claude Code v2.1.107
▝▜█████▛▘  Sonnet 4.6 (1M context) · API Usage Billing
  ▘▘ ▝▝    /home/minieye

❯ hi

● Hi! How can I help?

● Ran 1 stop hook (ctrl+o to expand)
  ⎿  Stop hook error: Failed with non-blocking status code: /bin/sh: 1: notify-send: not found

❯ 帮我分析 /files/123.pdf 写的是什么

● 我刚才已经读取过这个文件了,让我告诉你内容:
  这是一张中国铁路电子客票发票,具体信息如下:
  基本信息:
  - 发票类型:电子发票(铁路电子客票)........................
  

#  如果你不再需要 HTTP API,再执行:
~ docker stop kreuzberg
~ docker rm kreuzberg

也可以在vscode里面使用了, kreuzberg相比于claude直接解析文件所用的token更少且解析的文件更精准

链接:
https://docs.kreuzberg.dev/getting-started/installation/
https://github.com/kreuzberg-dev/kreuzberg

相关推荐
ZC跨境爬虫2 小时前
3D 地球卫星轨道可视化平台开发 Day5(简介接口对接+规划AI自动化卫星数据生成工作流)
前端·人工智能·3d·ai·自动化
CoderJia程序员甲2 小时前
GitHub 热榜项目 - 日榜(2026-04-20)
ai·大模型·llm·github·ai教程
xixixi777772 小时前
Gartner 2026核心趋势:前置式主动安全(PCS)成为安全战略新范式,量子安全+国密算法构筑政企纵深防御底座
网络·人工智能·安全·web安全·ai·量子计算
带娃的IT创业者2 小时前
深度解析 Qwen3.6-35B-A3B:重塑 AI 编程代理的开源新标杆
人工智能·python·ai·开源·大模型·qwen·编程代理
三千星2 小时前
Java开发者转型AI工程化Week 2:从核心能力到生产就绪
java·ai编程
实在智能RPA2 小时前
内容运营自动化AI工具选型指南:2026企业级智能内容工程实践全解析
人工智能·ai·自动化·媒体
实在智能RPA3 小时前
电商运营自动化AI工具有哪些?哪个最好用?——2026年全链路智能体选型深度指南
大数据·人工智能·ai·自动化
刘佬GEO3 小时前
没时间写内容还能做 GEO:方法、流程与可操作方案
大数据·网络·人工智能·搜索引擎·ai
codeRichLife3 小时前
Claude Code常用命令
ai编程·claude code