LABSCO SUMMARY
Built for a VM at 1280x720, and the project is direct about the risk.
Click accuracy is tuned for that resolution on a single screen, and running it in a virtual machine is the recommended shape rather than a footnote — this hands a model control of a real mouse and keyboard. Known gaps are stated plainly too: window minimize and restore are unsupported, and multiple screens may not behave.
What it is
A Windows control server for MCP: programmatic mouse, keyboard, window management, screen capture and clipboard.
What you get
- Mouse — movement, click and drag, scrolling and position tracking
- Keyboard — text input, key combinations, press and release, and hold
- Windows — list all windows, get the active one, focus, resize and reposition
- Screen — screenshots, screen size detection and active-window capture
- Clipboard operations
- Three automation providers you can mix per operation: keysender by default, powershell for simpler work, and autohotkey for AutoHotkey v2 scripting
- SSE transport, so the server can run on a VM and your client can connect to it across the network
Requirements
Windows only — the keysender dependency is Windows-specific. Visual Studio Build Tools with the VC++ workload, Python and Node.js, then npm install -g mcp-control. Start it with mcp-control --sse; the default port is 3232, and --https with --cert and --key is mandatory for anything remote per the MCP spec. Providers are chosen with AUTOMATION_PROVIDER, or per operation with AUTOMATION_KEYBOARD_PROVIDER and friends.
Setup effort
One command — npm install -g mcp-control
USE CASES
01
Delegating repetitive UI testing
Let the assistant walk an application's interface and report what it finds.
02
Filling in a form you do not want to type
Have it enter the data while you watch, on a machine you can throw away.
03
Bridging two applications that do not talk
Read from one window and type into the other, since there is no API between them.
04
Driving a VM from your main machine
Run the server with SSE on the VM and connect your client to its address and port.
INSTALLATION
Connect your client
Server setup
TERMINAL
npm install -g mcp-controlMCP Clients
Claude Desktop — local
CLAUDE DESKTOP — LOCAL · JSON
{
"mcpServers": {
"MCPControl": {
"command": "mcp-control",
"args": [
"--sse"
]
}
}
}