Lets agents run PaddleOCR to recognize text in images and PDFs, including handwriting, and parse complex documents into JSON or Markdown.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add paddleocr --env PADDLEOCR_MCP_AISTUDIO_ACCESS_TOKEN='<PADDLEOCR_MCP_AISTUDIO_ACCESS_TOKEN>' --env PADDLEOCR_MCP_PIPELINE='<PADDLEOCR_MCP_PIPELINE>' --env PADDLEOCR_MCP_PPOCR_SOURCE='<PADDLEOCR_MCP_PPOCR_SOURCE>' --env PADDLEOCR_MCP_SERVER_URL='<PADDLEOCR_MCP_SERVER_URL>' -- uvx --from paddleocr-mcp paddleocr_mcp~/.codex/config.toml
[mcp_servers.paddleocr]
command = "uvx"
args = ["--from", "paddleocr-mcp", "paddleocr_mcp"]
env = { PADDLEOCR_MCP_AISTUDIO_ACCESS_TOKEN = "<PADDLEOCR_MCP_AISTUDIO_ACCESS_TOKEN>", PADDLEOCR_MCP_PIPELINE = "<PADDLEOCR_MCP_PIPELINE>", PADDLEOCR_MCP_PPOCR_SOURCE = "<PADDLEOCR_MCP_PPOCR_SOURCE>", PADDLEOCR_MCP_SERVER_URL = "<PADDLEOCR_MCP_SERVER_URL>" }
# codex mcp add paddleocr --env PADDLEOCR_MCP_AISTUDIO_ACCESS_TOKEN='<PADDLEOCR_MCP_AISTUDIO_ACCESS_TOKEN>' --env PADDLEOCR_MCP_PIPELINE='<PADDLEOCR_MCP_PIPELINE>' --env PADDLEOCR_MCP_PPOCR_SOURCE='<PADDLEOCR_MCP_PPOCR_SOURCE>' --env PADDLEOCR_MCP_SERVER_URL='<PADDLEOCR_MCP_SERVER_URL>' -- uvx --from paddleocr-mcp paddleocr_mcp~/.cursor/mcp.json
{
"mcpServers": {
"paddleocr": {
"command": "uvx",
"args": [
"--from",
"paddleocr-mcp",
"paddleocr_mcp"
],
"env": {
"PADDLEOCR_MCP_AISTUDIO_ACCESS_TOKEN": "<PADDLEOCR_MCP_AISTUDIO_ACCESS_TOKEN>",
"PADDLEOCR_MCP_PIPELINE": "<PADDLEOCR_MCP_PIPELINE>",
"PADDLEOCR_MCP_PPOCR_SOURCE": "<PADDLEOCR_MCP_PPOCR_SOURCE>",
"PADDLEOCR_MCP_SERVER_URL": "<PADDLEOCR_MCP_SERVER_URL>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"paddleocr": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"paddleocr-mcp",
"paddleocr_mcp"
],
"env": {
"PADDLEOCR_MCP_AISTUDIO_ACCESS_TOKEN": "<PADDLEOCR_MCP_AISTUDIO_ACCESS_TOKEN>",
"PADDLEOCR_MCP_PIPELINE": "<PADDLEOCR_MCP_PIPELINE>",
"PADDLEOCR_MCP_PPOCR_SOURCE": "<PADDLEOCR_MCP_PPOCR_SOURCE>",
"PADDLEOCR_MCP_SERVER_URL": "<PADDLEOCR_MCP_SERVER_URL>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"paddleocr": {
"command": "uvx",
"args": [
"--from",
"paddleocr-mcp",
"paddleocr_mcp"
],
"env": {
"PADDLEOCR_MCP_AISTUDIO_ACCESS_TOKEN": "<PADDLEOCR_MCP_AISTUDIO_ACCESS_TOKEN>",
"PADDLEOCR_MCP_PIPELINE": "<PADDLEOCR_MCP_PIPELINE>",
"PADDLEOCR_MCP_PPOCR_SOURCE": "<PADDLEOCR_MCP_PPOCR_SOURCE>",
"PADDLEOCR_MCP_SERVER_URL": "<PADDLEOCR_MCP_SERVER_URL>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"paddleocr": {
"command": "uvx",
"args": [
"--from",
"paddleocr-mcp",
"paddleocr_mcp"
],
"env": {
"PADDLEOCR_MCP_AISTUDIO_ACCESS_TOKEN": "<PADDLEOCR_MCP_AISTUDIO_ACCESS_TOKEN>",
"PADDLEOCR_MCP_PIPELINE": "<PADDLEOCR_MCP_PIPELINE>",
"PADDLEOCR_MCP_PPOCR_SOURCE": "<PADDLEOCR_MCP_PPOCR_SOURCE>",
"PADDLEOCR_MCP_SERVER_URL": "<PADDLEOCR_MCP_SERVER_URL>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"paddleocr": {
"command": "uvx",
"args": [
"--from",
"paddleocr-mcp",
"paddleocr_mcp"
],
"env": {
"PADDLEOCR_MCP_AISTUDIO_ACCESS_TOKEN": "<PADDLEOCR_MCP_AISTUDIO_ACCESS_TOKEN>",
"PADDLEOCR_MCP_PIPELINE": "<PADDLEOCR_MCP_PIPELINE>",
"PADDLEOCR_MCP_PPOCR_SOURCE": "<PADDLEOCR_MCP_PPOCR_SOURCE>",
"PADDLEOCR_MCP_SERVER_URL": "<PADDLEOCR_MCP_SERVER_URL>"
}
}
}
}Environment variables
PADDLEOCR_MCP_AISTUDIO_ACCESS_TOKENPADDLEOCR_MCP_PIPELINEPADDLEOCR_MCP_PPOCR_SOURCEPADDLEOCR_MCP_SERVER_URL
Replace the placeholders with your own credentials and keep them out of version control.