Vision-primitive MCP server for text-only LLMs: describe, locate (coordinates), OCR, annotate, crop, zoom, anomaly scan, UI parse, computer use
Critical gaps across all dimensions. Tool definitions are inferred from test files rather than explicit registration code. No input schemas visible in source, only parameter names and descriptions in docstrings. Descriptions are present but generic (avg ~80 chars, below 194-char baseline). 30 tools with no documented output schemas. No error handling guidance, no parameter validation rules, no security annotations. STDIO transport limits remote accessibility. This server prioritizes breadth (30 tools) over depth of definition quality.
Analyze image and extract visual primitives (objects, regions, text) with bounding boxes and confidence scores
Draw annotations (boxes, circles, labels) on image and save result
Infer annotations from image description and apply to image
Compare two images pixel-level or semantic-level
Compare two images and infer differences or similarities
Crop image to specified bounding box region and save result
No input schemas visible in source code. Tool definitions inferred from test files only, not from explicit MCP tool registration. Per HARD SCORING RULE: tools without visible schemas score 0 on schema dimension.
No documented output schemas for any tool. LLMs cannot plan downstream calls or extract structured data. Violates pattern:response-shaper and pattern:tool-chain.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | <=2025-11-25 | v2 |
Locate cursor/pointer position in screenshot
Computer vision locate using color/template matching (local, no API call)
Describe image content with optional task specification (general/ui/document/chart/table/code)
Locate objects in image by description, returns bounding boxes and coordinates
Extract text from image with bounding boxes and coordinates for each text region
Build reasoning graph from image analysis
Scan image for anomalies, defects, or unusual patterns
Multi-round scratch thinking: iteratively analyze image with reasoning
Capture current screen/display and save screenshot
Simulate mouse click at specified coordinates
Drag mouse from one position to another
Get current screen/display information (resolution, DPI, etc.)
Press keyboard key or key combination
Move mouse cursor to specified coordinates
Scroll screen in specified direction
Type text on keyboard
Set-of-Mark locate: mark all objects in image with numbers and return mapping
Detect text regions in image without full OCR
Zoom to text region for better readability and OCR
Locate UI element by description in screenshot
Parse UI structure from screenshot, extract interactive elements
Refine UI element location with second pass analysis
Check vision backend health and configuration status
Zoom into image region by scale factor and save result
Destructive tools (screen_click, screen_drag, screen_type, screen_key, annotate_image, crop_image, zoom_region, som_locate, annotate_infer, text_zoom) lack confirmation/dry-run patterns and error recovery guidance. No actionable error messages documented.
Parameter descriptions are generic and lack format/constraint details. E.g., 'box' param in crop_image says '[x1, y1, x2, y2] in pixels' but no validation rules, min/max, or error guidance. Violates pattern:constrained-input.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. LLMs cannot distinguish safe reads from destructive writes without explicit hints. Violates current MCP spec (2026-07-28) Spec Alignment.