Document Intelligence MCP server: OCR/text extraction, confidence-threshold routing, human review queues, and document search over the Model Context Protocol.
Server has 6 tools with basic descriptions and input schemas. Naming is verb-forward (process_, search_, get_, list_, review_) and mostly clear. However, descriptions are terse (avg ~80 chars, below the 194-char baseline), parameter descriptions are minimal or absent, output schemas are undocumented, and error handling lacks recovery guidance. No tool annotations (readOnlyHint, destructiveHint, idempotentHint). The review_resolve tool accepts free-form 'corrected_value' with no validation constraints. Missing pagination on search_documents despite returning lists. Overall: functional but below production baseline.
Return the extracted text of a processed document (truncated).
List all documents processed this session.
Extract text + structured fields from a document (.pdf/.txt/.md), route each field by confidence, and index the document for search. Returns the routing summary: accepted fields, fields sent to human review, and rejected fields.
List extraction fields currently awaiting human review.
Resolve a review item with the human-confirmed value.
BM25 keyword search across all documents processed this session.
Output schemas undocumented. LLMs cannot infer what fields to expect from tool responses (e.g., search_documents returns list[dict] but structure is opaque). Breaks downstream tool chaining and forces agents to guess field names.
Parameter descriptions missing or minimal. 'query' in search_documents has a description, but 'top_k' default (5) is not justified. 'corrected_value' in review_resolve has no format/length constraints. LLMs cannot validate inputs before calling.
No pagination support on search_documents. Accepts top_k but no offset/cursor. Large result sets will blow context window. Tool description does not warn about result limits.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Error handling lacks recovery guidance. get_document_text returns {'error': '...'} but does not suggest next steps (e.g., 'Use list_documents() to find valid IDs'). Agents cannot self-correct.
No tool annotations. process_document and review_resolve are destructive (WRITE risk) but lack destructiveHint. search_documents and list_documents are read-only but lack readOnlyHint. Agents cannot reason about side effects.