--- 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: ## 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