MCP Windows Desktop Automation

The agent moves the mouse, types, drives windows and captures PNG screenshots of a Windows desktop through AutoIt.

  • 119 ★ on the repository
  • Last commit
MCP server

Broad access

Why this level

  • The agent gets the mouse, keyboard, clipboard and process launch on a real desktop.
  • The `runAs` tool takes credentials and `shutdown` powers the machine off. There is no OS-level isolation.
All reasons and checks

mario-andreschak/mcp-windows-desktop-automation

Install

Manual install

npm ci && npm run build && node dist/index.js --transport=stdio

The README Run steps: install dependencies, build and start over stdio. No npm package is named, so install the repository or a release artifact.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The agent gets the mouse, keyboard, clipboard and process launch on a real desktop.
  • The `runAs` tool takes credentials and `shutdown` powers the machine off. There is no OS-level isolation.

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

What it does

The MCP server drives an interactive Windows x64 desktop through AutoIt. Version 2 keeps the 50 tools for mouse, keyboard, clipboard, windows, controls and processes, and adds seven prompts and real screenshots. The `takeScreenshot` tool captures the whole desktop, one window or a rectangular region and returns a PNG to the agent. The resources `screenshot://desktop` and `screenshot://window/{title}` serve the same frames. It starts over stdio by default; HTTP needs an owner token and a list of allowed directories.

Who it is for. Testers and developers who want an agent to click through classic Windows applications that have no API.

Good fit when

  • A legacy desktop program has no API and the agent must fill in a form there.
  • A daily routine means opening a window, entering data and submitting.
  • The agent waits for a window, activates it and only then types.
  • A screenshot of a screen region is needed so the agent can see the result.

Not a fit when

  • The task runs in a browser, where a browser MCP server fits better.
  • The machine runs Linux or macOS: native calls return a platform error.
  • Several people would share the server: one process serves one owner with a shared desktop.
  • A headless session, a session 0 service or Windows on ARM64.

Example request

Open Notepad, type the word "check", capture a screenshot of the window and close it without saving.

MCP

Transport
stdio, http
Authentication
not required

Environment variables

MCP_AUTH_TOKEN secret
Owner bearer token for HTTP mode, at least 32 characters.
MCP_FILE_ROOTS
JSON array of directories the server may read files from; required for HTTP.

Limitations

Native operations work only on Windows x64 in the interactive session of the logged-in user. ARM64, session 0 services, headless sessions and elevated windows are unsupported. On Linux, enumeration and the protocol work, while native calls return a platform error. Node.js 22 or newer is required. Wait timeouts are set in seconds from 1 to 25, each desktop request is capped at 30 seconds, and the queue holds at most 16 jobs. A `PrintWindow` frame depends on the application: protected, minimized and hardware-rendered windows can come back blank.

How to disable. Remove the server from the MCP client configuration and stop the `mcp-windows-desktop-automation` process. For HTTP mode, also remove `MCP_AUTH_TOKEN` and `MCP_FILE_ROOTS` from the environment.

FAQ

Does the server run on macOS or Linux?

Native control runs only on Windows x64. On Linux the protocol and enumeration start, while native calls return an explicit platform error. The documentation says nothing about macOS.

How do I enable HTTP mode?

Set `MCP_AUTH_TOKEN` of at least 32 characters and `MCP_FILE_ROOTS` as a JSON array of directories, then run `mcp-windows-desktop-automation --transport=streamable-http --port=3000`. The endpoint is `http://127.0.0.1:3000/mcp`.

Are screenshots saved to disk?

No, the PNG goes to the agent in the response and is never written to disk. A frame is capped at 32 million pixels and 8 MiB.

What changed in version 2?

The 50 AutoIt tools and seven prompts stayed. Real PNGs replaced the text-only screenshot placeholder, string and buffer sizes got limits, and file reads are tied to configured root directories.

Which tools does the server have?

Mouse (`mouseMove`, `mouseClick`), keyboard and clipboard (`send`, `clipGet`, `clipPut`), windows (`winActivate`, `winWait`), controls (`controlClick`, `controlSetText`), processes (`run`, `processClose`) and `takeScreenshot`.

What if a request hangs?

Every request is capped at 30 seconds. After a cancel, timeout or crash the native helper restarts with default options, and interrupted actions are never replayed.

Discussion

No questions or reviews yet.

MCP server and wincli CLI: agents drive Windows apps by control name through UI Automation instead of screen coordinates

MCP serverBroad access129Repository stars

An MCP server for Windows: the agent moves the mouse, presses keys, manages windows and takes screenshots

MCP serverBroad access334Repository stars

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 serverBroad access11.2KRepository stars

An MCP server for macOS: the agent moves the mouse, types, manages windows and captures the screen when an app has no API

MCP serverBroad access415Repository stars

An MCP server that lets an agent drive windows and apps: it reads the screen as structure and acts by element name

MCP serverBroad access406Repository stars
Official

An MCP server helps an agent build and test Python automation tasks for Windows applications and Android devices.

MCP serverBroad access827Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
MCP Windows Desktop Automation (this card)nonot required119
Windows MCP Servernonot required129drives windows by control names through UI Automation; this server works through AutoIt and screen pixels
Windows-MCPnonot required11,150reads window and interface state; this one has 50 AutoIt tools with limits and timeouts

README in short

One process serves one owner. A native helper is isolated from the MCP event loop and restarts after a cancel, timeout or crash, and interrupted mutations are never replayed.

README badge

Report a problem

Foxx AIMCP Windows Desktop Automation
Foxx AI

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