MCP server for computer use automation on Wayland desktops via XDG portals, enabling screenshot capture, mouse/keyboard control, and system information retrieval
8 tools with complete schemas and descriptions. Naming is verb-based and clear (screenshot, click, scroll, type_text, press_key, wait, get_system_info, reset_screen_permission). Descriptions are well-written (avg ~120 chars, within 10-1024 range). All parameters have type definitions and descriptions. However, no output schemas are documented, LLMs cannot predict return structure. No error handling guidance (e.g., 'If screenshot fails, try reset_screen_permission'). No enums for constrained inputs (e.g., button values 1|2|3 should be enum). Missing idempotency hints for retry-safe tools. No pagination or result limits documented. Composition is sound, each tool does one thing. Security: no secrets exposed as params (good). Overall: solid definitions with gaps in output documentation and error recovery patterns.
Simulate a mouse click at specific screen coordinates. The pointer will be moved to the coordinates and a press/release event sent.
Get basic information about the current operating system, architecture, and Wayland/desktop environment session.
Simulate pressing a specific keyboard key, optionally with modifier keys held down. Useful for triggering keyboard shortcuts or sending special control keys.
Reset the saved ScreenCast permission token. Use this if the screen layout changed, or if you need to force a new selection of screens to capture. This requires the user to restart the server or wait for a new system prompt on the next capture.
Take a screenshot of the current screen to see the visual state. Always use this to visually verify the outcome of your actions or to understand the current screen context before acting.
Simulate mouse wheel scrolling. Useful for scrolling through long web pages, documents, or lists.
No output schemas documented. LLMs cannot predict return structure (e.g., what fields does get_system_info return?). Breaks tool chaining and forces agents to guess.
Mouse button parameter (click tool) accepts 1|2|3 but is defined as free-form number. Should be enum to prevent invalid values and guide LLM selection.
No error recovery guidance. If screenshot fails due to permission, description should hint 'Try reset_screen_permission() first.' Agents have no recovery path.
No idempotency hints. Tools like wait, press_key, click are safe to retry; others (reset_screen_permission) have side effects. Agents need this classification.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
Simulate typing a string of text character by character. This sends individual key press and release events. Best for inputting text into active/focused text fields.
Pause execution for a specified number of seconds. Crucial for waiting for UI animations to complete, pages to load, or transient states to settle before taking the next action.
Coordinate parameters (x, y in click) accept 0.0 - 1.0 but no validation shown. If LLM passes 1.5, behavior is undefined. Add explicit range constraints and validation error messages.