A macOS-native MCP server that provides computer use capabilities including app state snapshots, UI element interaction, keyboard/mouse input injection, window capture, and virtual cursor overlay management.
17 tools with complete schemas and descriptions. Naming follows verb_noun convention well (get_app_state, acquire_desktop, press_key). Descriptions are adequate (50-200 chars typical) but lack LLM-optimized guidance on when to use each tool vs. alternatives. Parameters are typed and mostly described, but lack constraints (enums, ranges, patterns). No output schemas documented. Error handling is absent, tools do not guide recovery or explain failure modes. Security considerations (permissions, audit) not visible in definitions.
Acquire a Claudex Computer Use desktop session. Shared mode is advisory; exclusive mode blocks if another Claudex Computer Use process already owns the desktop. Optionally focuses an app before capturing the session baseline.
Capture a screenshot of a target app's window.
Inject a mouse click at specified coordinates in a target app's window.
Return the current Claudex Computer Use desktop session state, including interruption detection and cross-process lock status.
Report permission status and basic Claudex Computer Use environment details.
Search for UI elements by role, title, or value using accessibility tree queries.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields from responses. E.g., get_app_state returns 'complete Accessibility tree' but structure is undocumented.
No error handling guidance. Tools do not explain failure modes, recovery steps, or whether errors are retryable. E.g., press_key does not document what happens if app is not found or key is invalid.
Parameter constraints missing. 'mode' in acquire_desktop accepts 'shared' or 'exclusive' but no enum constraint. 'direction' in scroll accepts 'up|down|left|right' but not formalized. LLMs may hallucinate invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Get a full snapshot of an app's UI state: the complete Accessibility tree with numbered element indices, plus a screenshot and app guidance hints. This must be called before click, press_key, type_text, scroll, or set_value. The app parameter accepts a name (Safari), bundle ID (com.apple.Safari), or PID (1234).
Return the virtual cursor configuration, buffered screenshot-overlay state, and live desktop overlay runtime status.
List running macOS apps with their process IDs, bundle identifiers, and activation policies.
List all windows for a target app or system-wide, with frame information and active state.
Trigger the AXPress action on a UI element by element index.
Send a keyboard shortcut or key press to a target app. Supports modifiers: super/cmd, ctrl, alt/option, shift. Examples: super+f, ctrl+shift+a, Up, Return, Tab, Page_Up, Escape. delivery=background posts directly to the target PID; delivery=direct temporarily activates the app first.
Release the active Claudex Computer Use desktop session and its cross-process desktop lock.
Inject a scroll event in a target app. Direction can be up, down, left, or right.
Set the AXValue attribute of a UI element by element index.
Configure the virtual cursor overlay mode. Presets can switch between a Codex-like demo cursor and a debug trail profile; explicit fields override the preset.
Inject text input into a target app. Supports multiple text injection strategies and delivery modes.
Descriptions lack LLM-optimized guidance on when to use each tool vs. alternatives. E.g., get_app_state vs. capture_window vs. find_ui_element, when should an agent choose each? No dependency hints provided.
No permission or security declarations. Tools like acquire_desktop and press_key modify system state but do not declare required permissions (e.g., 'accessibility:write', 'screen:record'). No audit trail guidance.