Closed-loop, state-verified Windows Computer-Use Runtime & MCP Server for AI agents — from EDA and CAD to any desktop application.
TennenAnchor defines 7 tools with reasonable naming (verb-first: desktop_inspect, desktop_act, app_query) and detailed descriptions (avg ~180 chars). However, critical gaps exist: tool annotations (readOnlyHint/destructiveHint) are declared in metadata but NOT visible in schema definitions; parameter descriptions are present but inconsistent in depth; output schemas are NOT documented in the source; error handling guidance is absent. The dual-channel observer pattern (UI + artifact) is sophisticated, but the MCP interface does not expose this richness. Schemas are well-formed JSON Schema with types and enums, but lack output documentation.
Executes a pre-compiled, verified App-AST macro recipe in a single turn. Drastically cuts token consumption and enforces pre- and post-condition checks.
Queries the App-AST profile for a desktop application (e.g. 'ltspice', 'winword'). Returns recognized UI states, verified macro action recipes, domain hints, and top logged struggles.
Records an operational friction point or quirk into the persistent struggle ledger for future self-refinement.
Executes mouse or keyboard actions. Target can be specified either via 'element_id' (#ID from desktop_inspect) OR via 'coordinates' (x, y from desktop_escalate visual screenshot).
Tier 2 Visual Escalation Fallback. Captures an optimized, compressed screenshot (max 1280px) when Tier 1 finds 0 controls (e.g. custom graphics, canvas, games) or when visual inspection is needed. Returns image file path, dimensions, and normalized coordinate mapping info.
Fast Tier 1 Edge AI screen perception (<35ms). Returns active window name, dimensions, and compact list of interactable UI controls (#ID, Type, Label, Coordinates). Provide 'query' to filter for specific controls (e.g. 'Save', 'Search').
Output schemas not documented. No tool returns a documented response structure. LLMs cannot plan downstream calls or extract required fields (e.g., what does desktop_inspect return? element IDs? coordinates? window dimensions?). Forces LLMs to guess output shape.
Error handling guidance absent. No tool describes what to do on failure (e.g., if desktop_inspect finds 0 controls, should the agent call desktop_escalate? If app_execute_recipe fails, what recovery path exists?). Agents cannot self-correct.
Tool annotations declared in metadata (Risk: READ_ONLY, WRITE) but NOT in schema. MCP spec requires readOnlyHint/destructiveHint/idempotentHint in inputSchema. Clients cannot determine which tools are safe to retry or have side effects.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
Composite Power Tool: Executes an action, waits 250ms for UI transition, and automatically returns the updated foreground window status in a single turn. Cuts multi-step token consumption in half.
Parameter descriptions inconsistent in depth. desktop_act has detailed descriptions for coordinates and keys; app_record_struggle has minimal descriptions for 'action' and 'symptom'. Inconsistency confuses LLMs about what level of detail is expected.
No pagination or result limits documented. desktop_inspect and app_query may return large lists (all UI controls, all registered apps). No mention of max results, pagination, or how to handle overflow. Risks context window exhaustion.