图片里的文字想直接复制?截图里的代码想自动提取?这种事以前只能靠手动打字,现在 OpenCode 接上 Tesseract MCP Server,几秒钟搞定。
GitHub:https://github.com/tesseract-ocr/tesseract,74,233 Stars,Apache-2.0
OCR 这个需求太常见了——老文档电子化、截图转文字、PDF 里提取文本。但 AI 编程工具以前没法原生处理图片里的文字,得先把图片转成可读文本再喂给 AI。这个痛点,Tesseract + OpenCode MCP 终于给接上了。
Tesseract 是个老牌 OCR 引擎,1985 年由 HP 实验室开发,2005 年开源,2006-2017 年由 Google 维护,现在是社区主导的开源项目(当前维护者 Zdenko Podobny)。
核心数据:
| 项目 | 数据 |
|---|---|
| Stars | 74,233 |
| Forks | 10,625 |
| 当前稳定版 | v5.0.0(2021-11-30 发布) |
| 支持语言 | 100+(开箱即用) |
| 输出格式 | plain text、hOCR(HTML)、PDF、TSV、ALTO、PAGE |
| 许可协议 | Apache-2.0 |
Tesseract 4 之后引入了 LSTM 神经网络引擎,专注于行识别,同时也保留了 3.x 版本的传统模式(可通过 --oem 0 切换)。支持 Unicode UTF-8,各种常见图片格式都能读。
⚠️ 重要提醒:Tesseract 本身不包含 GUI,如果需要图形界面,要用第三方项目。另外,想要高识别率,图片质量是关键——分辨率低、文字模糊、背景杂乱的图,OCR 效果会很差。
Tesseract 是 C++ 原生库,OpenCode 通过 MCP(Model Context Protocol)协议跟它通信,这个桥接工作由 mcp-ocr-server(github.com/dangvinh/mcp-ocr-server)完成。
| 项目 | 数据 |
|---|---|
| Stars | 11 |
| 技术栈 | Node.js + TypeScript + C++ Tesseract |
| 性能宣称 | 比 tesseract.js 快 10 倍(原生 C++ 调用) |
| 状态 | 🚧 开发中(Roadmap 还未完成) |
这个项目 Stars 不多(11 颗),还是个 WIP 状态,但它打通了 Tesseract 原生库和 MCP 协议,用法值得研究。如果是生产级 OCR 需求,建议先直接用命令行调用 Tesseract,等这个项目成熟再用 MCP 方式接入。
OpenCode 支持两种 MCP 连接方式:
local 类型——在本机以子进程方式运行 MCP server,通过 stdio 通信:
{
"mcpServers": {
"tesseract": {
"type": "local",
"command": ["node", "/path/to/mcp-ocr-server/dist/index.js"],
"environment": {
"TESSDATA_PREFIX": "./tessdata",
"OCR_LANG": "eng"
}
}
}
}
remote 类型——连接到远程 MCP server(通过 HTTP):
{
"mcpServers": {
"tesseract-remote": {
"type": "remote",
"url": "https://your-mcp-server.com/mcp",
"timeout": 30000
}
}
}
配置好后,OpenCode 的 Agent 可以直接调用 Tesseract 的 OCR 能力——给它发一张截图,它就能读出里面的文字。
方式一:Chocolatey(推荐)
choco install tesseract
方式二:直接下载
去 github.com/tesseract-ocr/tesseract/releases 下载 Windows 安装包,然后手动加到 PATH 里。
⚠️ 踩坑记录:Windows 下 Chocolatey 安装 Tesseract 后,默认安装路径是 C:\Program Files\Tesseract-OCR\,需要确保这个路径在系统 PATH 环境变量里,否则命令行 tesseract 找不到。验证方法:打开 PowerShell,输入 tesseract --version,能正常输出版本号说明装好了。
Tesseract 需要 .traineddata 文件才能识别语言。从官方 tessdata 仓库下载:
# 创建 tessdata 目录
mkdir tessdata
# 下载英文训练数据
wget https://github.com/tesseract-ocr/tessdata/raw/main/eng.traineddata -P tessdata/
# 下载简体中文训练数据(如需要)
wget https://github.com/tesseract-ocr/tessdata/raw/main/chi_sim.traineddata -P tessdata/
TESSDATA_PREFIX 环境变量指向包含这些 .traineddata 文件的目录。
mcp-ocr-server 需要先编译 C++ 部分,再构建 Node.js 包装层:
git clone https://github.com/dangvinh/mcp-ocr-server.git
cd mcp-ocr-server
# 安装依赖
npm install
# 编译 C++ OCR 核心
npm run build-core
# 编译 Node.js addon
npm run build-addon
在 OpenCode 配置文件里加上:
{
"mcpServers": {
"ocr": {
"type": "local",
"command": ["node", "C:/path/to/mcp-ocr-server/dist/index.js"],
"environment": {
"TESSDATA_PREFIX": "C:/path/to/mcp-ocr-server/tessdata",
"OCR_LANG": "eng"
},
"timeout": 30000
}
}
}
重启 OpenCode,MCP server 启动后就可以用了。
配置好后,可以直接在 OpenCode 里这样用:
给我提取这张截图里的所有文字:/path/to/screenshot.png
OpenCode 会通过 MCP 调用 Tesseract,返回图片中的文本内容。
mcp-ocr-server 还是 WIP 状态,如果你只是想快速用 Tesseract OCR,可以直接装个命令行版本,不需要 MCP:
# Windows 上直接用 choco 装
choco install tesseract
# 基本用法
tesseract imagename.png outputbase [-l lang] [--oem ocrenginemode] [--psm pagesegmode]
# 示例:识别英文,输出纯文本
tesseract screenshot.png result -l eng
# 示例:识别简体中文
tesseract chinese-doc.png result -l chi_sim
# 示例:输出为 hOCR HTML 格式
tesseract screenshot.png result -l eng hocr
OpenCode 本身也可以通过 bash 工具直接调用系统里的 tesseract 命令,本质上是一样的。
| 场景 | 推荐方案 |
|---|---|
| 快速原型验证 | 直接 choco install tesseract,bash 里调命令行 |
| 正式项目,需要 AI Agent 自动处理图片 OCR | 等 mcp-ocr-server 成熟后通过 MCP 接入 |
| 对识别率要求极高 | 先用 Tesseract CLI + 调参(图片预处理、去噪、二值化),效果比直接跑更好 |
| 多语言文档处理 | 下载对应语言的 .traineddata,用 -l lang1+lang2 组合 |
OpenCode 的 MCP 扩展机制让它不只是一个编程助手——接上 Tesseract,就是一个能"看图识字"的多模态 Agent。这个组合的想象空间挺大:自动化学籍文档识别、代码截图转可运行代码、老PDF文本提取……都是实实在在的痛点。
mcp-ocr-server 现在才 11 Stars,Roadmap 还没走完,如果你在实际项目中用了,有问题可以去 GitHub 提 Issue,这个项目目前还处于需要社区参与的阶段。
你在 OpenCode 里用过 OCR 相关的功能吗?或者有什么图片转文字的需求?评论区说说。
💬 评论区