idin9-doc-ocr-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DB_PATH | No | SQLite database path | |
| OCR_DPI | No | OCR DPI setting | |
| SMB_HOST | No | SMB scanner share host (leave blank to disable) | |
| SMB_USER | No | SMB username (leave blank to disable) | |
| SMB_SHARE | No | SMB scanner share name (leave blank to disable) | |
| SMB_DOMAIN | No | SMB domain (optional) | |
| WEBUI_PORT | No | Port for the optional web review UI | 8080 |
| SMB_PASSWORD | No | SMB password (leave blank to disable) | |
| OCR_LANGUAGES | No | OCR language packs | tha+eng |
| SCAN_DROP_DIR | No | Local/mounted scanner drop folder | |
| TESSERACT_CMD | No | OCR engine command | tesseract |
| MIN_EMBEDDED_TEXT_CHARS | No | Threshold to decide digital vs scanned extraction |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ocr_extract_invoiceA | Extract a single PDF/image invoice and return structured JSON. |
| ocr_batch_processC | Process all pending files in the drop/staging directory. |
| ocr_poll_scanner_shareB | Connect to the configured SMB scanner share, pull and process new files. |
| ocr_get_recordC | Retrieve a processed invoice record from the database. |
| ocr_list_recordsC | List invoice records with optional status filter. |
| ocr_review_queueA | List low-confidence (need_train) records awaiting human confirmation. |
| ocr_review_recordB | Confirm (as success) or reject (as failed) a low-confidence record.
|
| ocr_manage_contactC | Perform CRUD operations on the contacts database. |
| ocr_system_healthA | Report database status, SMB status, and queue depth. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Most tools have clearly distinct purposes: extraction, batch processing, scanner polling, record retrieval, review, contact management, and health checks. The only slight overlap is between ocr_batch_process and ocr_poll_scanner_share, since both process files from directory-like sources.
All tools share the ocr_ prefix and use snake_case, which creates a strong predictable pattern. However, ocr_batch_process and ocr_system_health deviate from the strict verb_noun structure used by most other tools.
Nine tools is well-scoped for an OCR invoice processing server covering ingestion, extraction, retrieval, review, contacts, and system health. Each tool serves a meaningful part of the workflow without redundancy or bloat.
The toolset covers the main OCR invoice lifecycle: extract, batch process, poll scanner, retrieve/list records, review low-confidence results, manage contacts, and check health. Minor gaps exist, such as no direct update/delete for processed invoice records outside the review flow or explicit reprocessing of failed items.