PaddleOCR MCP 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., "@PaddleOCR MCP ServerExtract text from the receipt at https://example.com/receipt.jpg"
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.
PaddleOCR MCP Server
This project provides a single MCP server that hosts PaddleOCR on one machine in your local network. Other devices can call the OCR tool over MCP without installing PaddleOCR, PaddlePaddle, or OCR models on every system.
For a step-by-step setup walkthrough, see USER_GUIDE.md.
What it does
Hosts an MCP server on
0.0.0.0so devices on the same LAN can connect.Exposes OCR as MCP tools instead of local dependencies.
Supports multiple simultaneous users through pooled OCR workers.
Accepts image or PDF input as:
base64 payloads
HTTP/HTTPS URLs
host-local file paths on the server machine
Tunes OCR behavior using a
content_typepreset:documentdense_documentreceiptinvoiceid_cardhandwrittentable
Related MCP server: Mistral OCR MCP Server
Recommended Python version
Use Python 3.10, 3.11, or 3.12.
paddleocr and paddlepaddle often lag behind the newest Python releases, so Python 3.14 is not a safe choice for this server.
Install on the host machine
Create a virtual environment:
py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1Install the package:
pip install -U pip
pip install .Install the correct PaddlePaddle runtime for your host:
CPU host:
pip install paddlepaddleGPU host: Install the PaddlePaddle build that matches your CUDA version from the official PaddlePaddle instructions, then call the tool with
use_gpu=true.
Run the MCP server on your LAN host
$env:MCP_HOST="0.0.0.0"
$env:MCP_PORT="8000"
$env:MCP_TRANSPORT="streamable-http"
$env:OCR_WORKERS="2"
python .\run_server.pyIf the console script paddle-ocr-mcp is available in your environment, you can use that too. run_server.py is the most reliable option when the package itself was not installed into the venv.
For Windows, you can also use:
.\start_server.ps1The server will listen on:
http://YOUR-HOST-IP:8000/mcpReplace YOUR-HOST-IP with the local IP address of the host machine, such as 192.168.1.25.
Exposed MCP tools
list_ocr_profiles
Returns the supported OCR content presets and when to use them.
extract_text
Main OCR tool with these parameters:
source: base64 string, URL, or host-local pathsource_type:base64,url, orhost_pathcontent_type: preset for OCR tuninglanguage: PaddleOCR language code such asenfilename: optional filename hint for base64 uploadsmax_pages: max PDF pages to renderuse_gpu: enable GPU inference on a GPU-ready hostdownload_timeout_seconds: URL fetch timeout
Example MCP client configuration
Example for an MCP client that supports streamable HTTP servers:
{
"mcpServers": {
"paddle-ocr-lan": {
"url": "http://192.168.1.25:8000/mcp"
}
}
}A ready-to-copy client config is also included at clients/client/mcp.json.
Example tool calls
Base64 image:
{
"source": "iVBORw0KGgoAAAANSUhEUgAA...",
"source_type": "base64",
"filename": "invoice.png",
"content_type": "invoice",
"language": "en"
}You can also test from a terminal client:
python .\src\paddle_ocr_mcp\client_cli.py --server http://127.0.0.1:8000/mcp --tool list_ocr_profiles
python .\src\paddle_ocr_mcp\client_cli.py --server http://127.0.0.1:8000/mcp --file C:\path\to\scan.pdf --content-type document --max-pages 2Or with the helper script:
.\test_client.ps1
.\test_client.ps1 -File "C:\path\to\scan.pdf" -ContentType document -MaxPages 2Remote PDF by URL:
{
"source": "https://example.local/files/receipt.pdf",
"source_type": "url",
"content_type": "receipt",
"language": "en",
"max_pages": 2
}Server-local file:
{
"source": "C:\\\\shared\\\\scan.jpg",
"source_type": "host_path",
"content_type": "id_card",
"language": "en"
}Result shape
The OCR tool returns structured output including:
combined extracted text
average confidence
per-page text
per-line bounding boxes and confidence
Notes for real deployments
Open the chosen port in the host firewall for your local subnet.
For remote devices, prefer
base64orurlinputs instead ofhost_path.The first request may be slower because PaddleOCR can download model files on first use.
If you want stricter access control, put this service behind a reverse proxy on your LAN.
Increase
OCR_WORKERSif you need more concurrent OCR throughput and the host has enough RAM.
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.
Related MCP Servers
- Alicense-qualityCmaintenanceAn MCP server that provides OCR capabilities using the EasyOCR library, supporting over 80 languages and GPU acceleration. It enables processing images from base64 strings, local files, or URLs with options for text-only or detailed coordinate and confidence output.Last updated2Apache 2.0
- Flicense-qualityDmaintenanceAn MCP server that enables Claude to perform OCR on local files using Mistral AI's document processing capabilities. It converts documents and images into markdown format for seamless analysis and interaction.Last updated
- Alicense-qualityDmaintenanceHigh-performance OCR MCP server supporting multiple input modes (path, base64, URL, upload), batch processing, and output formats like plain, JSON, and Markdown.Last updated1MIT
- Alicense-qualityBmaintenanceA local OCR server using PaddleOCR that enables AI agents to extract text from images.Last updated3MIT
Related MCP Connectors
OCR.space MCP — wraps the OCR.space API (ocr.space) for image/PDF → text OCR.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/Asin007/PDF-extractor-mcp-tool'
If you have feedback or need assistance with the MCP directory API, please join our Discord server