mineru-ocr

$npx mdskill add cat-xierluo/legal-skills/mineru-ocr

Convert PDF, web pages, and scanned docs to Markdown.

  • Extracts text from PDFs, images, tables, and formulas.
  • Uses MinerU API with optional token authentication.
  • Switches between lightweight and standard modes automatically.
  • Delivers formatted Markdown output for further processing.

SKILL.md

.github/skills/mineru-ocrView on GitHub ↗
---
name: mineru-ocr
homepage: https://github.com/cat-xierluo/legal-skills
author: 杨卫薪律师(微信ywxlaw)
version: "1.2.0"
description: 将本地文档、远程文档 URL 或网页 URL 转换为 Markdown。默认使用免登录轻量接口开箱即用;若已配置 MinerU Token,则自动切换到标准 API。保留 archive 回溯能力,并支持 Token 自检与私有部署连接说明。本技能应在用户需要 PDF 转 Markdown、OCR、远程文档转换、网页内容提取、表格识别、公式识别、文档转换、图片转文字、扫描件转换时使用。
license: Complete terms in LICENSE.txt
---
# MinerU PDF 转 Markdown

## 前置配置

> **默认 Auto 模式**:未配置 Token 时,自动使用官方免登录轻量接口;配置 Token 后,自动切换到标准 API。

### 免配置快速使用

- 无需登录、无需创建 `.env`
- 适合快速转换本地小文件或远程文档 URL
- 受官方轻量接口限制影响:按 IP 限频、单文件 10 MB、最多 20 页

### 升级到标准 API(可选)

如遇到以下情况,建议配置 Token:

- 文件超过 10 MB
- 页数超过 20 页
- 轻量接口遇到 IP 限频
- 需要提取网页 URL
- 希望更稳定地使用标准 API 配额

### 申请 API Token

