LocalPlay MCP Server for mouse control functionality
LocalPlay exposes 4 mouse control tools with basic verb-noun naming (move_mouse, mouse_click, mouse_drag, mouse_scroll). All tools have descriptions (50-80 chars) and input schemas with typed parameters. However, descriptions are minimal and lack context on WHEN to use each tool or what distinguishes them. Parameter descriptions are present but generic ('X coordinate' vs 'Target X coordinate for mouse movement'). No output schema documentation. Error handling returns plain strings without recovery guidance. Tools lack idempotency hints and destructive operation warnings despite performing system-level mouse control (WRITE risk). No pagination, no structured output, no tool annotations.
Perform a mouse click operation
Perform a mouse drag operation
Scroll the mouse wheel
Move the mouse to a specified position
Descriptions lack context and selection guidance. All 4 tools describe WHAT they do but not WHEN to use them or how they differ. 'Move the mouse to a specified position' does not explain when to call move_mouse vs mouse_click vs mouse_drag.
No output schema documented. Tools return plain strings ('Mouse moved to position (x, y)') without structured fields. LLMs cannot extract coordinates, success status, or error codes for downstream chaining.
Error handling provides no recovery guidance. Exceptions return 'Mouse movement failed: {str(e)}', raw error messages that do not tell the LLM what to do next or whether to retry.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Missing tool annotations. All tools perform WRITE operations (mouse control) but lack destructiveHint or idempotentHint annotations. LLMs cannot determine if repeated calls are safe or if confirmation is needed.
Parameter descriptions are generic. 'X coordinate' appears in 8+ places without context. Should specify 'Target X coordinate (0 to screen width)' or similar bounds to guide LLM input validation.