Spaces:
Running
on
Zero
Running
on
Zero
title: Htrflow Mcp | |
emoji: 🔥 | |
colorFrom: green | |
colorTo: gray | |
sdk: gradio | |
sdk_version: 5.33.0 | |
app_file: app.py | |
tags: | |
- mcp-server-track | |
- htrflow | |
- htr | |
- ocr | |
- api | |
pinned: false | |
license: apache-2.0 | |
short_description: Image to text, alto- or page-xml | |
Video showcase: | |
<video controls autoplay src="https://cdn-uploads.huggingface.co/production/uploads/60a4e677917119d38f6bbff8/tMp-t2pV3t3HABW0YLbMy.mp4"></video> | |
## MCP tooling | |
- htr_text: Extract plain text from handwritten documents | |
Parameters: image_path (string), document_type (string, default: "letter_swedish"), custom_settings (optional JSON string) | |
Returns: Extracted text as string | |
- htrflow_file: Process HTR and return formatted files | |
Parameters: image_path (string), document_type (string), output_format (string, default: "alto"), custom_settings (optional JSON), server_name (string) | |
Returns: Downloadable file in specified format | |
Supported formats: txt, alto, page, json | |
- htrflow_visualizer: Visualize HTR results on original image | |
Parameters: image_path (string), htr_document_path (string), server_name (string) | |
Returns: Visualization image with text regions highlighted | |
 | |
Claude Desktop | |
```json | |
{ | |
"mcpServers": { | |
"htrflow": { | |
"command": "npx", | |
"args": [ | |
"mcp-remote", | |
"https://[YOUR-USERNAME].hf.space/gradio_api/mcp/sse", | |
"--transport", | |
"sse-only" | |
] | |
} | |
} | |
} | |
``` | |
## Usage Examples | |
- Can you extract the text from this handwritten Swedish letter? [upload image] | |
- Process this handwritten document and return the results in ALTO XML format for archival purposes. | |
- Show me the HTR results overlaid on the original image so I can see how accurate the text detection was. | |
### Standard Letter Processing | |
Segmentation: Detect text lines using YOLO | |
Text Recognition: Extract text using TrOCR | |
Line Ordering: Organize text in reading order | |
### Spread Processing | |
Region Segmentation: Detect page regions | |
Line Segmentation: Detect text lines within regions | |
Text Recognition: Extract text using TrOCR | |
Reading Order: Handle marginalia and two-page layout | |
Custom Settings | |
You can provide custom pipeline settings as JSON: | |
```json | |
{ | |
"steps": [ | |
{ | |
"step": "Segmentation", | |
"settings": { | |
"model": "yolo", | |
"model_settings": { | |
"model": "Riksarkivet/yolov9-lines-within-regions-1" | |
}, | |
"generation_settings": {"batch_size": 8} | |
} | |
}, | |
{ | |
"step": "TextRecognition", | |
"settings": { | |
"model": "TrOCR", | |
"model_settings": { | |
"model": "microsoft/trocr-base-handwritten" | |
}, | |
"generation_settings": {"batch_size": 16} | |
} | |
} | |
] | |
} | |
``` | |
Not enough time but would also integrate the iiif part aswell: | |
https://github.com/AI-Riksarkivet/oxenstierna | |
https://huggingface.co/collections/Riksarkivet/mcps-68447208f9eddd623a83fbc9 | |