computer-control-mcp
9
Computer Control MCP is a server designed for manipulating various computer control tasks like mouse movements, keyboard typing, and screen management using technologies such as PyAutoGUI and RapidOCR. It operates without external dependencies and provides functionalities similar to Anthropic's 'computer-use', optimized for Windows.
Computer Control MCP
MCP server that provides computer control capabilities, like mouse, keyboard, OCR, etc. using PyAutoGUI, RapidOCR, ONNXRuntime. Similar to 'computer-use' by Anthropic. With Zero External Dependencies.
- Only tested on Windows. Should work on other platforms.
Quick Usage (MCP Setup Using uvx
)
Note: Running uvx computer-control-mcp@latest
for the first time will download python dependencies (around 70MB) which may take some time. Recommended to run this in a terminal before using it as MCP. Subsequent runs will be instant.
{
"mcpServers": {
"computer-control-mcp": {
"command": "uvx",
"args": ["computer-control-mcp@latest"]
}
}
}
OR install globally with pip
:
pip install computer-control-mcp
Then run the server with:
computer-control-mcp # instead of uvx computer-control-mcp, so you can use the latest version, also you can `uv cache clean` to clear the cache and `uvx` again to use latest version.
Features
- Control mouse movements and clicks
- Type text at the current cursor position
- Take screenshots of the entire screen or specific windows with optional saving to downloads directory
- Extract text from screenshots using OCR (Optical Character Recognition)
- List and activate windows
- Press keyboard keys
- Drag and drop operations
Available Tools
Mouse Control
click_screen(x: int, y: int)
: Click at specified screen coordinatesmove_mouse(x: int, y: int)
: Move mouse cursor to specified coordinatesdrag_mouse(from_x: int, from_y: int, to_x: int, to_y: int, duration: float = 0.5)
: Drag mouse from one position to another
Keyboard Control
type_text(text: str)
: Type the specified text at current cursor positionpress_key(key: str)
: Press a specified keyboard key
Screen and Window Management
take_screenshot(title_pattern: str = None, use_regex: bool = False, threshold: int = 60, with_ocr_text_and_coords: bool = False, scale_percent_for_ocr: int = 100, save_to_downloads: bool = False)
: Capture screen or window with optional OCRget_screen_size()
: Get current screen resolutionlist_windows()
: List all open windowsactivate_window(title_pattern: str, use_regex: bool = False, threshold: int = 60)
: Bring specified window to foreground
Development
Setting up the Development Environment
# Clone the repository
git clone https://github.com/AB498/computer-control-mcp.git
cd computer-control-mcp
# Install in development mode
pip install -e .
# Start server
python -m computer_control_mcp.core
Running Tests
python -m pytest
API Reference
See the for detailed information about the available functions and classes.
License
MIT