OCR服务

MCP OCR Server是一个基于原生Tesseract(C++)的高性能OCR服务,通过Node.js封装,易于集成并与ChatGPT Desktop兼容。

  • by dangvinh
  • C++
  • 本地部署
  • 11 星标
  • 更新于
在 GitHub 查看 dangvinh/mcp-ocr-server

使用说明

MCP OCR服务器

MCP服务器使用原生Tesseract(C++)进行OCR,使用Node.js构建,提供高性能OCR,可与ChatGPT Desktop集成。

🚧 进行中🚧

✨ 功能(计划中)

  • 通过本机Tesseract(C++)实现高性能OCR
  • Node.js MCP服务器包装器,便于集成
  • 与ChatGPT桌面和其他MCP客户端兼容
  • Benchmark与tesseract.js的比较

📌 路线图

  • []步骤1:C++OCR CLI工具
  • []步骤2:Node.js MCP服务器包装器
  • []步骤3:ChatGPT桌面配置指南
  • []步骤4:基准测试结果
  • []步骤5:演示视频

🔧 技术栈

  • C++(Tesseract OCR)
  • Node.js+TypeScript(@modelcontextprotocol/sdk)
  • JSON-RPC 2.0(MCP标准)

🛠 安装

1.安装Tesseract OCR

macOS

brew install tesseract
# Optional: install additional languages
brew install tesseract-lang

Linux(Ubuntu/Debian)

sudo apt update
sudo apt install tesseract-ocr libtesseract-dev libleptonica-dev
# Optional: install Vietnamese language
sudo apt install tesseract-ocr-vie

视窗

choco install tesseract
  • 将安装路径添加到您的 PATH 环境变量。

2.克隆存储库

git clone https://github.com/dangvinh/mcp-ocr-server.git
cd mcp-ocr-server/cpp

3.使用CMake构建项目

您可以使用提供的npm脚本构建C++OCR引擎。运行:

npm run build-core

此命令将创建 cpp/build-core 目录,使用CMake配置项目,并构建静态库和CLI工具。

它构建了什么:

  • libmcp_ocr.a 静态库
  • ocr_cli 可执行文件 cpp/build-core/bin (或同等)

运行测试

# From the build directory
ctest --verbose
  • 这将运行所有基于GoogleTest的测试。
  • 确保测试映像或资源存在于 cpp/tests 或 examples/.
  • 该设置适用于跨平台(macOS、Linux、Windows)。

4.构建Node.js插件

Node.js插件可以使用提供的npm脚本构建。运行:

npm run build-addon

此命令运行 node-gyp 里面 cpp/ 目录并生成编译后的插件(ocr_addon.node)里面 cpp/build/Release/此插件是Node.js与C++核心集成所必需的。


🗂 设置tessdata

OCR引擎需要经过训练的数据文件才能工作。请按照以下步骤操作:

  1. 创建一个 tessdata 项目根目录中的文件夹:
mkdir tessdata
  1. 下载英语培训数据:
wget https://github.com/tesseract-ocr/tessdata/raw/main/eng.traineddata -P tessdata/
  1. 对于其他语言,请下载相应的 .traineddata 文件进入 tessdata/.

  2. 确保您的 .env 或 .env.example 有:

TESSDATA_PREFIX=./tessdata
OCR_LANG=eng

4.运行OCR CLI

./ocr_cli path/to/image.png

确保 tessdata 语言文件可以访问该文件夹。该项目支持macOS、Linux和Windows(跨平台)。