Lightweight MCP Server for interacting with Windows Operating System.
Project description
Windows MCP is a lightweight, open-source project that enables seamless integration between AI agents and the Windows operating system. Acting as an MCP server bridges the gap between LLMs and the Windows operating system, allowing agents to perform tasks such as file navigation, application control, UI interaction, QA testing, and more.
🎥 Demos
https://github.com/user-attachments/assets/d0e7ed1d-6189-4de6-838a-5ef8e1cad54e
https://github.com/user-attachments/assets/d2b372dc-8d00-4d71-9677-4c64f5987485
✨ Key Features
-
Seamless Windows Integration
Interacts natively with Windows UI elements, opens apps, controls windows, simulates user input, and more. -
Use Any LLM (Vision Optional) Unlike many automation tools, Windows MCP doesn't rely on any traditional computer vision techniques or specific fine-tuned models; it works with any LLMs, reducing complexity and setup time.
-
Rich Toolset for UI Automation 25 tools for keyboard, mouse, clipboard, shell, window management, element search, UI state capture, notifications, process management, OCR, and audio control.
-
Command Security Built-in protection against dangerous commands (format, shutdown, rm, etc.), injection attacks (blocked operators and encoded command arguments), working directory restrictions, and command length limits.
-
Lightweight & Open-Source Minimal dependencies and easy setup with full source code available under MIT license.
-
Customizable & Extendable
Easily adapt or extend tools to suit your unique automation or AI integration needs. -
Real-Time Interaction
Typical latency between actions (e.g., from one mouse click to the next) ranges from 1.5 to 2.3 secs, and may slightly vary based on the number of active applications and system load, also the inferencing speed of the llm.
Supported Operating Systems
- Windows 7
- Windows 8, 8.1
- Windows 10
- Windows 11
Installation
Prerequisites
- Python 3.13+
- Anthropic Claude Desktop app or other MCP Clients
- UV (Package Manager) from Astra, install with
pip install uv - DXT (Desktop Extension) from Antropic, install with
npm install -g @anthropic-ai/dxt
🏁 Getting Started
PyPI (Any MCP Client)
Install from PyPI:
pip install windows-mcp-server
Then configure your MCP client to run windows-mcp as the command.
Claude Code
claude mcp add windows-mcp -- windows-mcp
Gemini CLI
-
Navigate to
%USERPROFILE%/.geminiin File Explorer and opensettings.json. -
Add the
windows-mcpconfig in thesettings.jsonand save it.
{
"theme": "Default",
"selectedAuthType": "oauth-personal",
//MCP Server Config
"mcpServers": {
"windows-mcp": {
"command": "uv",
"args": [
"--directory",
"<path to the windows-mcp directory>",
"run",
"main.py"
]
}
}
}
- Rerun Gemini CLI in terminal. Enjoy 🥳
Claude Desktop
- Clone the repository.
git clone https://github.com/CursorTouch/Windows-MCP.git
cd Windows-MCP
- Build Desktop Extension
DXT:
npx @anthropic-ai/dxt pack
- Open Claude Desktop:
Go to Claude Desktop: Settings->Extensions->Install Extension (locate the .dxt file)-> Install
Finally Enjoy 🥳.
For additional Claude Desktop integration troubleshooting, see the MCP documentation. The documentation includes helpful tips for checking logs and resolving common issues.
🛠️MCP Tools
Claude can access the following tools to interact with Windows:
| Tool | Description |
|---|---|
State-Tool |
Combined snapshot of active apps, interactive/textual/scrollable elements, and optional annotated screenshot |
Click-Tool |
Click on the screen at given coordinates (single, double, or triple click) |
Type-Tool |
Type text on an element (optionally clears existing text) |
Clipboard-Tool |
Copy or paste using the system clipboard |
Scroll-Tool |
Scroll vertically or horizontally on the window or specific regions |
Drag-Tool |
Drag from one point to another |
Move-Tool |
Move mouse pointer |
Shortcut-Tool |
Press keyboard shortcuts (Ctrl+C, Alt+Tab, etc.) |
Key-Tool |
Press a single key |
Wait-Tool |
Pause for a defined duration |
Launch-Tool |
Launch an application from the start menu |
Switch-Tool |
Switch to a running application |
Powershell-Tool |
Execute PowerShell commands with security validation and optional working directory |
Command-History-Tool |
Retrieve history of executed commands with timestamps and exit codes |
Screenshot-Tool |
Take a screenshot of the full screen or a specific region |
Window-Tool |
Minimize, maximize, restore, or close windows by name |
Find-Element-Tool |
Search UI elements by text and return coordinates |
Wait-For-Tool |
Poll until a UI element or text appears, with timeout |
Scrape-Tool |
Scrape a webpage for information (with SSRF protection) |
Notification-Tool |
Show a Windows toast notification |
Process-Tool |
List running processes or kill by name/PID |
File-Dialog-Tool |
Type a path into an open/save file dialog and confirm |
Multi-Monitor-Tool |
Get display count, resolutions, and positions |
OCR-Tool |
Extract text from screen or region using Windows built-in OCR |
Audio-Tool |
Get/set system volume, mute/unmute |
System-Info-Tool |
Get comprehensive system info (OS, CPU, RAM, disks, GPU, network, battery, top processes) |
📡 MCP Resources
| Resource URI | Description |
|---|---|
windows-mcp://current-directory |
Server's current working directory |
windows-mcp://security-config |
Active security rules (blocked commands, arguments, operators, allowed paths) |
🔒 Command Security
The Powershell-Tool includes multiple layers of protection:
- Blocked commands:
format,shutdown,rm,del,regedit,net, and more - Blocked arguments:
-enc,-encodedcommand,--exec, and other injection-risk flags - Blocked operators:
;and`(backtick) to prevent command chaining and injection - Path restriction:
workingDirlimited to user home directory and server working directory - Length limit: Commands capped at 2000 characters
Star History
⚠️Caution
This MCP interacts directly with your Windows operating system to perform actions. Use with caution and avoid deploying it in environments where such risks cannot be tolerated.
📝 Limitations
- Selecting specific sections of the text in a paragraph, as the MCP is relying on a11y tree. (⌛ Working on it.)
Type-Toolis meant for typing text, not programming in IDE because of it types program as a whole in a file. (⌛ Working on it.)
🪪License
This project is licensed under the MIT License - see the LICENSE file for details.
🤝Contributing
Contributions are welcome! Please see CONTRIBUTING for setup instructions and development guidelines.
Made with ❤️ by Jeomon George
Citation
@software{
author = {George, Jeomon},
title = {Windows-MCP: Lightweight open-source project for integrating LLM agents with Windows},
year = {2024},
publisher = {GitHub},
url={https://github.com/CursorTouch/Windows-MCP}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file windows_mcp_server-0.5.2.tar.gz.
File metadata
- Download URL: windows_mcp_server-0.5.2.tar.gz
- Upload date:
- Size: 39.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c40e1f836c09f6aaba9e9322c3b223b4cfcf5d73a244fcea222b4c8c550f9c2b
|
|
| MD5 |
bac5aecfbd53828cc68ec22b21b5ae82
|
|
| BLAKE2b-256 |
c84007f7accf5ebd8c2b751bfb7ecbe6650179951e2f4d195a764d6545824f28
|
File details
Details for the file windows_mcp_server-0.5.2-py3-none-any.whl.
File metadata
- Download URL: windows_mcp_server-0.5.2-py3-none-any.whl
- Upload date:
- Size: 35.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35c2fb97ab743eea82b1da9d32bc918760fe4cc369382ef89f76ebf9cd23a77a
|
|
| MD5 |
175d30e90d7525d688e0b7d21debdac7
|
|
| BLAKE2b-256 |
24ae56c73793f272e578c9a55eb1483a37ed360c1df3cf86303659d94f983315
|