Desktop Automation
About
Automate desktop actions and interact with your local environment using LLM applications.
Details
- Author
- dmahlow
- Categories
- Productivity, Other
Jump to
Setup
Install Desktop Automation in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/dmahlow/gceu_workshop_mcp_live
Follow the installation instructions in the repository README, then restart your MCP client.
Automate desktop actions and interact with your local environment using LLM applications.
A Model Context Protocol (MCP) server that exposes desktop automation capabilities, allowing LLM applications to interact with your desktop environment through standardized tools.
This MCP server provides a bridge between LLM applications and desktop automation functionality. It exposes mouse, keyboard, and screen automation capabilities through the MCP protocol, enabling AI assistants to:
- Click, right-click, and double-click at specific coordinates
- Move the mouse cursor with smooth or instant movement
- Type text with optional character delays
- Press individual keys or key combinations
- Get current mouse cursor position
- Capture screenshots of the desktop
- Get screen dimensions
- Click: Left click at specified coordinates
- Right Click: Right click at specified coordinates
- Double Click: Double click at specified coordinates
- Move Mouse: Move cursor with optional smooth animation
- Get Position: Retrieve current mouse coordinates
- Type Text: Type text at current cursor position
- Press Key: Press individual keys or key combinations
- Delayed Typing: Type with configurable delays between characters
- Take Screenshot: Capture the full screen and save to file
- Get Screen Size: Retrieve screen dimensions
- Go 1.23.0 or later
- Task runner (optional, for using Taskfile commands)
# Install Task (optional) go install github.com/go-task/task/v3/cmd/task@latest
# Clone the repository (if not already available) git clone <repository-url> cd desktop-automation-mcp # Download dependencies go mod download go mod tidy # Build the server go build -o mcp-server ./cmd/mcp-server # Or using Task task build
The server uses stdio transport for communication:
# Run directly ./mcp-server # Or using Task task run
Configure your LLM application (Claude Desktop, etc.) to connect to this MCP server:
{ "mcpServers": { "desktop-automation": { "command": "/path/to/mcp-server" } } }
- x(number, required): X coordinate
- y(number, required): Y coordinate
Right click at specified screen coordinates.
- x(number, required): X coordinate
- y(number, required): Y coordinate
Double click at specified screen coordinates.
- x(number, required): X coordinate
- y(number, required): Y coordinate
Move mouse cursor to specified coordinates.
- x(number, required): X coordinate
- y(number, required): Y coordinate
- smooth(boolean, optional): Use smooth movement animation
- duration(number, optional): Duration for smooth movement in seconds (default: 1.0)
- text(string, required): Text to type
- delay(number, optional): Delay between characters in milliseconds
- key(string, required): Key to press (e.g., 'enter', 'space', 'ctrl')
- modifiers(array, optional): Modifier keys (e.g., ['ctrl', 'shift'])
- path(string, optional): Path to save the screenshot (if not provided, saves to temp directory)
desktop-automation-mcp/ ├── cmd/ │ └── mcp-server/ # MCP server entry point │ └── main.go ├── internal/ │ └── automation/ # Desktop automation logic (copied from desktop-automation) │ ├── keyboard.go │ ├── mouse.go │ └── screen.go ├── go.mod # Go module definition ├── Taskfile.yml # Task runner configuration ├── .gitignore # Git ignore rules └── README.md # This file
# Build the server task build # Run the server task run # Clean build artifacts task clean # Download and tidy dependencies task deps # Run tests task test # Install to GOPATH/bin task install
# Build go build -o mcp-server ./cmd/mcp-server # Run ./mcp-server # Test go test ./... # Clean go clean rm -f mcp-server
- github.com/mark3labs/mcp-go: MCP protocol implementation for Go
- github.com/go-vgo/robotgo: Cross-platform desktop automation library
- Screen Bounds: All coordinate inputs are validated against screen dimensions
- Input Validation: Negative coordinates and invalid parameters are rejected
- Error Handling: Comprehensive error handling with descriptive messages
- Recovery: Built-in panic recovery for robust operation
This server supports the same platforms as robotgo:
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project follows the same license as the parent desktop-automation project.
- desktop-automation: The original CLI-based desktop automation tool
- mcp-go: Go implementation of the Model Context Protocol
Enables LLM clients to interact with macOS applications through AppleScript. Built using the @beyondbetter/bb-mcp-server library, this server provides safe, controlled execution of predefined scripts with optional support for arbitrary script execution.
On-device tools to detect AI-generated text and images, score readability, and strip AI artifacts, running locally on Apple silicon.
Interact with Apple Notes using natural language on macOS.
Free local MCP server for Apple Mail, Calendar, and Reminders on macOS.
A server for native integration with Apple Reminders on macOS.
Execute AppleScript to gain full control of your Mac.
Native macOS Calendar & Reminders MCP server with 24 tools using Swift EventKit - supports recurring events, location triggers, search, batch operations
Native macOS Calendar & Reminders MCP server via Apple EventKit — events, reminders, recurrence, location triggers, conflict checks, and batch ops across iCloud/Google/Exchange.
An MCP server for integrating with the Claude Desktop application on macOS. Requires the Claude Desktop app to be installed and configured.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.




