MCP Server for Computer Use in Windows
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.
mcp-name: io.github.CursorTouch/Windows-MCP
2M+ Users in Claude Desktop Extensiosn. uvx windows-mcp)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 from 0.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
Special use_dom=True mode 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 expose RootWebArea via UIA).
Note: When you install this MCP server for the first time it may take a minute or two because of installing the dependencies in pyproject.toml. In the first run the server may timeout ignore it and restart it.
pip install uv or curl -LsSf https://astral.sh/uv/install.sh | shEnglish as the default language in Windows preferred else disable the App-Tool in the MCP Server for Windows with other languages.Run the server directly when needed:
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 named windows-mcp-server and a wrapper script at
~/.windows-mcp/start-server.cmd. Use windows-mcp uninstall to remove it. Logs are written
to ~/.windows-mcp/server.log and ~/.windows-mcp/server.error.log.
npm install -g @anthropic-ai/mcpb
Option A: Install from PyPI (Recommended)
Use uvx to run the latest version directly from PyPI.
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"windows-mcp": {
"command": "uvx",
"args": [
"windows-mcp",
"serve"
]
}
}
}
Option B: Install from Source
git clone https://github.com/CursorTouch/Windows-MCP.git
cd Windows-MCP
claude_desktop_config.json:{
"mcpServers": {
"windows-mcp": {
"command": "uv",
"args": [
"--directory",
"<path to the windows-mcp directory>",
"run",
"windows-mcp",
"serve"
]
}
}
}
Claude Desktop MSIX (Windows Store)
The MSIX-packaged Claude Desktop (Microsoft Store version) virtualizes %APPDATA%. This causes two main issues:
%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json (not %APPDATA%\Claude\).${__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 system PATH, so you must use the full absolute path to uvx.exe (or uv.exe).
Option A: Using pre-installed executable
uv tool install windows-mcp.{
"mcpServers": {
"windows-mcp": {
"command": "C:\\Users\\<user>\\.local\\bin\\windows-mcp.exe",
"args": ["serve"]
}
}
}
Option B: Using uvx
{
"mcpServers": {
"windows-mcp": {
"command": "C:\\Users\\<user>\\.local\\bin\\\uvx.exe",
"args": ["windows-mcp", "serve"]
}
}
}
Option C: Install from Source
{
"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, run where uvx, where windows-mcp, or where uv. Fully quit Claude Desktop (Tray → Quit) and reopen after saving the config.
For additional Claude Desktop integration troubleshooting, see the MCP documentation.
Install in Perplexity DesktopSettings -> Connectors -> Add Connector -> Advanced.Windows-MCP, then paste one of the following configs.Option A: Install from PyPI (Recommended)
{
"command": "uvx",
"args": [
"windows-mcp",
"serve"
]
}
Option B: Install from Source
{
"command": "uv",
"args": [
"--directory",
"<path to the windows-mcp directory>",
"run",
"windows-mcp",
"serve"
]
}
Save, then restart Perplexity Desktop if needed.For additional Claude Desktop integration troubleshooting, see the Perplexity MCP Support. The documentation includes helpful tips for checking logs and resolving common issues.
Install in Gemini CLInpm install -g @google/gemini-cli
%USERPROFILE%/.gemini/settings.json.windows-mcp config and save it.{
"theme": "Default",
...
"mcpServers": {
"windows-mcp": {
"command": "uvx",
"args": [
"windows-mcp",
"serve"
]
}
}
}
Note: To run from source, replace the command with uv and args with ["--directory", "<path>", "run", "windows-mcp", "serve"].
npm install -g @qwen-code/qwen-code@latest
%USERPROFILE%/.qwen/settings.json.windows-mcp config and save it.{
"mcpServers": {
"windows-mcp": {
"command": "uvx",
"args": [
"windows-mcp",
"serve"
]
}
}
}
Note: To run from source, replace the command with uv and args with ["--directory", "<path>", "run", "windows-mcp", "serve"].
npm install -g @openai/codex
%USERPROFILE%/.codex/config.toml.windows-mcp config and save it.[mcp_servers.windows-mcp]
command="uvx"
args=[
"windows-mcp",
"serve"
]
Note: To run from source, replace the command with uv and 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 project after add to keep the server configuration in the current project. See Autohand Code for current installation and CLI details.
npm install -g @anthropic-ai/claude-code
Option A: Install from PyPI (Recommended)
Use uvx to run the latest version directly from PyPI.
claude mcp add --transport stdio windows-mcp -- uvx windows-mcp serve
Option B: Install from Source
git clone https://github.com/CursorTouch/Windows-MCP.git
cd Windows-MCP
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 user to the command.
Note: On Windows, if you encounter "Connection closed" errors, use the full path to uvx.exe:
claude mcp add --transport stdio windows-mcp -- C:\Users\<user>\.local\bin\\uvx.exe windows-mcp serve
To verify the server is registered, run claude mcp list. Inside Claude Code, use /mcp to check server status.
WSL (Windows Subsystem for Linux)
If you run Claude Code from WSL, the MCP server must still execute on the Windows side (it needs Windows APIs for UI automation). Use powershell.exe as the command to bridge WSL and Windows:
uv on Windows (from a PowerShell terminal):irm https://astral.sh/uv/install.ps1 | iex
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 user flag makes the server available across all projects.
/mcp.Windows-MCP runs directly on your Windows machine and exposes its tools to the connected MCP client.
# Runs with stdio transport (default)
uvx win
No open issues yet, or sync has not completed.