Windows MCP Server
MCP server and wincli CLI: agents drive Windows apps by control name through UI Automation instead of screen coordinates
- 129 ★ on the repository
- Last commit
Broad access
Why this level
- The agent controls the real Windows desktop, including every program with a signed-in session.
- Disabled MCP tools are not a sandbox and do not restrict CLI commands.
Install
- Works in
Manual install
dotnet publish .\src\Sbroenne.WindowsMcp.Cli\Sbroenne.WindowsMcp.Cli.csproj -c Release -r win-x64 --self-contained true -o .\artifacts\wincliBuilds the `wincli` CLI from source, use `win-arm64` instead of `win-x64` on Windows ARM64.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The agent controls the real Windows desktop, including every program with a signed-in session.
- Disabled MCP tools are not a sandbox and do not restrict CLI commands.
This is third-party code. Review the repository files before installing.
What it does
Windows MCP Server controls Windows applications through UI Automation: the agent finds a button or field by name and acts on it directly. It launches programs, arranges windows, fills forms, reads text and tables, and handles the standard Open and Save As dialogs. Screenshots, mouse and keyboard are available too, for drawings, games and programs without accessibility data. The `wincli` command line exposes the same capabilities to agents with terminal access. A repeated workflow is kept in a project file as a `steps` array.
Who it is for. People who hand routine work in Windows desktop programs to an agent: forms, tables and saving files in Office and browsers.
Good fit when
- A form in a desktop program with no API has to be filled with the same data every day.
- A table in a window needs a check for rows with empty values.
- Saving a file through the Save As dialog repeats in every workflow.
- Screenshots eat the token budget while only one window field has to be read.
Not a fit when
- Other signed-in sessions and tabs sit on the desktop and the agent must not touch them.
- The program runs as administrator and the agent has no such rights.
- A Mac or Linux machine is the target: the server is built for Windows 10 and 11.
- Windows runs with a non-English interface: the file-dialog helpers rely on English labels.
Example request
Open Notepad, type "Hello from Windows MCP" and save it as windows-mcp-demo.txt on my Desktop.MCP
- Transport
- stdio
- Authentication
- not required
Limitations
The server runs only on Windows 10 and 11 and controls the real desktop shared by every connected agent. UI Automation coverage varies by program: WinForms, WinUI 3, Electron, Edge and Chrome have integration tests, anything else comes without a guarantee. An agent without administrator rights cannot control a program running as administrator. Windows security prompts need a human. Disabling MCP tools is not a sandbox and does not restrict CLI commands.
How to disable. Remove the server from the client's MCP configuration or uninstall the VS Code extension. For the CLI, stop the `wincli` service and delete its folder.
FAQ
How do I install Windows MCP Server in Cursor or Claude Desktop?
Download the package for your processor from Releases, extract it and add the server executable to the MCP configuration. The runtime ships inside the package, so .NET need not be installed separately.
How does MCP differ from the wincli CLI?
The capabilities are the same. MCP suits an assistant that already uses MCP tools. `wincli` is for an agent with a terminal and needs no separate MCP connection.
What if a program does not expose its controls?
Screenshots, mouse, keyboard and text recognition remain for drawings, games and programs without accessibility data. They are built into the same tools.
How do I start safely?
Open a test document and give the agent a simple job, such as saving a file in Notepad. Keep hands off the mouse and keyboard while the agent works and keep action approval on in the client.
Which programs are tested?
Integration tests cover WinForms, WinUI 3, Electron, Edge and Chrome. For other programs coverage depends on the accessibility data they expose.
Discussion
No questions or reviews yet.
Related
MCP serversAn MCP server for driving Windows: the agent opens apps, clicks and types, reads window and UI state, and works with files and PowerShell
The agent moves the mouse, types, drives windows and captures PNG screenshots of a Windows desktop through AutoIt.
An MCP server for Windows: the agent moves the mouse, presses keys, manages windows and takes screenshots
An MCP server for macOS: the agent moves the mouse, types, manages windows and captures the screen when an app has no API
Clawd Cursor: desktop control through MCP
Clawd Cursor
An MCP server that lets an agent drive windows and apps: it reads the screen as structure and acts by element name
A Swift MCP server that lets an agent drive any macOS app: click, type and read the interface tree
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Windows MCP Server (this card) | no | not required | 129 | |
| Windows-MCP | no | not required | 11,150 | windows-mcp also controls Windows; Windows MCP Server builds on UI Automation and exposes the same command set through the wincli CLI. |
| dsh-computer-use-win | no | not required | 522 | dsh-computer-use-win is a desktop-control plugin for DeepSeek Harness; Windows MCP Server connects to any MCP client and to agents with a terminal. |
README in short
The repository holds a .NET MCP server, a VS Code extension and the `wincli` CLI. The README explains working through controls instead of screenshots, gives token measurements on real tasks and lists limitations and security settings.