[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-72085":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":32,"readmeContent":33,"aiSummary":34,"trendingCount":16,"starSnapshotCount":16,"syncStatus":35,"lastSyncTime":36,"discoverSource":37},72085,"Windows-MCP","CursorTouch\u002FWindows-MCP","CursorTouch","MCP Server for Computer Use in Windows","",null,"Python",5932,747,41,3,0,50,108,397,150,39.62,"MIT License",false,"main",[26,27,28,29,30,31],"ai","desktop","mcp","tools","windows","windows-automation","2026-06-12 02:02:58","[![MseeP.ai Security Assessment Badge](https:\u002F\u002Fmseep.net\u002Fpr\u002Fcursortouch-windows-mcp-badge.png)](https:\u002F\u002Fmseep.ai\u002Fapp\u002Fcursortouch-windows-mcp)\n\n\u003Cdiv align=\"center\">\n  \u003Ch1>🪟 Windows-MCP\u003C\u002Fh1>\n\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCursorTouch\u002FWindows-MCP\u002Fblob\u002Fmain\u002FLICENSE\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-green\" alt=\"License\">\n  \u003C\u002Fa>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.13%2B-blue\" alt=\"Python\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-Windows%207–11-blue\" alt=\"Platform: Windows 7 to 11\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002FCursorTouch\u002FWindows-MCP\" alt=\"Last Commit\">\n  \u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Fx.com\u002FCursorTouch\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ffollow-%40CursorTouch-1DA1F2?logo=twitter&style=flat\" alt=\"Follow on Twitter\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.com\u002Finvite\u002FAue9Yj2VzS\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FJoin%20on-Discord-5865F2?logo=discord&logoColor=white&style=flat\" alt=\"Join us on Discord\">\n  \u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\n**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.\n\nmcp-name: io.github.CursorTouch\u002FWindows-MCP\n\n## Updates\n- Windows-MCP reached `2M+ Users` in [Claude Desktop Extensiosn](https:\u002F\u002Fclaude.ai\u002Fdirectory). \n- Try out [🪟Windows-Use](https:\u002F\u002Fpypi.org\u002Fproject\u002Fwindows-use\u002F), an agent built using Windows-MCP.\n- Windows-MCP is now available on [PyPI](https:\u002F\u002Fpypi.org\u002Fproject\u002Fwindows-mcp\u002F) (thus supports `uvx windows-mcp`)\n- Windows-MCP is added to [MCP Registry](https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fregistry)\n\n### Supported Operating Systems\n\n- Windows 7\n- Windows 8, 8.1\n- Windows 10\n- Windows 11  \n\n## 🎥 Demos\n\n\u003Chttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fd0e7ed1d-6189-4de6-838a-5ef8e1cad54e>\n\n\u003Chttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fd2b372dc-8d00-4d71-9677-4c64f5987485>\n\n## ✨ Key Features\n\n- **Seamless Windows Integration**  \n  Interacts natively with Windows UI elements, opens apps, controls windows, simulates user input, and more.\n\n- **Use Any LLM (Vision Optional)**\n   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.\n\n- **Rich Toolset for UI Automation**  \n  Includes tools for basic keyboard, mouse operation and capturing window\u002FUI state.\n\n- **Lightweight & Open-Source**  \n  Minimal dependencies and easy setup with full source code available under MIT license.\n\n- **Customizable & Extendable**  \n  Easily adapt or extend tools to suit your unique automation or AI integration needs.\n\n- **Real-Time Interaction**  \n  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.\n\n- **DOM Mode for Browser Automation**  \n  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.\n\n## 🛠️Installation\n\n**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.\n\n### Prerequisites\n\n- Python 3.13+\n- UV (Package Manager) from Astra, install with `pip install uv` or `curl -LsSf https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh | sh`\n- `English` as the default language in Windows preferred else disable the `App-Tool` in the MCP Server for Windows with other languages.\n\n### Run at Login\n\nRun the server directly when needed:\n\n```shell\nuvx windows-mcp\nuvx windows-mcp --transport sse --host localhost --port 8000\nuvx windows-mcp --transport streamable-http --host localhost --port 8000\n```\n\nInstall it as a background task that starts now and at every login:\n\n```shell\nwindows-mcp install\n\n# Or choose the HTTP transport and bind address explicitly\nwindows-mcp install --transport sse --host 127.0.0.1 --port 8000\n```\n\nThis creates a per-user Scheduled Task named `windows-mcp-server` and a wrapper script at\n`~\u002F.windows-mcp\u002Fstart-server.cmd`. Use `windows-mcp uninstall` to remove it. Logs are written\nto `~\u002F.windows-mcp\u002Fserver.log` and `~\u002F.windows-mcp\u002Fserver.error.log`.\n\n\u003Cdetails>\n  \u003Csummary>Install in Claude Desktop\u003C\u002Fsummary>\n\n  1. Install [Claude Desktop](https:\u002F\u002Fclaude.ai\u002Fdownload) and\n\n```shell\nnpm install -g @anthropic-ai\u002Fmcpb\n```\n\n\n  2. Configure the extension:\n\n  **Option A: Install from PyPI (Recommended)**\n  \n  Use `uvx` to run the latest version directly from PyPI.\n\n  Add this to your `claude_desktop_config.json`:\n  ```json\n  {\n    \"mcpServers\": {\n      \"windows-mcp\": {\n        \"command\": \"uvx\",\n        \"args\": [\n          \"windows-mcp\"\n        ]\n      }\n    }\n  }\n  ```\n\n  **Option B: Install from Source**\n\n  1. Clone the repository:\n  ```shell\n  git clone https:\u002F\u002Fgithub.com\u002FCursorTouch\u002FWindows-MCP.git\n  cd Windows-MCP\n  ```\n\n  2. Add this to your `claude_desktop_config.json`:\n  ```json\n  {\n    \"mcpServers\": {\n      \"windows-mcp\": {\n        \"command\": \"uv\",\n        \"args\": [\n          \"--directory\",\n          \"\u003Cpath to the windows-mcp directory>\",\n          \"run\",\n          \"windows-mcp\"\n        ]\n      }\n    }\n  }\n  ```\n\n\n\n  3. Open Claude Desktop and enjoy! 🥳\n\n\n  5. Enjoy 🥳.\n\n  **Claude Desktop MSIX (Windows Store)**\n\n  The MSIX-packaged Claude Desktop (Microsoft Store version) virtualizes `%APPDATA%`. This causes two main issues:\n  1. The config file is located at: `%LOCALAPPDATA%\\Packages\\Claude_pzs8sxrjxfjjc\\LocalCache\\Roaming\\Claude\\claude_desktop_config.json` (not `%APPDATA%\\Claude\\`).\n  2. Automatic installation from the \"Claude Directory\" will fail because the `${__dirname}` variable resolves to the incorrect (non-virtualized) path.\n\n  **To configure Windows-MCP on the Windows Store version of Claude:**\n  \n  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`).\n\n  **Option A: Using pre-installed executable**\n  1. In a terminal, run: `uv tool install windows-mcp`\n  2. Use the generated executable in your config:\n  ```json\n  {\n    \"mcpServers\": {\n      \"windows-mcp\": {\n        \"command\": \"C:\\\\Users\\\\\u003Cuser>\\\\.local\\\\bin\\\\windows-mcp.exe\",\n        \"args\": []\n      }\n    }\n  }\n  ```\n\n  **Option B: Using uvx**\n  ```json\n  {\n    \"mcpServers\": {\n      \"windows-mcp\": {\n        \"command\": \"C:\\\\Users\\\\\u003Cuser>\\\\.local\\\\bin\\\\uvx.exe\",\n        \"args\": [\"windows-mcp\"]\n      }\n    }\n  }\n  ```\n\n  **Option C: Install from Source**\n  ```json\n  {\n    \"mcpServers\": {\n      \"windows-mcp\": {\n        \"command\": \"C:\\\\Users\\\\\u003Cuser>\\\\.local\\\\bin\\\\uv.exe\",\n        \"args\": [\n          \"--directory\",\n          \"C:\\\\path\\\\to\\\\Windows-MCP\",\n          \"run\",\n          \"windows-mcp\"\n        ]\n      }\n    }\n  }\n  ```\n\n  Replace `\u003Cuser>` 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.\n\n  For additional Claude Desktop integration troubleshooting, see the [MCP documentation](https:\u002F\u002Fmodelcontextprotocol.io\u002Fquickstart\u002Fserver#claude-for-desktop-integration-issues).\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Install in Perplexity Desktop\u003C\u002Fsummary>\n\n  1. Install [Perplexity Desktop](https:\u002F\u002Fapps.microsoft.com\u002Fdetail\u002Fxp8jnqfbqh6pvf):\n\n  2. Clone the repository.\n\n```shell\ngit clone https:\u002F\u002Fgithub.com\u002FCursorTouch\u002FWindows-MCP.git\n\ncd Windows-MCP\n```\n  \n  3. Open Perplexity Desktop:\n\nGo to `Settings->Connectors->Add Connector->Advanced`\n\n  4. Enter the name as `Windows-MCP`, then paste the following JSON in the text area.\n\n\n  **Option A: Install from PyPI (Recommended)**\n\n  ```json\n  {\n    \"command\": \"uvx\",\n    \"args\": [\n      \"windows-mcp\"\n    ]\n  }\n  ```\n\n  **Option B: Install from Source**\n\n  ```json\n  {\n    \"command\": \"uv\",\n    \"args\": [\n      \"--directory\",\n      \"\u003Cpath to the windows-mcp directory>\",\n      \"run\",\n      \"windows-mcp\"\n    ]\n  }\n  ```\n\n\n5. Click `Save` and Enjoy 🥳.\n\nFor additional Claude Desktop integration troubleshooting, see the [Perplexity MCP Support](https:\u002F\u002Fwww.perplexity.ai\u002Fhelp-center\u002Fen\u002Farticles\u002F11502712-local-and-remote-mcps-for-perplexity). The documentation includes helpful tips for checking logs and resolving common issues.\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary> Install in Gemini CLI\u003C\u002Fsummary>\n\n  1. Install Gemini CLI:\n\n```shell\nnpm install -g @google\u002Fgemini-cli\n```\n\n\n  2. Configure the server in `%USERPROFILE%\u002F.gemini\u002Fsettings.json`:\n\n\n  3. Navigate to `%USERPROFILE%\u002F.gemini` in File Explorer and open `settings.json`.\n\n  4. Add the `windows-mcp` config in the `settings.json` and save it.\n\n```json\n{\n  \"theme\": \"Default\",\n  ...\n  \"mcpServers\": {\n    \"windows-mcp\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"windows-mcp\"\n      ]\n    }\n  }\n}\n```\n*Note: To run from source, replace the command with `uv` and args with `[\"--directory\", \"\u003Cpath>\", \"run\", \"windows-mcp\"]`.*\n\n\n  5. Rerun Gemini CLI in terminal. Enjoy 🥳\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Install in Qwen Code\u003C\u002Fsummary>\n  1. Install Qwen Code:\n\n```shell\nnpm install -g @qwen-code\u002Fqwen-code@latest\n```\n\n   2. Configure the server in `%USERPROFILE%\u002F.qwen\u002Fsettings.json`:\n\n\n  3. Navigate to `%USERPROFILE%\u002F.qwen\u002Fsettings.json`.\n\n  4. Add the `windows-mcp` config in the `settings.json` and save it.\n\n```json\n{\n  \"mcpServers\": {\n    \"windows-mcp\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"windows-mcp\"\n      ]\n    }\n  }\n}\n```\n*Note: To run from source, replace the command with `uv` and args with `[\"--directory\", \"\u003Cpath>\", \"run\", \"windows-mcp\"]`.*\n\n\n  5. Rerun Qwen Code in terminal. Enjoy 🥳\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Install in Codex CLI\u003C\u002Fsummary>\n  1. Install Codex CLI:\n\n```shell\nnpm install -g @openai\u002Fcodex\n```\n\n  2. Configure the server in `%USERPROFILE%\u002F.codex\u002Fconfig.toml`:\n\n  3. Navigate to `%USERPROFILE%\u002F.codex\u002Fconfig.toml`.\n\n  4. Add the `windows-mcp` config in the `config.toml` and save it.\n\n```toml\n[mcp_servers.windows-mcp]\ncommand=\"uvx\"\nargs=[\n  \"windows-mcp\"\n]\n```\n*Note: To run from source, replace the command with `uv` and args with `[\"--directory\", \"\u003Cpath>\", \"run\", \"windows-mcp\"]`.*\n\n\n  5. Rerun Codex CLI in terminal. Enjoy 🥳\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Install in Claude Code\u003C\u002Fsummary>\n\n  1. Install [Claude Code](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code\u002Foverview):\n\n```shell\nnpm install -g @anthropic-ai\u002Fclaude-code\n```\n\n  2. Configure the server:\n\n  **Option A: Install from PyPI (Recommended)**\n\n  Use `uvx` to run the latest version directly from PyPI.\n\n  ```shell\n  claude mcp add --transport stdio windows-mcp -- uvx windows-mcp\n  ```\n\n  **Option B: Install from Source**\n\n  1. Clone the repository:\n  ```shell\n  git clone https:\u002F\u002Fgithub.com\u002FCursorTouch\u002FWindows-MCP.git\n  cd Windows-MCP\n  ```\n\n  2. Run the following command in your terminal:\n  ```shell\n  claude mcp add --transport stdio windows-mcp -- uv --directory \"\u003Cpath>\" run windows-mcp\n  ```\n\n  *Note: To make the server available across all projects, add `--scope user` to the command.*\n\n  3. Rerun Claude Code in terminal. Enjoy 🥳\n\n  **Note:** On Windows, if you encounter \"Connection closed\" errors, use the full path to `uvx.exe`:\n\n  ```shell\n  claude mcp add --transport stdio windows-mcp -- C:\\Users\\\u003Cuser>\\.local\\bin\\uvx.exe windows-mcp\n  ```\n\n  To verify the server is registered, run `claude mcp list`. Inside Claude Code, use `\u002Fmcp` to check server status.\n\n  **WSL (Windows Subsystem for Linux)**\n\n  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:\n\n  1. Install `uv` on **Windows** (from a PowerShell terminal):\n  ```powershell\n  irm https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.ps1 | iex\n  ```\n\n  2. From your **WSL terminal**, register the server:\n  ```shell\n  claude mcp add windows-mcp --transport stdio -s user -- powershell.exe -Command \"C:\\Users\\\u003Cuser>\\.local\\bin\\uvx.exe windows-mcp\"\n  ```\n\n  Replace `\u003Cuser>` with your Windows username. The `-s user` flag makes the server available across all projects.\n\n  3. Restart Claude Code and verify with `\u002Fmcp`.\n\u003C\u002Fdetails>\n\n---\n\n## 🖥️ Running Windows-MCP\n\nWindows-MCP runs directly on your Windows machine and exposes its tools to the connected MCP client.\n\n```shell\n# Runs with stdio transport (default)\nuvx windows-mcp\n\n# Or with SSE\u002FStreamable HTTP for network access\nuvx windows-mcp --transport sse --host localhost --port 8000\nuvx windows-mcp --transport streamable-http --host localhost --port 8000\n```\n\nOptional environment variables can be set to customize behavior — see [Environment Variables](#-environment-variables) below.\n\n### Security for Remote Access\n\nFor network access, enable authentication and TLS:\n\n```shell\nwindows-mcp --transport sse --host 0.0.0.0 \\\n  --auth-key \"your_secret_token\" \\\n  --ip-allowlist \"203.0.113.0\u002F24\" \\\n  --ssl-certfile cert.pem --ssl-keyfile key.pem\n```\n\nSee [🔐 Security & Access Control](#-security--access-control) for all options.\n\n### Transport Options\n\n| Transport | Flag | Use Case |\n|---|---|---|\n| `stdio` (default) | `--transport stdio` | Direct connection from MCP clients like Claude Desktop, Cursor, etc. |\n| `sse` | `--transport sse --host HOST --port PORT` | Network-accessible via Server-Sent Events |\n| `streamable-http` | `--transport streamable-http --host HOST --port PORT` | Network-accessible via HTTP streaming (recommended for production) |\n\n---\n\n## 🔐 Security & Access Control\n\n### Authentication\n```shell\nwindows-mcp --transport sse --host 0.0.0.0 --auth-key \"your_token\"\n```\nRequires `Authorization: Bearer your_token` header on all requests.\n\n### IP Allowlist\n```shell\nwindows-mcp --auth-key \"token\" --ip-allowlist \"203.0.113.0\u002F24,198.51.100.5\"\n```\nRestricts connections to specified CIDR ranges. Blocks private\u002Floopback IPs by default.\n\n### CORS Origins\n\nBy default, **no CORS headers are emitted**. Browsers block cross-origin requests via their own Same-Origin Policy, which means arbitrary websites cannot reach the MCP control plane even if the server is on `localhost`. Host-header validation (DNS rebinding protection) is also applied automatically based on the bind address.\n\nIf you need a browser-based MCP client to reach the server, opt in with an explicit origin allowlist:\n\n```shell\nwindows-mcp --cors-origins \"https:\u002F\u002Fmy-client.example.com,https:\u002F\u002Fother.example.com\"\n```\n\nOnly the listed origins receive `Access-Control-Allow-Origin` headers; all other cross-origin requests are rejected by the browser. The equivalent environment variable is `WINDOWS_MCP_CORS_ORIGINS`.\n\n### Tool Selection\nAll tools are enabled by default. Use `--tools` to whitelist specific tools, or `--exclude-tools` to block specific ones.\n\n```shell\nwindows-mcp --tools \"Screenshot,Click,Snapshot\"   # Enable only these tools\nwindows-mcp --exclude-tools \"PowerShell,Registry\" # Disable specific tools\n```\n\n### TLS\u002FHTTPS\n```shell\nopenssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes\n\nwindows-mcp --ssl-certfile cert.pem --ssl-keyfile key.pem\n```\n\n### OAuth 2.0 + PKCE\n\nFor MCP clients that use OAuth (e.g. Claude Desktop) instead of a static API key:\n\n```shell\nwindows-mcp --transport streamable-http --host 0.0.0.0 \\\n  --ssl-certfile ~\u002F.windows-mcp\u002Fcert.pem \\\n  --ssl-keyfile  ~\u002F.windows-mcp\u002Fkey.pem \\\n  --oauth-client-id my-client \\\n  --oauth-client-secret my-secret\n```\n\n**Claude Desktop config:**\n```json\n{\n  \"mcpServers\": {\n    \"windows-mcp\": {\n      \"type\": \"http\",\n      \"url\": \"https:\u002F\u002F\u003Chost>:8000\u002Fmcp\u002F\",\n      \"oauth\": {\n        \"clientId\": \"my-client\",\n        \"clientSecret\": \"my-secret\"\n      }\n    }\n  }\n}\n```\n\nThe OAuth server exposes:\n- `GET \u002F.well-known\u002Foauth-authorization-server` — server metadata (RFC 8414)\n- `GET \u002Foauth\u002Fauthorize` — Authorization Code + PKCE (`S256` required)\n- `POST \u002Foauth\u002Ftoken` — token exchange (client secret required)\n- `POST \u002Foauth\u002Fregister` — disabled; clients must be pre-provisioned\n\nDynamic client registration is disabled. Redirect URIs must be loopback `http(s)` only.\nAuth key and OAuth can coexist — both are accepted as valid Bearer tokens.\n\n### Config File (`~\u002F.windows-mcp\u002Fconfig.toml`)\n\nInstead of passing flags every time, store your configuration in `~\u002F.windows-mcp\u002Fconfig.toml`. CLI flags always override config file values.\n\n**Search order:**\n1. `--config \u002Fpath\u002Fto\u002Fconfig.toml`\n2. `~\u002F.windows-mcp\u002Fconfig.toml`\n\n**stdio** — local only, no security needed:\n```toml\n[server]\ntransport = \"stdio\"\n```\n\n**SSE** — network access with auth and IP restriction:\n```toml\n[server]\ntransport = \"sse\"\nhost      = \"0.0.0.0\"\nport      = 8000\nauth_key  = \"your-secret-key\"\n\n[security]\nip_allowlist = [\"192.168.1.0\u002F24\"]\n```\n\n**Streamable HTTP** — with auth, TLS, and tool exclusions:\n```toml\n[server]\ntransport    = \"streamable-http\"\nhost         = \"0.0.0.0\"\nport         = 8000\nauth_key     = \"your-secret-key\"\nssl_certfile = \"cert.pem\"   # resolved relative to ~\u002F.windows-mcp\u002F\nssl_keyfile  = \"key.pem\"\n\n[security]\nip_allowlist        = [\"192.168.1.0\u002F24\"]\ncors_origins        = [\"https:\u002F\u002Fmy-client.example.com\"]   # optional — browser CORS opt-in\noauth_client_id     = \"my-client\"      # optional — enables OAuth 2.0 + PKCE\noauth_client_secret = \"my-secret\"\n\n[tools]\nexclude = [\"PowerShell\", \"Registry\"]   # disable specific tools\n```\n\nPlace cert and key files in the same directory:\n\n```\n~\u002F.windows-mcp\u002F\n├── config.toml\n├── cert.pem\n└── key.pem\n```\n\nGenerate a self-signed cert directly into that directory:\n\n```shell\nmkdir -p ~\u002F.windows-mcp\nopenssl req -x509 -newkey rsa:4096 \\\n  -keyout ~\u002F.windows-mcp\u002Fkey.pem \\\n  -out ~\u002F.windows-mcp\u002Fcert.pem \\\n  -days 365 -nodes\n```\n\n### SSRF Protection\n`Scrape` tool blocks: private IPs, loopback, link-local, credentials-in-URLs, non-HTTP schemes.\n\n---\n\n## ⚙️ Environment Variables\n\nAll variables are optional unless noted. Set them via the `env` key in `claude_desktop_config.json` (or your MCP client's equivalent config).\n\n### Screenshot & Snapshot\n\n| Variable | Default | Description |\n|---|---|---|\n| `WINDOWS_MCP_SCREENSHOT_SCALE` | `1.0` | Scale factor applied to screenshots before encoding. Accepts a float in the range `0.1`–`1.0`. Useful on high-resolution displays (1440p, 4K) where the default produces images that exceed Claude Desktop's 1 MB tool-result limit. Set to `0.5` to halve both dimensions (quarter the file size). |\n| `WINDOWS_MCP_SCREENSHOT_BACKEND` | `auto` | Screenshot capture backend. Accepted values: `auto` (tries dxcam → mss → pillow in order), `dxcam`, `mss`, `pillow`. Use `mss` or `pillow` if `dxcam` is unavailable or causes issues on your GPU. |\n| `WINDOWS_MCP_PROFILE_SNAPSHOT` | _(disabled)_ | Set to `1`, `true`, `yes`, or `on` to emit per-stage timing logs for Screenshot\u002FSnapshot calls. Useful for diagnosing slow captures. |\n| `WINDOWS_MCP_DISABLE_FLASH` | _(disabled)_ | Set to `1`, `true`, `yes`, or `on` to suppress the orange-red glowing border that briefly highlights the captured area after every screenshot. The flash is rendered on a transparent always-on-top window *after* capture so it never appears in the captured image. |\n\n### Security\n\n| Variable | Default | Description |\n|---|---|---|\n| `WINDOWS_MCP_AUTH_KEY` | _(none)_ | Bearer token required on all HTTP requests. Alternative to `--auth-key` CLI flag. |\n| `WINDOWS_MCP_IP_ALLOWLIST` | _(none)_ | Comma-separated list of allowed client IPs or CIDR ranges (e.g., `203.0.113.0\u002F24,198.51.100.5`). Alternative to `--ip-allowlist` CLI flag. |\n| `WINDOWS_MCP_CORS_ORIGINS` | _(none)_ | Comma-separated list of origins permitted to make cross-origin browser requests (e.g., `https:\u002F\u002Fmy-client.example.com`). No CORS headers are emitted when unset. Alternative to `--cors-origins` CLI flag. |\n| `WINDOWS_MCP_TOOLS` | _(all enabled)_ | Comma-separated explicit list of tools to enable (e.g., `Screenshot,Click,Snapshot`). Alternative to `--tools` CLI flag. |\n| `WINDOWS_MCP_EXCLUDE_TOOLS` | _(none)_ | Comma-separated list of tools to disable (e.g., `PowerShell,Registry`). Alternative to `--exclude-tools` CLI flag. |\n| `WINDOWS_MCP_SSL_CERTFILE` | _(none)_ | Path to TLS certificate file (.pem) for HTTPS. Must be provided with `WINDOWS_MCP_SSL_KEYFILE`. |\n| `WINDOWS_MCP_SSL_KEYFILE` | _(none)_ | Path to TLS private key file (.pem) for HTTPS. Must be provided with `WINDOWS_MCP_SSL_CERTFILE`. |\n\n### Telemetry\n\n| Variable | Default | Description |\n|---|---|---|\n| `ANONYMIZED_TELEMETRY` | `true` | Set to `false` to disable anonymous usage telemetry. No personal data, tool arguments, or outputs are ever collected regardless of this setting. |\n| `POSTHOG_API_KEY` | Project default | Override the PostHog project write key used for anonymous telemetry. Set to an empty string to skip PostHog client initialization. |\n| `POSTHOG_HOST` | `https:\u002F\u002Fus.i.posthog.com` | Override the PostHog host for anonymous telemetry, such as for a self-hosted PostHog deployment. |\n\n### Debug\n\n| Variable | Default | Description |\n|---|---|---|\n| `WINDOWS_MCP_DEBUG` | `false` | Set to `1`, `true`, `yes`, or `on` to enable debug mode, which sets the log level to DEBUG for verbose output. Also available as the `--debug` CLI flag. |\n\n**Example `claude_desktop_config.json`:**\n\nLocal (no security):\n```json\n{\n  \"mcpServers\": {\n    \"windows-mcp\": {\n      \"command\": \"uvx\",\n      \"args\": [\"windows-mcp\"],\n      \"env\": { \"WINDOWS_MCP_SCREENSHOT_SCALE\": \"0.5\" }\n    }\n  }\n}\n```\n\nRemote (with auth + IP allowlist + TLS):\n```json\n{\n  \"mcpServers\": {\n    \"windows-mcp\": {\n      \"command\": \"uvx\",\n      \"args\": [\"windows-mcp\", \"--transport\", \"sse\", \"--host\", \"0.0.0.0\"],\n      \"env\": {\n        \"WINDOWS_MCP_AUTH_KEY\": \"your_token\",\n        \"WINDOWS_MCP_IP_ALLOWLIST\": \"203.0.113.0\u002F24\",\n        \"WINDOWS_MCP_SSL_CERTFILE\": \"\u002Fpath\u002Fto\u002Fcert.pem\",\n        \"WINDOWS_MCP_SSL_KEYFILE\": \"\u002Fpath\u002Fto\u002Fkey.pem\"\n      }\n    }\n  }\n}\n```\n\n---\n\n## 🔨MCP Tools\n\nMCP Client can access the following tools to interact with Windows:\n\n- `Click`: Click on the screen at the given coordinates.\n- `Type`: Type text on an element (optionally clears existing text).\n- `Scroll`: Scroll vertically or horizontally on the window or specific regions.\n- `Move`: Move mouse pointer or drag (set drag=True) to coordinates.\n- `Shortcut`: Press keyboard shortcuts (`Ctrl+c`, `Alt+Tab`, etc).\n- `Wait`: Pause for a defined duration.\n- `Screenshot`: Fast screenshot-first desktop capture with cursor position, active\u002Fopen windows, and an image. Skips UI tree extraction for speed and should be the default first call when you mainly need visual context. Supports `display=[0]` or `display=[0,1]` to capture specific screens. After capture, a brief orange-red glowing border is drawn over the captured area as a visual confirmation (set `WINDOWS_MCP_DISABLE_FLASH=1` to disable).\n- `Snapshot`: Full desktop state capture for workflows that need interactive element ids, scrollable regions, or `use_dom=True` browser extraction. Supports `use_vision=True` for including screenshots and `display=[0]` or `display=[0,1]` for limiting all returned Snapshot information to specific screens.\n- `App`: To launch an application from the start menu, resize or move the window and switch between apps.\n- `Shell`: To execute PowerShell commands.\n- `Scrape`: To scrape the entire webpage for information.\n- `MultiSelect`: Select multiple items (files, folders, checkboxes) with optional Ctrl key. Uses bulk label-to-coordinate resolution when labels are provided.\n- `MultiEdit`: Enter text into multiple input fields at specified coordinates. Uses bulk label-to-coordinate resolution when labels are provided.\n- `Clipboard`: Read or set Windows clipboard content.\n- `Process`: List running processes or terminate them by PID or name.\n- `Notification`: Send a Windows toast notification with a title and message.\n- `Registry`: Read, write, delete, or list Windows Registry values and keys.\n\n\n## 🤝 Connect with Us\nStay updated and join our community:\n\n- 📢 Follow us on [X](https:\u002F\u002Fx.com\u002FCursorTouch) for the latest news and updates\n\n- 💬 Join our [Discord Community](https:\u002F\u002Fdiscord.com\u002Finvite\u002FAue9Yj2VzS)\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=CursorTouch\u002FWindows-MCP&type=Date)](https:\u002F\u002Fwww.star-history.com\u002F#CursorTouch\u002FWindows-MCP&Date)\n\n## 👥 Contributors\n\nThanks to all the amazing people who have contributed to Windows-MCP! 🎉\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCursorTouch\u002FWindows-MCP\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=CursorTouch\u002FWindows-MCP\" \u002F>\n\u003C\u002Fa>\n\nWe appreciate every contribution, whether it's code, documentation, bug reports, or feature suggestions. Want to contribute? Check out our [Contributing Guidelines](CONTRIBUTING)!\n\n## 🔒 Security\n\n**Important**: Windows-MCP operates with full system access and can perform irreversible operations. Please review our comprehensive security guidelines before deployment.\n\nFor detailed security information, including:\n- Tool-specific risk assessments\n- Deployment recommendations\n- Vulnerability reporting procedures\n- Compliance and auditing guidelines\n\nPlease read our [Security Policy](SECURITY.md).\n\n## 📊 Telemetry\n\nWindows-MCP collects usage data to help improve the MCP server. No personal information, no tool arguments, no outputs are tracked.\n\nTo disable telemetry, set `ANONYMIZED_TELEMETRY` to `false` in your MCP client configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"windows-mcp\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"windows-mcp\"\n      ],\n      \"env\": {\n        \"ANONYMIZED_TELEMETRY\": \"false\"\n      }\n    }\n  }\n}\n```\n\nSee the [Environment Variables](#-environment-variables) section for the full list of configurable options.\n\nFor detailed information on what data is collected and how it is handled, please refer to the [Telemetry and Data Privacy](SECURITY.md#telemetry-and-data-privacy) section in our Security Policy.\n\n## 📝 Limitations\n\n- Selecting specific sections of the text in a paragraph, as the MCP is relying on a11y tree. (⌛ Working on it.)\n- `Type-Tool` is meant for typing text, not programming in IDE because of it types program as a whole in a file. (⌛ Working on it.)\n- This MCP server can't be used to play video games 🎮.\n\n## 🪪 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgements\n\nWindows-MCP makes use of several excellent open-source projects that power its Windows automation features:\n\n- [UIAutomation](https:\u002F\u002Fgithub.com\u002Fyinkaisheng\u002FPython-UIAutomation-for-Windows)\n\nHuge thanks to the maintainers and contributors of these libraries for their outstanding work and open-source spirit.\n\n## 🤝Contributing\n\nContributions are welcome! Please see [CONTRIBUTING](CONTRIBUTING) for setup instructions and development guidelines.\n\nMade with ❤️ by [CursorTouch](https:\u002F\u002Fgithub.com\u002FCursorTouch)\n\n## Citation\n\n```bibtex\n@software{\n  author       = {CursorTouch},\n  title        = {Windows-MCP: Lightweight open-source project for integrating LLM agents with Windows},\n  year         = {2024},\n  publisher    = {GitHub},\n  url={https:\u002F\u002Fgithub.com\u002FCursorTouch\u002FWindows-MCP}\n}\n```\n","Windows-MCP 是一个轻量级的开源项目，旨在实现AI代理与Windows操作系统之间的无缝集成。其核心功能包括文件导航、应用程序控制、用户界面交互以及QA测试等，通过作为MCP服务器来桥接大型语言模型与Windows系统。该项目支持多种版本的Windows操作系统（从Windows 7到Windows 11），并具备丰富的UI自动化工具集，如基本的键盘鼠标操作和窗口\u002FUI状态捕获。Windows-MCP设计为与任何大型语言模型兼容，无需依赖特定的计算机视觉技术或微调模型，从而简化了配置过程。此外，由于其轻量级特性、开放源代码许可及可定制性，特别适合需要快速部署AI辅助桌面自动化的场景使用。",2,"2026-06-11 03:40:18","high_star"]