1. 访问 [https://mineru.net/apiManage/token](https://mineru.net/apiManage/token)
2. 注册/登录账号
3. 创建 API Token 并复制(格式:`eyJ0eXAiOiJKV1QiLCJhbGc...`)

### 配置 Token

**方式一:让 AI 配置**

> "帮我配置 MinerU,Token 是:`xxx`"

**方式二:手动配置**

```bash
cd .claude/skills/mineru-ocr/config
cp .env.example .env
nano .env  # 填入 MINERU_API_TOKEN
```

**方式三:复用官方 CLI 已保存的 Token**

如果你已经跑过官方 `mineru-open-api auth`,本 skill 也会尝试回退读取 `~/.mineru/config.yaml` 中保存的 Token。

当前读取优先级为:

1. 本 skill 的 `.claude/skills/mineru-ocr/config/.env` 中的 `MINERU_API_TOKEN`
2. 环境变量 `MINERU_API_TOKEN`
3. 环境变量 `MINERU_TOKEN`
4. 官方 CLI 配置 `~/.mineru/config.yaml`

### Token 更新

按当前规则,Token 有效期 **3 个月(约 90 天)**。过期后转换失败(错误 `401` 或 `Unauthorized`)。

更新方法:告诉 AI "我的 MinerU Token 过期了,新的 Token 是:xxx"

---

## 功能说明

通过 MinerU 将文档转换为 Markdown 格式,支持:

- Auto 模式:无 Token 走免登录轻量接口,有 Token 走标准 API
- PDF、DOC、DOCX、PPT、PPTX、PNG、JPG、JPEG
- 本地文件、远程文档 URL、网页 URL
- OCR 文字识别
- 表格识别和保留
- 数学公式识别
- 结果归档,保留 Markdown、接口响应和相关图片资源,便于回溯

## 能力边界

| 场景 | 免登录轻量接口 | 标准 Token API |
| ---- | -------------- | -------------- |
| 本地 PDF / 图片 / Docx / Pptx | 支持 | 支持 |
| 远程文档 URL(PDF、图片、Doc/Docx、PPT/PPTx) | 支持 | 支持 |
| 网页 URL / HTML | 不支持 | 支持 |
| 单文件大小 | 10 MB 内 | 200 MB 内 |
| 页数限制 | 20 页内 | 600 页内 |
| 表格识别 | 不支持,按官方口径需升级到标准模式 | 支持 |
| 公式识别 | 不支持,按官方口径需升级到标准模式 | 支持 |
| 输出 | Markdown | Zip 结果包 + Markdown / JSON / 额外格式 |

### 轻量模式适用

- 初次使用、快速试跑
- 本地小文件
- 远程 PDF / Doc / Ppt 链接
- 不要求表格识别、公式识别

### 标准 API 适用

- 大文件、长文档
- 对表格、公式、复杂版面更敏感的场景
- 网页 URL 提取
- 希望获得更完整的结果包并保留更多中间结果

## 使用方法

```bash
/usr/bin/osascript -l JavaScript .claude/skills/mineru-ocr/scripts/convert.js "/path/to/file.pdf"
/usr/bin/osascript -l JavaScript .claude/skills/mineru-ocr/scripts/convert.js "https://cdn-mineru.openxlab.org.cn/demo/example.pdf"
/usr/bin/osascript -l JavaScript .claude/skills/mineru-ocr/scripts/convert.js "https://example.com/article"
/usr/bin/osascript -l JavaScript .claude/skills/mineru-ocr/scripts/convert.js checktoken
```

## 配置选项

编辑 `.claude/skills/mineru-ocr/config/.env`:

| 选项                  | 默认值   | 说明            |
| --------------------- | -------- | --------------- |
| MINERU_API_TOKEN      | 空       | 可选;填写后强制走标准 Token API |
| MINERU_ENABLE_OCR     | true     | 启用 OCR        |
| MINERU_ENABLE_TABLE   | true     | 启用表格识别;主要对标准 Token API 生效 |
| MINERU_ENABLE_FORMULA | false    | 启用公式识别;主要对标准 Token API 生效 |
| MINERU_LANGUAGE_CODE  | ch       | 语言代码        |
| MINERU_API_BASE       | `https://mineru.net/api/v4` | 标准 API 地址 |
| MINERU_MODEL_VERSION  | `pipeline` | 标准 Token API 模型;法律文档建议默认 `pipeline`,复杂版面可改 `vlm` |
| MINERU_PAGE_RANGES    | 空       | 标准 Token API 页码范围,如 `1-20`、`2,4-6` |
| MINERU_POLL_MAX       | 20       | 最大轮询次数    |
| MINERU_POLL_SLEEP     | 10       | 轮询间隔(秒)  |
| MINERU_LOG_LEVEL      | medium   | 日志等级        |

## 输出

- **本地文件**:Markdown 保存到源文件同目录
- **远程文档 URL / 网页 URL**:Markdown 默认保存到执行命令时的当前目录
- **归档**:`.claude/skills/mineru-ocr/archive/日期_时间_文件名/`
- **归档内容**:转换得到的 Markdown、接口响应、原始输入文件,以及可下载的图片资源清单

## 法律文档建议

- 默认保持 `MINERU_MODEL_VERSION=pipeline`
- 对起诉状、证据目录、法院通知、传票这类正式材料,优先追求稳定和低幻觉风险,不建议默认改成 `vlm`
- 只有在扫描质量差、版面极复杂、表格密集时,再考虑切到 `vlm`
- 如果只需要先看卷宗前几页,可设置 `MINERU_PAGE_RANGES=1-20`

## Token 自检

当你想确认当前 Token 是否有效时,可运行:

```bash
/usr/bin/osascript -l JavaScript .claude/skills/mineru-ocr/scripts/convert.js checktoken
```

- 未配置 Token:会提示当前处于轻量模式
- Token 有效:会提示标准 API 可用
- Token 失效:会明确提示重新申请与更新

## 云端模式 / 自定义地址

当前 skill 仅面向 **官方云端 API**。

如需走你自己的云端转发网关,且该网关 **兼容官方 v4 API**,可在 `.env` 中修改:

```bash
MINERU_API_BASE=https://your-gateway.example.com/api/v4
```

当前脚本默认适配的是官方云端 v4 API 工作流。

如果你部署的是官方 `mineru-api` / `mineru-router` FastAPI 服务,它们主要暴露的是 `/tasks`、`/file_parse` 等接口,**不在本 skill 当前支持范围内**。这类场景建议:

- 优先使用官方 CLI / SDK 直连自建服务
- 本 skill 继续只维护云端模式,避免混入第二套协议

## 关于官方 Crawl

官方 skill 中的网页提取主要是通过 CLI 的 `mineru-open-api crawl <url>` 实现的,属于 **Token 模式能力**,不是轻量接口能力。

这里的 CLI 是 **官方提供的命令行封装层**。CLI 底层仍然会调用 MinerU 的云端 API;它不是本地离线解析器。

你当前这个 skill 现在也支持网页 URL,但仅在 **已配置 Token** 时启用;未配置 Token 时,网页 URL 会提示用户改用标准 API。

## 故障排除

| 问题             | 解决方案                                       |
| ---------------- | ---------------------------------------------- |
| 轻量接口限频     | 稍后重试,或配置 Token 切换到标准 API         |
| 文件过大 / 页数过多 | 配置 Token,改走标准 API                    |
| 网页 URL 无法轻量解析 | 轻量接口不支持 HTML,请配置 Token          |
| 401/Unauthorized | Token 已过期,重新申请并更新                   |
| 转换超时         | 增加 `MINERU_POLL_MAX` 或检查文件大小         |
| 配额不足         | 检查 MinerU 账户额度                           |

More from cat-xierluo/legal-skills

SkillDescription
clawhub-sync将本地开发的 Skills 批量同步到 ClawHub 平台。支持智能 .gitignore 过滤、白名单控制、增量同步、单个 skill 同步。本技能应在用户需要将本地 skills 发布到 ClawHub、批量同步技能、检查发布状态时使用。
code2patent从已开发代码项目中提取技术实现证据,围绕候选专利方案生成技术交底书,并以“权利要求布局卡 → 发明专利初稿”两步法继续生成接近可申报版的中国发明专利起草材料。触发场景包括:读取代码仓库后撰写技术交底书、将人工总结的专利方案映射到具体实现、从代码中挖掘可专利技术方案、为专利代理师准备权利要求布局和发明专利初稿。
course-generator从多个文献内容中系统化提取并生成结构化课程。支持 1-100+ 个文献文件,智能识别内容类型(转录/文献/混合),自动进行主题识别、课程大纲生成、总览与章节内容撰写。采用可选模块架构,适应不同类型内容(理论/实践/案例/历史等)。本技能应在用户需要将多个文献整理为系统化课程、生成学习材料、处理转录内容、或从复杂文稿中提取结构化内容时使用。
court-sms本技能应在用户收到法院短信(文书送达、立案通知、开庭提醒等)时使用,自动提取案号、当事人、下载链接,下载文书并归档到对应案件目录。
de-ai-polish检测并去除文章中的AI化表述模式,用于写作润色、文本优化、去AI腔。
douyin-batch-download抖音视频批量下载工具 - 基于 F2 框架实现高效、增量的视频下载功能。支持单个/批量博主下载,自动 Cookie 管理,差量更新机制。本技能应在用户需要批量下载特定博主视频、服务器部署自动化下载、或定期更新视频库时使用。
funasr-transcribe使用本地 FunASR 服务将音频或视频文件转录为带时间戳的 Markdown 文件,支持 mp4、mov、mp3、wav、m4a 等常见格式。本技能应在用户需要语音转文字、会议记录、视频字幕、播客转录时使用。
git-batch-commit智能 Git 批量提交工具。当用户说 "git 提交"、"git commit"、"批量提交"、"拆分提交"、"整理提交" 时使用,或者当用户暂存了多个不同类型的文件需要分开提交时使用。自动将混合的文件修改按类型分类(依赖管理、文档更新、license 文件、配置、源代码等),并创建多个清晰聚焦的提交,使用标准化的提交信息格式。帮助保持清晰的 Git 历史,确保每个提交都有单一、明确的目的。使用英文前缀(docs:、feat:、fix: 等)加中文内容,支持 GitHub 彩色标签显示。
github-star-managerGitHub Star 项目管理工具,支持从内容自动发现并 Star 项目,同步追踪更新,生成可视化 Dashboard
legal-proposal-generator根据案件材料或沟通记录生成各类法律服务文档(诉讼方案、咨询报告、非诉方案、建议书、沟通报告、案件分析摘要等)。本技能应在用户需要将案件材料、咨询记录或沟通内容整理为专业法律文档时使用。