ocr-mcp
This server provides OCR (Optical Character Recognition) processing capabilities, allowing you to submit documents and retrieve structured results.
Submit documents for OCR (
parse_document): Upload a document via local file path, URL, or base64-encoded content; configure language, backend engine, page range, formula/table detection, and parse method; optionally wait for completion or submit asynchronously.Check task status (
get_task_status): Retrieve the current status and metadata of a submitted OCR task by its task ID.Read extracted markdown (
get_markdown): Page through a task's OCR result as markdown text using offset and max-length parameters, suitable for large documents.Get structured content blocks (
get_content_blocks): Retrieve paginated structured content blocks (text, tables, formulas) from a task's result, with optional filtering by page index.Get full result summary (
get_full_result): Fetch task metadata along with capped markdown and content blocks in a single call, best suited for smaller documents.Reprocess a task (
reprocess_task): Re-run OCR on an existing task with optional adjustments such as page rotation, different backend, language, or selected page indices.List tasks (
list_tasks): View and search all OCR tasks associated with the configured API key, with pagination support.
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., "@ocr-mcpParse the document at https://example.com/report.pdf"
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.
OcrPlane CLI
Agent-friendly command line client for the OcrPlane/MineRU OCR API.
ocrplane-cli is the installable package and Docker image name. The installed
command is ocrplane.
Features
Typer command line interface
Pydantic v2 input and output models
Rich human-readable terminal output
Stable
--jsonoutput for agents--dry-runrequest planningAsync submit plus polling and paginated result reads
Related MCP server: MCP Document Parse Tool
Requirements
Python 3.11+
An OcrPlane API base URL
An API key from OcrPlane
Online Install
Recommended install with uv:
uv tool install "git+https://github.com/asharca/ocrplane-cli.git"
ocrplane --helpRun once without installing:
uvx --from "git+https://github.com/asharca/ocrplane-cli.git" ocrplane --helpUpgrade later:
uv tool upgrade ocrplane-cliAlternative isolated install with pipx:
pipx install "git+https://github.com/asharca/ocrplane-cli.git"
ocrplane --helpIf the repository is private or you prefer SSH:
pipx install "git+ssh://git@github.com/asharca/ocrplane-cli.git"
ocrplane --helpUpgrade later:
pipx upgrade ocrplane-cliInstall into the current Python environment with pip:
python3 -m pip install "git+https://github.com/asharca/ocrplane-cli.git"
ocrplane --helpRun directly with Docker:
docker run --rm \
-e OCRPLANE_BASE_URL="https://ocr.rhzy.ai" \
-e OCRPLANE_API_KEY="mk_xxxxxxxxxxxxxxxxxxxx" \
-v "$PWD:/workspace" \
ghcr.io/asharca/ocrplane-cli:latest \
parse /workspace/report.pdf --jsonmacOS Install
Using the system Python or Homebrew Python:
cd ~/Code/ocrplane-cli
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .
ocrplane --helpIf python3 is missing:
brew install pythonInstall with uv:
brew install uv
uv tool install "git+https://github.com/asharca/ocrplane-cli.git"
ocrplane --helpOr install uv with the official standalone installer:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install "git+https://github.com/asharca/ocrplane-cli.git"
ocrplane --helpOptional isolated install with pipx:
brew install pipx
pipx ensurepath
pipx install "git+https://github.com/asharca/ocrplane-cli.git"
ocrplane --helpLinux Install
Debian/Ubuntu:
sudo apt-get update
sudo apt-get install -y python3 python3-venv python3-pip git
cd ~/code/ocrplane-cli
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .
ocrplane --helpRHEL/CentOS/Fedora:
sudo dnf install -y python3 python3-pip git
cd ~/code/ocrplane-cli
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .
ocrplane --helpOptional isolated install with pipx:
python3 -m pip install --user pipx
python3 -m pipx ensurepath
pipx install "git+https://github.com/asharca/ocrplane-cli.git"
ocrplane --helpInstall with uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install "git+https://github.com/asharca/ocrplane-cli.git"
ocrplane --helpRun once with uvx:
uvx --from "git+https://github.com/asharca/ocrplane-cli.git" ocrplane --helpConfigure
Set the API endpoint and key:
export OCRPLANE_BASE_URL="https://ocr.rhzy.ai"
export OCRPLANE_API_KEY="mk_xxxxxxxxxxxxxxxxxxxx"Compatibility aliases are also supported:
MINERU_API_BASE_URL
MINERU_BASE_URL
MINERU_API_KEY
API_KEY
APIKEYPrefer OCRPLANE_BASE_URL and OCRPLANE_API_KEY for new setups.
To keep local secrets out of git:
cp .env.example .envThen edit .env and load it before using the CLI:
set -a
source .env
set +aQuick Start
Validate a request without sending it:
ocrplane parse /workspace/report.pdf --json --dry-runSubmit a document and wait for completion:
ocrplane parse /workspace/report.pdf --jsonFor large documents, submit first and read results by page:
ocrplane parse /workspace/large.pdf --json --no-wait
ocrplane status <task_id> --json
ocrplane markdown <task_id> --json --offset 0 --max-length 12000
ocrplane blocks <task_id> --json --offset 0 --limit 50Write result artifacts to disk:
ocrplane parse /workspace/report.pdf --save-dir /workspace/ocr-reportThis writes:
summary.jsonresult.mdcontent_blocks.jsonpages.json
Commands
ocrplane parse FILE
ocrplane status TASK_ID
ocrplane markdown TASK_ID
ocrplane blocks TASK_ID
ocrplane result TASK_ID
ocrplane list
ocrplane reprocess TASK_ID
ocrplane settingsCommon parse options:
ocrplane parse /workspace/a.pdf \
--backend pipeline \
--lang ch \
--parse-method auto \
--formula \
--table \
--start-page 0 \
--end-page 9 \
--timeout 900 \
--poll-interval 3 \
--jsonDocker
Build locally:
docker build -t ocrplane-cli .Run against a mounted workspace:
docker run --rm \
-e OCRPLANE_BASE_URL \
-e OCRPLANE_API_KEY \
-v "$PWD:/workspace" \
ocrplane-cli parse /workspace/report.pdf --jsonPublished images use:
ghcr.io/asharca/ocrplane-cli:latestThe GitHub Actions workflow publishes this image on pushes to main.
Agent Notes
Use
--jsonfor machine-readable output.Use
--dry-runwhen planning a call or checking paths.Use
--no-waitfor large files, then poll withstatus.Read large markdown with
markdown --offset --max-length.Read structured OCR blocks with
blocks --offset --limit.Avoid printing API keys in logs or prompts.
Development
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .
python -m compileall src/ocrplane
python -m pip wheel . --no-deps -w /tmp/ocrplane-cli-wheelMaintenance
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
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/asharca/ocrplane-cli'
If you have feedback or need assistance with the MCP directory API, please join our Discord server