Windows UI Automation MCP server - inspect and drive the Windows desktop through elements, trees, text, control patterns and events. Windows only.
This server has 17 tools with consistent naming (uia_* prefix) and basic descriptions, but suffers from critical schema and parameter documentation gaps. Most tools lack explicit parameter type definitions in visible code, and descriptions are minimal (10-50 chars, well below the 194-char baseline). The uia_inspect and uia_find tools expose 20+ parameters each with only brief descriptions, violating the pattern:constrained-input and pattern:tool-description rules. No output schemas are documented. Error handling is absent, tools return raw strings with no recovery guidance. The server is read-only (low risk), but parameter validation and LLM-friendly descriptions are severely lacking.
List child elements of a located element
List descendant elements of a located element
Probe the desktop root element
Find all elements matching criteria
Find first element by automation ID
Find first element by class name
Find first element by name
No output schemas documented. Tools return raw strings; LLMs cannot parse structured results or plan downstream calls. Violates pattern:response-shaper and pattern:tool.
Descriptions are minimal (10-50 chars, baseline 194). Tools like 'uia_inspect' and 'uia_find' lack guidance on when to use them vs similar tools. Violates pattern:tool-description.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Get the currently focused element
Get element from window handle
Inspect an element with optional locator criteria and caching
Navigate from a located element in a specified direction
Get element from screen coordinates
Read selection state from a located element
Capture a snapshot of the current desktop state
Read table content from a located element
Read text content from a located element with optional search
Wait for a UI Automation event to occur
Complex tools (uia_inspect, uia_find, uia_children) expose 20+ parameters with only brief descriptions. No enums for constrained values (e.g., 'scope', 'cacheView', 'direction'). Violates pattern:constrained-input.
No error handling or recovery guidance. Tools return raw strings with no indication of success/failure, invalid input, or next steps. Violates pattern:recovery-guide.
Parameter descriptions lack format/range constraints. E.g., 'x' and 'y' coordinates have no min/max; 'timeoutMs' has no bounds; 'maxResults' unbounded. Violates review:param-validation-rules.