Windows-MCP

An MCP server for driving Windows: the agent opens apps, clicks and types, reads window and UI state, and works with files and PowerShell

MCP server

High risk

We rate an entry high when the tool writes to external systems, handles money, production databases or secrets, or runs arbitrary commands. The CLI installs it only with your consent.

Why this level

  • Gives the agent direct control of the Windows desktop: clicks, input, opening apps and file operations
  • Runs PowerShell commands and accesses the registry, and remote transports expose it over the network
All reasons and checks

cursortouch/windows-mcp

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/windows-mcp

Detects the agents on your machine, checks the risk and pins the version.

Other ways to install

This entry is high risk, so there is no one-click install. Review the code and add the config by hand.

Run in a terminal

claude mcp add --transport stdio Windows-MCP -- uvx windows-mcp==0.8.5

Or add to the file .mcp.json, in the project

{
  "mcpServers": {
    "Windows-MCP": {
      "command": "uvx",
      "args": [
        "windows-mcp==0.8.5"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Add to the file ~/.cursor/mcp.json, for all projects

{
  "mcpServers": {
    "Windows-MCP": {
      "command": "uvx",
      "args": [
        "windows-mcp==0.8.5"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key. For a single project, put the same block into .cursor/mcp.json.

Run in a terminal

code --add-mcp '{"name":"Windows-MCP","type":"stdio","command":"uvx","args":["windows-mcp==0.8.5"]}'

Or add to the file .vscode/mcp.json, in the project

{
  "servers": {
    "Windows-MCP": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "windows-mcp==0.8.5"
      ]
    }
  }
}

If the file already exists, add the server inside the servers key.

Run in a terminal

codex mcp add Windows-MCP -- uvx windows-mcp==0.8.5

Or add to the file ~/.codex/config.toml, for all projects

[mcp_servers.Windows-MCP]
command = "uvx"
args = ["windows-mcp==0.8.5"]

If the file already exists, append the block to the end.

Run in a terminal

gemini mcp add -s user Windows-MCP uvx windows-mcp==0.8.5

Or add to the file ~/.gemini/settings.json, for all projects

{
  "mcpServers": {
    "Windows-MCP": {
      "command": "uvx",
      "args": [
        "windows-mcp==0.8.5"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Add to the file ~/.config/devin/mcp_config.json, for all projects

{
  "mcpServers": {
    "Windows-MCP": {
      "command": "uvx",
      "args": [
        "windows-mcp==0.8.5"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key. Legacy Cascade keeps the MCP config in ~/.codeium/windsurf/mcp_config.json.

Formerly Windsurf.

Add to the file cline_mcp_settings.json, for all projects

{
  "mcpServers": {
    "Windows-MCP": {
      "command": "uvx",
      "args": [
        "windows-mcp==0.8.5"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key. Open the settings file in Cline: MCP Servers tab, Configure MCP Servers.

Add to the file .roo/mcp.json, in the project

{
  "mcpServers": {
    "Windows-MCP": {
      "command": "uvx",
      "args": [
        "windows-mcp==0.8.5"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

A fork of Roo Code, same .roo folders.

Add to the file opencode.json, in the project

{
  "mcp": {
    "Windows-MCP": {
      "type": "local",
      "command": [
        "uvx",
        "windows-mcp==0.8.5"
      ]
    }
  }
}

If the file already exists, add the server inside the mcp key.

Add to the file ~/.config/zed/settings.json, for all projects

{
  "context_servers": {
    "Windows-MCP": {
      "command": "uvx",
      "args": [
        "windows-mcp==0.8.5"
      ]
    }
  }
}

If the file already exists, add the server inside the context_servers key.

Add to the file .codeassistant/mcp.json, in the project

{
  "mcpServers": {
    "Windows-MCP": {
      "command": "uvx",
      "args": [
        "windows-mcp==0.8.5"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

You will need: uv

Checked against the repository on Sep 24, 2026, commit 32e4723.

Text for your agent

Install uv, then add the MCP server to the client config: command uvx, args windows-mcp and serve. For HTTP transport run uvx windows-mcp serve --transport streamable-http --host localhost --port 8000.

Other ways from the author
{
  "mcpServers": {
    "windows-mcp": {
      "command": "uvx",
      "args": ["windows-mcp", "serve"]
    }
  }
}

Requires uv installed. For HTTP transport add --transport streamable-http and a bind address.

This is third-party code. Review the repository files before installing.

What it does

The server links a language model to the Windows desktop and gives the agent tools to control the system. It captures a screenshot with cursor position and a window list, builds a UI element tree through UI Automation, emulates keyboard and mouse, opens and switches applications, works with files, clipboard, processes, the registry and notifications, and runs PowerShell commands. A dedicated browser mode keeps only web page content and drops the browser's own UI, supporting Chrome, Edge and Firefox. The server does not rely on computer vision and works with any model. It runs over stdio for a local client or over HTTP and SSE for remote access, where an auth key, an IP allowlist, TLS and OAuth can be enabled.

Who it is for. For engineers and QA who need an agent to drive Windows applications and UI and run scenarios.

Good fit when

  • You want an agent to open Windows apps, click and type for the user
  • You want to capture window and UI element state for checks or automation
  • You want to automate a browser scenario or run a manual QA test

Not a fit when

  • The target system is not Windows, the server uses Windows APIs for UI control
  • You cannot grant the agent direct access to the desktop and shell commands

Example request

Open the calculator, add the numbers in it and send a screenshot of the result

Limitations

It runs only on Windows, with stated support from Windows 7 to 11, and needs Python 3.13+ and the uv package manager. English as the system language is preferred, otherwise the App tool is recommended to be disabled. The first run can take a minute or two while dependencies install and may time out, after which the server is restarted. For remote HTTP access you configure protection yourself: an auth key, an IP allowlist, TLS and OAuth are set through flags or environment variables.

How to disable. Remove the windows-mcp entry from the MCP client config and restart it. If you installed it as a background task via windows-mcp install, remove it with windows-mcp uninstall. Uninstall the package with uv tool uninstall windows-mcp.

MCP

Transport
stdio, http, sse
Authentication
not required
Environment variables
Environment variables
WINDOWS_MCP_AUTH_KEY
secret
Bearer token required on all HTTP requests for remote access, an alternative to the --auth-key flag.
WINDOWS_MCP_IP_ALLOWLIST
Comma-separated list of allowed client IPs or CIDR ranges.
WINDOWS_MCP_OAUTH_CLIENT_SECRET
secret
OAuth client secret for HTTP transports, set together with WINDOWS_MCP_OAUTH_CLIENT_ID.
WINDOWS_MCP_SCREENSHOT_SCALE
Screenshot scale factor from 0.1 to 1.0, helps fit the result size limit on high-resolution displays.

Security check

  • Gives the agent direct control of the Windows desktop: clicks, input, opening apps and file operations
  • Runs PowerShell commands and accesses the registry, and remote transports expose it over the network

README in short

The README describes Windows-MCP as an MCP server that links agents to Windows and provides tools for file navigation, application control, UI interaction and QA testing. Install goes through uv and uvx windows-mcp serve, with stdio, streamable-http and sse transports available, plus a background task install via windows-mcp install. It details setup in Claude Desktop, Perplexity, Claude Code and through WSL. Separate sections cover remote access security, choosing which tools are enabled and environment variables. The package is on PyPI and in the MCP registry, MIT licensed.

FAQ

Do I need a separate computer vision model?

No. The server builds a UI element tree through UI Automation and works with any language model, vision is optional.

Can I expose it over the network?

Yes, there are HTTP and SSE transports, but you configure protection yourself: an auth key, an IP allowlist, TLS and OAuth are set through flags or environment variables.

Editors’ pick

An MCP server with n8n node and template knowledge: the agent picks nodes, validates configs and, with API access, creates workflows in your n8n

MCP serverHigh riskNo VPN needed23KRepository stars
Official

Zapier's official MCP plugin: the agent gets actions across thousands of apps through your Zapier account

PluginHigh risk421Repository stars

A curated list of Claude skills and plugins, plus Composio's own automation skills for 78 SaaS apps

SkillHigh risk75.8KRepository stars

A plugin and CLI catalog for agents: generates command-line interfaces for GUI apps like GIMP and Blender and installs ready ones via CLI-Hub

PluginHigh riskNo VPN needed50.9KRepository stars
Foxx AIWindows-MCP

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.