MCP OCR Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP OCR Serverextract text from image.png"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP OCR Server
MCP server for OCR using native Tesseract (C++), built with Node.js, delivering high-performance OCR and integrable with ChatGPT Desktop.
🚧 Work in Progress 🚧
✨ Features (planned)
High-performance OCR via native Tesseract (C++)
Node.js MCP server wrapper for easy integration
Compatible with ChatGPT Desktop and other MCP clients
Benchmark vs tesseract.js
📌 Roadmap
Step 1: C++ OCR CLI tool
Step 2: Node.js MCP server wrapper
Step 3: ChatGPT Desktop configuration guide
Step 4: Benchmark results
Step 5: Demo video
🔧 Tech Stack
C++ (Tesseract OCR)
Node.js + TypeScript (@modelcontextprotocol/sdk)
JSON-RPC 2.0 (MCP standard)
🛠Installation
1. Install Tesseract OCR
macOS
brew install tesseract
# Optional: install additional languages
brew install tesseract-langLinux (Ubuntu/Debian)
sudo apt update
sudo apt install tesseract-ocr libtesseract-dev libleptonica-dev
# Optional: install Vietnamese language
sudo apt install tesseract-ocr-vieWindows
Download installer from Tesseract OCR GitHub
Or using Chocolatey:
choco install tesseractAdd the installation path to your
PATHenvironment variable.
2. Clone the repository
git clone https://github.com/dangvinh/mcp-ocr-server.git
cd mcp-ocr-server/cpp3. Build the project with CMake
You can build the C++ OCR engine using the provided npm script. Run:
npm run build-coreThis command will create the cpp/build-core directory, configure the project with CMake, and build the static library and CLI tool.
What it builds:
libmcp_ocr.astatic libraryocr_cliexecutable incpp/build-core/bin(or equivalent)
Running tests
# From the build directory
ctest --verboseThis will run all GoogleTest-based tests.
Ensure test images or resources exist in
cpp/testsorexamples/.The setup works cross-platform (macOS, Linux, Windows).
4. Build the Node.js addon
The Node.js addon can be built using the provided npm script. Run:
npm run build-addonThis command runs node-gyp inside the cpp/ directory and produces the compiled addon (ocr_addon.node) inside cpp/build/Release/. This addon is required for Node.js integration with the C++ core.
🗂 Setup tessdata
The OCR engine requires trained data files to work. Please follow these steps:
Create a
tessdatafolder in the project root:
mkdir tessdataDownload the English trained data:
wget https://github.com/tesseract-ocr/tessdata/raw/main/eng.traineddata -P tessdata/For other languages, download the corresponding
.traineddatafiles intotessdata/.Ensure your
.envor.env.examplehas:
TESSDATA_PREFIX=./tessdata
OCR_LANG=eng4. Run OCR CLI
./ocr_cli path/to/image.pngEnsure the
tessdatafolder is accessible for language files. The project supports macOS, Linux, and Windows (cross-platform).
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dangvinh/mcp-ocr-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server