Desktop Controller MCP Server
Give any AI full control of your desktop. Mouse, keyboard, screenshots — all through the Model Context Protocol.
README
Desktop Controller MCP Server
Give any AI full control of your desktop. Mouse, keyboard, screenshots — all through the Model Context Protocol.
One MCP server. Ten tools. Your AI can now see your screen and interact with any application, just like you do.
What can it do?
- See your screen — Take full or partial screenshots, auto-optimized for LLM token usage
- Move & click — Navigate, click, double-click, right-click, drag and drop
- Type anything — Full keyboard control including Unicode, emoji, and key combos (Cmd+C, Ctrl+Shift+T, etc.)
- Cross-platform — Works on macOS, Windows, and Linux
Tools
| Tool | What it does |
|---|---|
desktop_screenshot |
Capture the screen or a region (returns image directly to the LLM) |
desktop_get_screen_size |
Get screen dimensions in logical pixels |
desktop_get_mouse_position |
Get current cursor coordinates |
desktop_move_mouse |
Move cursor (absolute or relative) |
desktop_click |
Click, double-click, or right-click at any position |
desktop_scroll |
Scroll up or down |
desktop_drag |
Drag from one position to another |
desktop_type_text |
Type text with full Unicode support |
desktop_press_key |
Press special keys (Enter, Tab, arrows, F1-F12, etc.) |
desktop_hotkey |
Press key combinations (Cmd+C, Ctrl+V, Alt+F4, etc.) |
Quick Start
Install
git clone https://github.com/YOUR_USERNAME/mcp-desktop-controller.git
cd mcp-desktop-controller
pip install -e .
Add to Claude Desktop
Add to your config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"desktop-controller": {
"command": "mcp-desktop-controller"
}
}
}
<details> <summary>Using a virtual environment? Use the full path instead.</summary>
{
"mcpServers": {
"desktop-controller": {
"command": "/path/to/venv/bin/mcp-desktop-controller"
}
}
}
</details>
Add to Claude Code
claude mcp add desktop-controller -- mcp-desktop-controller
macOS Permissions
On first run, you'll need to grant two permissions in System Settings > Privacy & Security:
- Accessibility — so the server can control mouse and keyboard
- Screen Recording — so it can take screenshots
Safety
- Failsafe — Move your mouse to the top-left corner (0,0) to instantly abort any action
- Action pause — 0.1s delay between all actions to keep things predictable
- Retina-aware — All coordinates use logical resolution; screenshots are auto-downscaled to save tokens
How it works
Built with FastMCP and PyAutoGUI. The server exposes desktop control as MCP tools over stdio. Any MCP-compatible client (Claude Desktop, Claude Code, or your own) connects and gets full desktop access.
Your AI ←→ MCP Client ←→ Desktop Controller ←→ Your Screen
Platform Support
| Platform | Status | Notes |
|---|---|---|
| macOS | Full support | Uses pbcopy for Unicode input |
| Windows | Full support | Uses clip for Unicode input |
| Linux | Full support | Requires xclip (sudo apt install xclip) |
Development
# Run directly
python server.py
# Test with MCP Inspector
fastmcp dev server.py
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.