click_screenLABSCO SUMMARY
It solved the black-screenshot problem.
Everything else on this list is table stakes for desktop automation; the Windows Graphics Capture path is not. Traditional capture returns a black rectangle for anything GPU-accelerated — which is games, media players, Electron apps and half of modern software — and this server lets you switch capture method per call or, better, name the window titles once in an environment variable and forget about it. OCR returning coordinates alongside text is the other practical detail: the model can see a button and click where it is.
What it is
A desktop control server built on PyAutoGUI, RapidOCR and ONNXRuntime, giving an assistant the mouse, the keyboard, window management and text extraction from the screen. Everything runs locally with no external service.
What you get
- Mouse control including press-and-hold as separate calls, so drag gestures and modifier-held clicks are expressible —
click_screen,move_mouse,drag_mouse,mouse_down,mouse_up - Keyboard input covering single keys, sequences and combinations, plus holding a key down across other actions —
type_text,press_keys,key_down,key_up - Screenshots of the whole screen or a window matched by title pattern, optionally regex, optionally saved to disk —
take_screenshot - Text extracted from the screen with its coordinates, which is what makes clicking on something the model can see possible —
take_screenshot_with_ocr - Window listing and activation by title pattern, plus screen resolution —
list_windows,activate_window,get_screen_size - An explicit wait, for the moments where the UI needs time —
wait_milliseconds - A Windows Graphics Capture path for GPU-accelerated windows, where the usual GDI and PrintWindow methods return black frames — games, media players, Electron apps, GPU-accelerated browsers, streaming software and CAD tools; either a flag on the screenshot call or an environment variable listing window-title patterns to apply it to automatically
Requirements
Python with uvx: uvx computer-control-mcp@latest, or pip install computer-control-mcp for a global install. The first run downloads around 70MB of Python dependencies, and the README suggests doing that in a terminal first rather than waiting inside an MCP client. COMPUTER_CONTROL_MCP_SCREENSHOT_DIR moves saved screenshots off the OS downloads directory, and COMPUTER_CONTROL_MCP_WGC_PATTERNS takes comma-separated title patterns — such as obs, discord, game, steam — that automatically use Windows Graphics Capture. The enhanced GPU-window capture is Windows-only. Licensed MIT.
Setup effort
One command — uvx computer-control-mcp@latest
USE CASES
Acting on an app with no API
Screenshot the window with OCR, find the label you want in the returned coordinates, and click there.
Capturing a game or a media player
Turn on Windows Graphics Capture for that window, by flag or by title pattern, instead of getting a black frame.
Driving a multi-step desktop workflow
Activate the window, type into it, press the key combination, and wait between steps where the UI needs a moment.
Performing a drag or a modifier-held click
Use the separate press and release calls rather than a single click, so the gesture spans other actions.
Checking the tools work before wiring a client
List the tools and call one from the command line with mcp-caller, no MCP client involved.
15 tools
Listed in project docs. Your client may show a different list.
move_mousedrag_mousemouse_downmouse_uptype_textkey_downkey_uppress_keystake_screenshottake_screenshot_with_ocrget_screen_sizelist_windowsactivate_windowwait_millisecondsBEFORE YOU INSTALL
What to know first
Tools you get
15 tools named in the project's documentation.
Requires
uvx on PATH
INSTALLATION
Connect your client
Add the block to your client, or run the command directly.
Server setup
Configuration file
{
"mcpServers": {
"computer-control-mcp": {
"command": "uvx",
"args": [
"computer-control-mcp@latest"
]
}
}
}uvx
uvx computer-control-mcp@latest