ClickLABSCO SUMMARY
Reading the accessibility tree instead of pixels is why any model can drive it — and where the limits are.
No vision model, no fine-tuning, and typical action-to-action latency of 0.2 to 0.5 secs. The same choice sets the boundaries the README publishes: selecting part of a paragraph is not supported because it comes from the a11y tree, Type-Tool writes a program as a whole file rather than typing into an IDE, and games are out. Everything below PowerShell, FileSystem and Registry is full system access — use --tools or --exclude-tools when exposing it.
What it is
A Windows automation server that works off the accessibility tree rather than screenshots and a fine-tuned vision model, so it runs with any LLM. It supports Windows 7 through 11, ships over stdio or HTTP, and carries a real security layer for the remote case.
What you get
- Input: clicking, typing with optional clearing, scrolling regions or windows, mouse movement and deterministic drags with an explicit start point, and keyboard shortcuts —
Click,Type,Scroll,Move,Shortcut - Two capture modes: a fast screenshot-first view with cursor position and window list that skips UI-tree extraction, and a full snapshot with interactive element ids, scrollable regions and browser DOM extraction —
Screenshot,Snapshot - Both capture tools take a
displaylist or aregionrectangle, so you can inspect one area instead of the whole desktop and pay fewer tokens for it - Waiting that is not a fixed sleep: poll until text, a window, an element or a focused element appears —
Wait,WaitFor - Applications and windows launched by Start Menu name or by executable path with separated argv, then resized, moved and switched —
App - System reach: PowerShell commands, the file system, the clipboard, the process list, toast notifications and the registry —
PowerShell,FileSystem,Clipboard,Process,Notification,Registry - Bulk helpers for multi-file selection and multi-field entry, plus whole-page web scraping and display layout with DPI and scale metadata —
MultiSelect,MultiEdit,Scrape,DisplayInventory - A DOM mode for browser automation that filters out browser chrome, supporting Chrome, Edge and Firefox
- Security for remote use: an auth key, an IP allowlist, CORS origins, TLS, OAuth 2.0 with PKCE, SSRF protection, and per-tool allow and deny lists
Requirements
Windows, Python 3.13+ and uv. Run with uvx windows-mcp serve over stdio, or add --transport sse or --transport streamable-http with a host and port for network access. windows-mcp install registers a per-user scheduled task that starts it now and at every login. Configuration can live in ~/.windows-mcp/config.toml instead of flags. English as the Windows display language is preferred; otherwise disable the App tool. Version 0.8.5. MIT licensed.
Setup effort
One command — uvx windows-mcp serve
USE CASES
Automating a desktop application that has no API
Snapshot the window to get element ids, then click and type against them rather than against guessed coordinates.
Keeping a long automation from breaking on timing
Replace fixed sleeps with a poll for the text, window or element you are waiting for, inside a single tool call.
Working on one region of a large or multi-monitor desktop
Pass a region rectangle or a display index so the capture covers only what matters — cheaper in tokens and easier for the model to read.
Exposing it over the network without opening the machine up
Serve over HTTP behind TLS with an auth key or OAuth, restrict the IP allowlist, and whitelist only the tools that job needs — the PowerShell and Registry tools are the ones to think hardest about.
Driving a web app cleanly
Use DOM mode so the snapshot contains page content and not browser UI, then interact with the page's own elements.
20 tools
Listed in project docs. Your client may show a different list.
TypeScrollMoveShortcutWaitWaitForDisplayInventoryScreenshotSnapshotAppPowerShellFileSystemScrapeMultiSelectMultiEditClipboardProcessNotificationRegistryBEFORE YOU INSTALL
What to know first
Tools you get
20 tools named in the project's documentation.
Requires
- uvx on PATH
- Python 3.13+
INSTALLATION
Connect your client
Server setup
uvx windows-mcp serveMCP Clients
Claude Code
claude mcp add --transport stdio windows-mcp -- uvx windows-mcp servePerplexity Desktop
{
"mcpServers": {
"windows-mcp": {
"command": "uvx",
"args": [
"windows-mcp",
"serve"
]
}
}
}Codex
[mcp_servers.windows-mcp]
command = "uvx"
args = ["windows-mcp", "serve"]Autohand Code
autohand mcp add windows-mcp uvx windows-mcp serve