A policy-enforced AI agent framework with MCP tool integration, desktop automation, browser control, and multi-channel support
Missy exposes 20 tools with consistent naming (verb_noun pattern) and complete input schemas. However, descriptions are terse (avg ~60 chars, well below the 194-char baseline), parameter descriptions are sparse or missing, and output schemas are entirely undocumented. Error handling guidance is absent. Tools are well-scoped (single responsibility), but lack the LLM-optimization depth expected of production systems. No tool annotations (readOnlyHint/destructiveHint) despite clear risk stratification in the source.
Click an accessible element by name or role in the AT-SPI tree
Get text content from an accessible element
Get the AT-SPI accessibility tree for the focused application or a named application
Set the value of an accessible element (text input, slider, etc.)
Click an element on the page by CSS selector
Close the browser session
Execute JavaScript in the browser page context
Output schemas completely undocumented. No tool returns a documented response structure. LLMs cannot plan downstream calls or extract required fields without trial-and-error.
Parameter descriptions missing or minimal. 'element_name' in atspi_click lacks guidance on whether to pass role, accessible name, or both. 'selector' in browser_click does not explain CSS selector syntax or error cases.
Tool descriptions are terse (avg 60 chars vs 194-char baseline). 'Click an accessible element by name or role' does not explain when to use atspi_click vs browser_click, or what happens on failure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Fill a form field with text
Get the text content of the current page
Get the current page URL
Navigate to a URL in the browser session
Take a screenshot of the current page
Wait for an element to appear on the page
Focus a window by name pattern, bringing it to the foreground. X11 only.
Launch an application from the allowlist
Drag the mouse from one position to another
Move the mouse to a specific position
Detect the current desktop session (X11/Wayland), the desktop environment, and which GUI automation capabilities are actually available. Call this before other desktop_*/x11_* tools to know what will work.
Query the entity-relationship knowledge graph for structured facts: given a topic or entity name, returns related entities and their relationships (e.g. what depends on / uses / owns what). Read-only.
Install software packages (requires approval and desktop.allow_software_install: true)
No error handling guidance. Tools like browser_wait, atspi_click, and desktop_launch_app do not document failure modes or recovery steps. LLMs cannot self-correct on timeouts, missing elements, or permission errors.
Tool annotations missing. Despite clear risk stratification (READ_ONLY, WRITE, DESTRUCTIVE), no tools declare readOnlyHint, destructiveHint, or idempotentHint. Clients cannot infer safety properties.