MCP Windows Desktop Automation
A Model Context Protocol (MCP) server for Windows desktop automation using AutoIt.
Overview
This project provides a TypeScript MCP server that wraps the node-autoit-koffi package, allowing LLM applications to automate Windows desktop tasks through the MCP protocol.
The server exposes:
- Tools: All AutoIt functions as MCP tools
 
- Resources: File access and screenshot capabilities
 
- Prompts: Templates for common automation tasks
 
Features
- Full wrapping of all AutoIt functions as MCP tools
 
- Support for both stdio and WebSocket transports
 
- File access resources for reading files and directories
 
- Screenshot resources for capturing the screen or specific windows
 
- Prompt templates for common automation tasks
 
- Strict TypeScript typing throughout
 
Installation
# Clone the repository
git clone https://github.com/yourusername/mcp-windows-desktop-automation.git
cd mcp-windows-desktop-automation
# Install dependencies
npm install
# Build the project
npm run build
Usage
Starting the Server
# Start with stdio transport (default)
npm start
# Start with WebSocket transport
npm start -- --transport=websocket --port=3000
# Enable verbose logging
npm start -- --verbose
Command Line Options
--transport=stdio|websocket: Specify the transport protocol (default: stdio) 
--port=<number>: Specify the port for WebSocket transport (default: 3000) 
--verbose: Enable verbose logging 
Tools
The server provides tools for:
- Mouse operations: Move, click, drag, etc.
 
- Keyboard operations: Send keystrokes, clipboard operations, etc.
 
- Window management: Find, activate, close, resize windows, etc.
 
- Control manipulation: Interact with UI controls, buttons, text fields, etc.
 
- Process management: Start, stop, and monitor processes
 
- System operations: Shutdown, sleep, etc.
 
Resources
The server provides resources for:
- File access: Read files and list directories
 
- Screenshots: Capture the screen or specific windows
 
Prompts
The server provides prompt templates for:
- Window interaction: Find and interact with windows
 
- Form filling: Automate form filling tasks
 
- Automation tasks: Create scripts for repetitive tasks
 
- Monitoring: Wait for specific conditions
 
Development
# Run in development mode
npm run dev
# Lint the code
npm run lint
# Run tests
npm run test
License
MIT