MCP server providing macOS built-in OCR functionality for image text recognition
Single tool with minimal definition quality. Tool name 'ocr_image' lacks action verb prefix (should be 'extract_text_from_image' or 'recognize_text_in_image'). Description is 54 chars, acceptable length but lacks WHEN to use it, prerequisites, or output structure guidance. Input schema present but parameter 'file_path' has only basic description; no format constraints, path validation rules, or supported image formats documented. No output schema documented, LLM cannot predict response structure (filename, annotations array with text/confidence/bounding_box fields). Error handling returns dict with 'error' key but provides no recovery guidance or categorization (retryable vs fatal). No tool annotations (readOnlyHint present semantically but not declared). Baseline: 100% of A+ tools document return types; 94% have docstrings; 100% of A+ params have descriptions. This tool meets ~40% of those baselines.
Conduct macOS built-in OCR and return the text
Tool name lacks action verb. 'ocr_image' is a noun phrase; should start with verb like 'extract_', 'recognize_', or 'read_' to signal intent to LLM.
Output schema not documented. Response structure (filename, annotations array with text/confidence/bounding_box) is inferred from code, not declared. LLM cannot plan downstream operations or validate response shape.
Parameter 'file_path' lacks format constraints and validation rules. No mention of supported image formats (PNG, JPEG, TIFF?), max file size, path restrictions, or whether relative paths are allowed.
Error handling returns bare error messages without recovery guidance. 'File not found: {file_path}' and 'Error processing image: {str(e)}' give LLM no actionable next steps or error classification (retryable, user-fixable, fatal).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
Tool description (54 chars) lacks context on WHEN to use it, prerequisites (macOS-only), or what the output contains. Should explain: 'Extracts text from images using macOS Vision framework. Returns recognized text with confidence scores and bounding boxes. macOS only.'