Windows-MCP
About
A lightweight MCP server for interacting with the Windows Operating System.
Details
- License
- MIT
Explore
- Seamless Windows integration with native UI interaction
- Works with any LLM (vision not required)
- Rich toolset for keyboard, mouse, and window automation
- Lightweight and open-source under MIT license
- Customizable and extendable toolset
- Real-time interaction (0.2–0.5 second latency)
- DOM Mode for browser automation (Chrome, Edge, Firefox)
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Windows-MCPCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Install Python 3.13+ and the uv package manager. Run uvx windows-mcp serve to start the server via stdio or use --transport sse for HTTP. For automatic startup at login, run windows-mcp install. Configuration instructions are provided for Claude Desktop, Perplexity Desktop, Gemini CLI, Qwen Code, Codex CLI, and Claude Code.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"windows-mcp": {
"Windows-MCP": {
"command": "uvx",
"args": [
"windows-mcp",
"serve"
]
}
}
}
}
McpServers
{
"Windows-MCP": {
"command": "uvx",
"args": [
"windows-mcp",
"serve"
]
}
}
Windows-MCPis 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 asfile navigation, application control, UI interaction, QA testing,and more.
mcp-name: io.github.CursorTouch/Windows-MCP
- Windows-MCP reached2M+ UsersinClaude Desktop Extensiosn.
- Try out🪟Windows-Use, an agent built using Windows-MCP.
- Windows-MCP is now available onPyPI(thus supportsuvx windows-mcp)
- Windows-MCP is added toMCP Registry
- Windows 7
- Windows 8, 8.1
- Windows 10
- Windows 11
https://github.com/user-attachments/assets/d0e7ed1d-6189-4de6-838a-5ef8e1cad54e
https://github.com/user-attachments/assets/d2b372dc-8d00-4d71-9677-4c64f5987485
-
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
Includes tools for basic keyboard, mouse operation and capturing window/UI state.
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 from0.2 to 0.5 secs, and may slightly vary based on the number of active applications and system load, also the inferencing speed of the llm.
DOM Mode for Browser Automation
Specialuse_dom=Truemode for State-Tool that focuses exclusively on web page content, filtering out browser UI elements for cleaner, more efficient web automation. Supports Chrome, Edge, and Firefox (Firefox uses an IAccessible2 fallback since it doesn't exposeRootWebAreavia UIA).
Note:When you install this MCP server for the first time it may take a minute or two because of installing the dependencies inpyproject.toml. In the first run the server may timeout ignore it and restart it.
- Python 3.13+
- UV (Package Manager) from Astra, install withpip install uvorcurl -LsSf https://astral.sh/uv/install.sh | sh
- Englishas the default language in Windows preferred else disable theApp-Toolin the MCP Server for Windows with other languages.
uvx windows-mcp serve uvx windows-mcp serve --transport sse --host localhost --port 8000 uvx windows-mcp serve --transport streamable-http --host localhost --port 8000
Install it as a background task that starts now and at every login:
windows-mcp install # Or choose the HTTP transport and bind address explicitly windows-mcp install --transport sse --host 127.0.0.1 --port 8000
This creates a per-user Scheduled Task namedwindows-mcp-serverand a wrapper script at~/.windows-mcp/start-server.cmd. Usewindows-mcp uninstallto remove it. Logs are written to~/.windows-mcp/server.logand~/.windows-mcp/server.error.log.
Option A: Install from PyPI (Recommended)
Useuvxto run the latest version directly from PyPI.
Add this to yourclaude_desktop_config.json:
{ "mcpServers": { "windows-mcp": { "command": "uvx", "args": [ "windows-mcp", "serve" ] } } }
git clone https://github.com/CursorTouch/Windows-MCP.git cd Windows-MCP
- Add this to yourclaude_desktop_config.json:
{ "mcpServers": { "windows-mcp": { "command": "uv", "args": [ "--directory", "<path to the windows-mcp directory>", "run", "windows-mcp", "serve" ] } } }
- Fully restart Claude Desktop and verify the server appears in the MCP tools list.
The MSIX-packaged Claude Desktop (Microsoft Store version) virtualizes%APPDATA%. This causes two main issues:
- The config file is located at:%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json(not%APPDATA%\Claude\).
- Automatic installation from the "Claude Directory" will fail because the${__dirname}variable resolves to the incorrect (non-virtualized) path.
To configure Windows-MCP on the Windows Store version of Claude:
You must manually edit the configuration file. Note that Electron apps in the MSIX sandbox do not inherit the systemPATH, so you must use thefull absolute pathtouvx.exe(oruv.exe).
Option A: Using pre-installed executable
- In a terminal, runuv tool install windows-mcp.
- Use the generated executable in your config:
{ "mcpServers": { "windows-mcp": { "command": "C:\\Users\\<user>\\.local\\bin\\windows-mcp.exe", "args": ["serve"] } } }
{ "mcpServers": { "windows-mcp": { "command": "C:\\Users\\<user>\\.local\\bin\\uvx.exe", "args": ["windows-mcp", "serve"] } } }
{ "mcpServers": { "windows-mcp": { "command": "C:\\Users\\<user>\\.local\\bin\\uv.exe", "args": [ "--directory", "C:\\path\\to\\Windows-MCP", "run", "windows-mcp", "serve" ] } } }
Replace<user>with your Windows username. To find the correct paths, runwhere uvx,where windows-mcp, orwhere uv. Fully quit Claude Desktop (Tray → Quit) and reopen after saving the config.
For additional Claude Desktop integration troubleshooting, see theMCP documentation.
- InstallPerplexity Desktop.
- Open Perplexity Desktop and go toSettings -> Connectors -> Add Connector -> Advanced.
- Enter the name asWindows-MCP, then paste one of the following configs.
Option A: Install from PyPI (Recommended)
{ "command": "uvx", "args": [ "windows-mcp", "serve" ] }
{ "command": "uv", "args": [ "--directory", "<path to the windows-mcp directory>", "run", "windows-mcp", "serve" ] }
- ClickSave, then restart Perplexity Desktop if needed.
For additional Claude Desktop integration troubleshooting, see thePerplexity MCP Support. The documentation includes helpful tips for checking logs and resolving common issues.
- Open%USERPROFILE%/.gemini/settings.json.
- Add thewindows-mcpconfig and save it.
{ "theme": "Default", ... "mcpServers": { "windows-mcp": { "command": "uvx", "args": [ "windows-mcp", "serve" ] } } }
Note: To run from source, replace the command withuvand args with["--directory", "<path>", "run", "windows-mcp", "serve"].
npm install -g @qwen-code/qwen-code@latest
- Open%USERPROFILE%/.qwen/settings.json.
- Add thewindows-mcpconfig and save it.
{ "mcpServers": { "windows-mcp": { "command": "uvx", "args": [ "windows-mcp", "serve" ] } } }
Note: To run from source, replace the command withuvand args with["--directory", "<path>", "run", "windows-mcp", "serve"].
- Open%USERPROFILE%/.codex/config.toml.
- Add thewindows-mcpconfig and save it.
[mcp_servers.windows-mcp] command="uvx" args=[ "windows-mcp", "serve" ]
Note: To run from source, replace the command withuvand args with["--directory", "<path>", "run", "windows-mcp", "serve"].
Add the published stdio server from a Windows terminal:
autohand mcp add windows-mcp uvx windows-mcp serve
Add--scope projectafteraddto keep the server configuration in the current project. SeeAutohand Codefor current installation and CLI details.
npm install -g @anthropic-ai/claude-code
Option A: Install from PyPI (Recommended)
Useuvxto run the latest version directly from PyPI.
claude mcp add --transport stdio windows-mcp -- uvx windows-mcp serve
git clone https://github.com/CursorTouch/Windows-MCP.git cd Windows-MCP
- Run the following command in your terminal:
claude mcp add --transport stdio windows-mcp -- uv --directory "<path>" run windows-mcp serve
Note: To make the server available across all projects, add--scope userto the command.
Note:On Windows, if you encounter "Connection closed" errors, use the full path touvx.exe:
claude mcp add --transport stdio windows-mcp -- C:\Users\<user>\.local\bin\uvx.exe windows-mcp serve
To verify the server is registered, runclaude mcp list. Inside Claude Code, use/mcpto check server status.
If you run Claude Code from WSL, the MCP server must still execute on the Windows side (it needs Windows APIs for UI automation). Usepowershell.exeas the command to bridge WSL and Windows:
- InstalluvonWindows(from a PowerShell terminal):
irm https://astral.sh/uv/install.ps1 | iex
- From yourWSL terminal, register the server:
claude mcp add windows-mcp --transport stdio -s user -- powershell.exe -Command "C:\Users\<user>\.local\bin\uvx.exe windows-mcp serve"
Replace<user>with your Windows username. The-s userflag makes the server available across all projects.
- Restart Claude Code and verify with/mcp.
Windows-MCP runs directly on your Windows machine and exposes its tools to the connected MCP client.
# Runs with stdio transport (default) uvx windows-mcp serve # Or with SSE/Streamable HTTP for network access uvx windows-mcp serve --transport sse --host localhost --port 8000 uvx windows-mcp serve --transport streamable-http --host localhost --port 8000
Optional environment variables can be set to customize behavior — seeEnvironment Variablesbelow.
For network access, enable authentication and TLS:
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



