← ClaudeAtlas

drive-screenlisted

See and operate the user's real, physical Linux desktop through the mcp-screen MCP — screenshot any monitor and click/type/scroll/drag any visible app. Prefer screen_watch (~1 fps) after graphs/maps/canvases/loaders so thrashing UIs are caught like a human watches, not one freeze-frame. Use whenever the user points at something on their monitor(s) or wants you to read/drive a real GUI (Slack, browser, terminal, dashboards). Prefer over app/web APIs when looking at the real screen. NOT for pasted images, local files, shell-only, or remote SSH/TUI. Encodes locate → ground → act → confirm/watch plus hard-won gotchas.
88plug/screen-mcp · ★ 3 · AI & Automation · score 59
Install: claude install-skill 88plug/screen-mcp
# Driving the desktop with mcp-screen A loop, not a single call: **locate → ground → act → confirm (watch)**. The tools are `screen_screenshot`, `screen_click`, `screen_type`, `screen_key`, `screen_scroll`, `screen_drag`, `screen_move_mouse`, `screen_read_page`, `screen_do` (batch), `screen_tour`, `screen_wait`, **`screen_watch`**, `screen_diag`, `screen_reload`, `screen_session`. ## Human eyes, not a single glance screen-mcp is supposed to see like a human. Humans do **not** decide a UI is fine from one freeze-frame — they watch for a beat. A force-directed graph with 500 nodes, a spinning loader, or a canvas thrashing looks "ok" in one shot and **crazy** over 3–6 seconds. **Default confirm path after anything that can thrash** (graphs, maps, canvases, loaders, animated dashboards, connection clouds): ```text screen_watch(region=[…], fps=1, seconds=6) ``` | Verdict | Meaning | Agent must | |---|---|---| | `settled` | Quiet at end of window | Safe to act / pass visual QA | | `evolving` | Navigation/layout mid-watch | Re-ground on the **final** frame | | **`jitter`** | Sustained local motion | **Fail visual QA** — fix the product (cap nodes, freeze sim). Do not report "looks good" | | `unstable` | Mixed noise | Watch longer or re-ground | Do **not** ship or declare a UI fix verified on a single screenshot when the surface is animated. That is how connection clouds "look crazy" slip past agents. ## The efficient loop 1. **Locate (once):** `screen_screenshot()` with no