Safety-gated computer use for AI agents: screen OCR and vision, mouse, keyboard, window control.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
One-click editor setup isnโt available for this listing yet โ we donโt have a confirmed install command, and weโd rather show nothing than point your editor at the wrong package or host. Follow the projectโs own setup instructions, linked above.
A local remote-control system for AI agents: watch your computer's screen live and send mouse/keyboard commands to it. Everything runs on your own machine โ no data ever leaves it, no cloud middleman.
Every keystroke and every screenshot in this GIF went through the API โ the agent never touched a physical keyboard.
AI agents today can write code and call APIs โ but they can't see or touch your desktop. Screen Control gives any agent general-purpose computer use over a clean, safety-gated HTTP/MCP interface:
One process, zero configuration, works with any language that can speak HTTP โ or natively through MCP in Claude Desktop, Cursor, VS Code and cloud agents.
Screen Control is the perception and actuation layer โ the eyes and hands. The effective speed and capability of any agent using it are bounded by that agent itself and by the environment it runs in:
In practice this means: the same repo makes a fast reasoning model fast and capable, and makes a slow model slow โ the toolchain is not the bottleneck. Real-time or action-heavy tasks need an agent with fast inference and tight tool-loop latency; slower agents should prefer deliberate, verification-heavy tasks.
| Feature | Description |
|---|---|
| ๐ผ๏ธ Live screen feed | Continuously refreshing screenshot in the browser |
| ๐ฑ๏ธ Mouse control | Click, right-click, double-click, scroll, drag & drop via live screenshot |
| โจ๏ธ Keyboard control | Text typing (Unicode/Turkish included, layout-independent), keys and shortcuts (Ctrl+C, Alt+Tabโฆ) |
| ๐๏ธ OCR | Converts on-screen text to machine-readable format |
| ๐ท Vision access | Raw-pixel paths for image-capable models: single frames, MJPEG stream, text-based motion detection |
| ๐ช Window management | List, focus, safe close (WM_CLOSE), kill (task-manager style) |
| ๐ฅ๏ธ Focus-free control | Read/write background windows via PostMessage without stealing focus |
| ๐ฎ Game mode | Camera look via relative mouse movement, hold-to-move keys |
| ๐ Token auth | Every request requires X-Auth-Token (CSRF protection) |
| ๐ฆบ Stuck-input watchdog | Auto-releases held keys after 30 s of inactivity |
| ๐ Failsafe | Cursor to top-left corner aborts all commands (disabled in game mode) |
Per-Monitor DPI awareness. control.py calls
SetProcessDpiAwarenessContext(PER_MONITOR_AWARE_V2) at import time โ
before the pyautogui import, because pyautogui touches coordinate APIs
during import and would otherwise lock the process to the interpreter
manifest's default (system-aware). With PMv2 active, every coordinate in the
system is a physical pixel end to end: mss capture, OCR bounding boxes,
pyautogui/SendInput clicks, ClipCursor. On High-DPI displays (125%/150%
scaling) nothing drifts between what OCR reports and where the mouse clicks.
Lock architecture. The server uses two independent locks instead of one global lock:
| Lock | Protects | Endpoints |
|---|---|---|
_input_lock | mouse, keyboard, game mode, window ops | /api/mouse, /api/key, /api/game, /api/window/post, ... |
_read_lock | capture, OCR, vision, enumeration | /api/screenshot, /api/ocr, /api/vision/*, /api/windows, ... |
A slow OCR (3โ5 s on a busy screen) no longer freezes concurrent screenshot or vision reads โ reads queue behind reads, inputs behind inputs.
This system is designed for a live perceive-act loop, not pre-written command chains:
This is enforced by the expect_hwnd guard: typing is refused (409) if
the foreground window doesn't match the target.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/screen-control)<a href="https://allmcps.com/mcp/screen-control"><img src="https://allmcps.com/api/badge/screen-control?style=directory" alt="Screen Control on AllMCPs" /></a>