# Windows-MCP server

> Control a Windows desktop: launch apps, click, type, take screenshots, use the clipboard, run PowerShell and edit files and the registry.

- Listing: https://mcp.tc/i/windows-mcp
- Connect: this is a local (stdio) server; install it on your machine (see Install). The listing link is a page, not an MCP endpoint.
- Type: local (stdio)
- Auth: no API key needed
- Category: [Utilities](https://mcp.tc/c/utilities)
- Vendor: CursorTouch
- Homepage: <https://cursortouch.com/>
- Docs: <https://github.com/CursorTouch/Windows-MCP>
- Repository: <https://github.com/CursorTouch/Windows-MCP>
- Package: pypi `windows-mcp`

## About

Windows-MCP lets an AI assistant operate a Windows computer. It can capture screenshots and UI snapshots, click, type, scroll and drag, send keyboard shortcuts, launch and resize apps, read the clipboard, manage processes, edit files and the registry, and run PowerShell commands.

It runs locally over stdio with uvx windows-mcp serve and needs Python 3.13+ and uv. SSE and streamable HTTP are available with the transport option. No sign-in or API key is needed. It controls the real desktop and can run system commands, so use it only on a machine you trust the agent with. Optional telemetry can be turned off with an environment variable.

## What it can do

- Capture screenshots and full UI snapshots with interactive element ids
- Click, type, scroll, drag and send keyboard shortcuts
- Launch, resize and switch between Windows applications
- Run PowerShell commands
- Read, write, copy, move, delete and search files
- Read and set clipboard text
- List and kill processes
- Read and edit Windows Registry values

## Tools (21)

- `ControlStatus`: Report whether AI or the user controls the desktop and the remaining idle wait.
- `App`: Launch, resize or switch to a Windows application window.
- `PowerShell`: Run PowerShell commands for files, processes and system tasks.
- `FileSystem`: Read, write, copy, move, delete, list, search and inspect files and folders.
- `Screenshot`: Capture a fast desktop screenshot with cursor position and window list.
- `Snapshot`: Capture desktop state including windows, interactive elements and scrollable areas.
- `DisplayInventory`: Read display layout, resolution, DPI and scale for each monitor.
- `Click`: Click, double-click or hover at coordinates or on a UI element.
- `Type`: Type text into a field at coordinates or a UI element.
- `Scroll`: Scroll vertically or horizontally at a position or element.
- `Move`: Move the mouse cursor or drag and drop to a target.
- `Shortcut`: Press keyboard shortcuts such as ctrl+c or alt+tab.
- `Wait`: Pause for a set number of seconds.
- `WaitFor`: Wait until a UI condition such as text or a window appears.
- `Scrape`: Fetch content from a URL or the active browser tab.
- `MultiSelect`: Select multiple items by coordinates or labels, with optional Ctrl held.
- `MultiEdit`: Enter text into several input fields in one call.
- `Clipboard`: Get or set the Windows clipboard text.
- `Process`: List running processes or kill them by PID or name.
- `Notification`: Send a Windows toast notification.
- `Registry`: Get, set, delete or list Windows Registry values and keys.

## Example prompts

- "Take a screenshot and tell me which windows are open."
- "Open Notepad and type a short meeting summary."
- "List running processes sorted by memory use."
- "Copy the text in the clipboard and save it to a file on my Desktop."

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport stdio windows-mcp -- uvx windows-mcp serve
```

2. Start Claude Code and type `/mcp`. **windows-mcp** should show as connected.

Add `--scope user` to make it available in every project.

### Claude Desktop

1. Open **Settings → Developer → Edit Config**. It opens `claude_desktop_config.json`. Add:

`claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "windows-mcp": {
      "command": "uvx",
      "args": [
        "windows-mcp",
        "serve"
      ]
    }
  }
}
```

2. Save the file and restart Claude Desktop.

Needs uv (Python) on your computer. The file lives in `~/Library/Application Support/Claude/` on macOS and `%APPDATA%\Claude\` on Windows.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=windows-mcp&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyJ3aW5kb3dzLW1jcCIsInNlcnZlIl19>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "windows-mcp": {
      "command": "uvx",
      "args": [
        "windows-mcp",
        "serve"
      ]
    }
  }
}
```

Needs uv (Python) on your computer.

### VS Code

[Install in VS Code](<https://vscode.dev/redirect/mcp/install?name=windows-mcp&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22windows-mcp%22%2C%22serve%22%5D%7D>) (opens VS Code)

Or from a terminal:

```bash
code --add-mcp '{"name":"windows-mcp","type":"stdio","command":"uvx","args":["windows-mcp","serve"]}'
```

Or commit it to the repo in `.vscode/mcp.json`:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "windows-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "windows-mcp",
        "serve"
      ]
    }
  }
}
```

Needs uv (Python) on your computer.

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "windows-mcp": {
      "command": "uvx",
      "args": [
        "windows-mcp",
        "serve"
      ]
    }
  }
}
```

2. Refresh the MCP server list in Cascade.

Devin Desktop is the new name for Windsurf.

### Codex

```bash
codex mcp add windows-mcp -- uvx windows-mcp serve
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.windows-mcp]
command = "uvx"
args = ["windows-mcp", "serve"]
```

Needs uv (Python) on your computer.

### Gemini CLI

```bash
gemini mcp add windows-mcp uvx windows-mcp serve
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients that start local servers accept this shape:

```json
{
  "mcpServers": {
    "windows-mcp": {
      "command": "uvx",
      "args": [
        "windows-mcp",
        "serve"
      ]
    }
  }
}
```

Zed puts servers under `context_servers` in its settings, with the same `command`, `args` and `env` fields.

Needs uv (Python) on your computer.

## Details

- Server version: 1.0.1
- Last checked: 2026-10-03
- Listed: 2026-10-03
- Updated: 2026-10-03

---
Source: https://mcp.tc/i/windows-mcp (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
