Agent skill

Windows Automation

by sbroenne in sbroenne/mcp-windows

Guidance for reliable, token-efficient Windows automation through MCP.

MITAuto-check passedProductivity & Automation

Install Windows Automation

skills CLI
$ npx skills add sbroenne/mcp-windows --skill windows-automation -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install sbroenne/mcp-windows windows-automation --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/sbroenne/mcp-windows.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugin/skills/windows-automation .claude/skills/windows-automation && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
windows-automation
GitHub stars
108
Token cost
~1.5k tokens
SKILL.md length
805 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

Guidance for reliable, token-efficient Windows automation through MCP.

  • Works in 7 steps: Use window_management to find or… → Discover with ui_find or ui_snapshot;… → Use ui_read_table to extract a grid,… → …
  • Automating desktop apps
  • SKILL.md covers Context, Preferred workflow, Patterns and Anti-patterns
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Windows Automation is an agent skill from sbroenne/mcp-windows. Guidance for reliable, token-efficient Windows automation through MCP. Use when automating desktop apps, choosing UI Automation vs screenshots, or handling DPI and multi-monitor issues.

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Productivity & Automation, covering Desktop control. It works with Model Context Protocol, .NET and Windows. The repository describes itself as: Let AI agents control Windows applications. Click buttons, type text, toggle settings — all by name, not coordinates. Uses the Windows UI Automation API to find UI elements… The licence is MIT.

When your agent uses it

  • Automating desktop apps
  • Choosing UI Automation vs screenshots
  • Handling DPI and multi-monitor issues

Example prompts

  • “/windows-automation”

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. Use window_management to find or activate the target window.
  2. Discover with ui_find or ui_snapshot; pass the returned IDs to ui_read, ui_click, and ui_type.
  3. Use ui_read_table to extract a grid, table, or details-view list into structured rows + headers in one call instead of scraping cells with…
  4. Use file_save for supported Save / Save As dialogs and file_open for Open flows.
  5. Use clipboard (get/set/clear) for fast bulk text IO — pair it with copy/paste hotkeys.
  6. Use ui_batch to run a multi-step sequence in one call. Keep reusable steps in project files.
  7. Only fall back to screenshot_control, mouse_control, or keyboard_control when the UI Automation tree is missing or the target is a custom…

What it can do on your machine

Read from SKILL.md and the folder at commit 655b9fc. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Windows Automation loads about 1.5k tokens when it runs. Until then it costs about 51 tokens; SKILL.md has 805 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~51
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from sbroenne/mcp-windows at commit 655b9fc, republished under its MIT licence (© sbroenne). 805 words, ~1,482 tokens.

Download SKILL.mdSave it as .claude/skills/windows-automation/SKILL.md (or your agent's skills folder).
name
windows-automation
description
Guidance for reliable, token-efficient Windows automation through MCP. Use when automating desktop apps, choosing UI Automation vs screenshots, or handling DPI and multi-monitor issues.
domain
windows-automation
confidence
high
source
plugin

Context

Use this skill with a configured Windows MCP Server in any compatible host. Let Windows expose control names, state, and IDs instead of guessing from screenshots. The skill itself does not install or configure the server.

Preferred workflow

  1. Use window_management to find or activate the target window.
  2. Discover with ui_find or ui_snapshot; pass the returned IDs to ui_read, ui_click, and ui_type.
  3. Use ui_read_table to extract a grid, table, or details-view list into structured rows + headers in one call instead of scraping cells with repeated ui_read.
  4. Use file_save for supported Save / Save As dialogs and file_open for Open flows. After failure or confirmation_required, inspect the existing dialog and choose the next action explicitly. These helpers do not approve overwrites, dismiss errors, or retry dispatched actions.
  5. Use clipboard (get/set/clear) for fast bulk text IO — pair it with copy/paste hotkeys.
  6. Use ui_batch to run a multi-step sequence in one call. Keep reusable steps in project files.
  7. Only fall back to screenshot_control, mouse_control, or keyboard_control when the UI Automation tree is missing or the target is a custom canvas.

Patterns

Semantic-first automation
  • Discover using names, control types, and automation IDs; act using the returned opaque elementId.
  • Click, double-click, type, select, table reads, and state waits require IDs. Selection values still identify option text, while the ID identifies the containing control.
  • Selectors are only for discovery and appear/disappear waits. Removed action selectors are errors.
  • Read an element with its ID; omit the ID only for an explicit whole-window read. Element reads never widen to window OCR.
  • Stale IDs require rediscovery. IDs belong to one owner and never transfer between MCP instances or the CLI daemon.
  • Batch $prev requires one unambiguous immediately preceding result. Reusable batches should discover fresh controls on every run.
  • Each batch step requires its matching enabled tool (key: keyboard_control; mouse/polyline: mouse_control). Forbidden steps reject the whole batch before it starts, even with stopOnError=false. withSnapshot=true requires enabled ui_snapshot before any action. Never route around disabled tools.
  • Re-check the UI tree after dialogs, page changes, or tab switches.
  • Treat screenshots as discovery or fallback tools, not the primary control surface.
Token-efficient observations
  • For repeated checks, use ui_snapshot(mode='auto') on the first and later views. A default full view does not establish the remembered comparison.
  • Use mode='reset' to replace an older comparison. Scope to a known subtree when only that part of the window matters.
  • Use withSnapshot=true and snapshotMode='auto' on supported actions to combine action and observation. A full response is expected when a diff is unsafe or too large.
  • Prefer a table read or article read when that is the information needed; do not repeatedly request whole-window trees or images.
Outcome verification
  • Click success reports dispatch, not a verified application-specific outcome.
  • Read the result or use a bounded wait for the expected state.
  • Do not repeat a click just because its target disappeared, became disabled, or changed its label. It may already have completed.
Show full SKILL.md (318 more words)Show less
Screenshot fallback
  • Use screenshot_control when the app is a game, canvas, OpenGL surface, or other custom-drawn UI.
  • If you need coordinates, get them from the annotated screenshot output first.
  • Expect coordinate-based automation to be more fragile across DPI, layout, and monitor changes.
Multi-monitor and DPI
  • Use monitor-aware tools instead of assuming the primary display.
  • Negative coordinates are normal on virtual desktops with monitors positioned left or above the primary display.
  • Keep work window-relative when possible to avoid DPI and layout drift.
Browsers and signed-in sessions
  • Treat Edge and Chrome page content like any other semantic UI surface: start with window_management, then use ui_find, ui_click, ui_type, and ui_read against visible text or ARIA labels.
  • To read the readable content of a web page, call ui_read with format: "article": it returns the main article text only (navigation chrome, breadcrumbs, and "in this article" rails removed, inline link URLs stripped, headings/lists as markdown) — far more token-efficient than the raw document dump. Reading the live signed-in window this way also works for authenticated/internal pages an HTTP fetch cannot reach.
  • For authenticated or SSO-only sites, reuse an existing signed-in browser window/session first before launching the URL again.
  • Do not interpret a Chromium launcher helper exiting immediately as a failed launch until you check whether the existing browser session already opened or focused the target page.
  • Keep browser chrome (address bar, tabs, profile menus, extension flyouts) as best-effort; page content is the strong path.
Windows security boundaries
  • UAC prompts and elevated windows are on a secure boundary. Non-elevated automation cannot interact with them.
  • If a tool reports an elevation mismatch, re-run the MCP server at the same privilege level as the target app.

Anti-patterns

  • Do not start with screenshot clicks when a normal desktop app exposes accessible controls.
  • Do not save files with raw Ctrl+S if a Save As dialog might appear.
  • Do not assume coordinates are stable across machines, themes, or display scaling.

© sbroenne, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugin/skills/windows-automation of sbroenne/mcp-windows.

Open the folder on GitHubat commit 655b9fc

Compare with similar skills

Windows Automation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Windows Automation compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Windows Automation this skillsbroenne/mcp-windows108—~1.5kAutomated safety check: PassMIT
QA TesterJocysCom/FocusLogger213—~12kAutomated safety check: PassGPL-3.0
Windows QA EngineerCodeAlive-AI/ai-driven-development158—~1.4kAutomated safety check: PassMIT
Open Computer UseiFurySt/open-codex-computer-use2.4k—~1.5kAutomated safety check: PassMIT
Control Browserzai-org/ZCode7.6k—~4.6kAutomated safety check: PassApache-2.0
Linux Desktop Controlagent-sh/computer-use-linux669—~2.8kAutomated safety check: PassMIT

Similar skills

  • QA Tester

    JocysCom/FocusLogger

    Create and maintain automated tests in Microsoft-native/.NET projects with a minimal stack — MSTest runner, System.Windows.Automation for Windows desktop, Playwright for real browser smoke.

    213 GitHub stars~12k tokensUpdated 3 mo ago
    Testing & QAAuto-check passed
  • Windows QA Engineer

    CodeAlive-AI/ai-driven-development

    A skill your agent uses when testing Windows 11 desktop apps (WinForms/WPF/UWP) via UFO UIA/Win32 automation MCP.

    158 GitHub stars~1.4k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Open Computer Use

    iFurySt/open-codex-computer-use

    Platform-neutral guidance for using Open Computer Use, the open-source Computer Use MCP server and CLI for macOS, Linux, and Windows.

    2.4k GitHub stars~1.5k tokensUpdated 2 days ago
    Productivity & AutomationAuto-check passed
  • Control Browser

    zai-org/ZCode

    A skill your agent uses when opening, navigating, inspecting, testing, clicking, typing, filling, screenshotting, or verifying web pages and local HTTP targets (localhost, 127.0.0.1, ::1) inside…

    7.6k GitHub stars~4.6k tokensUpdated 10 days ago
    Productivity & AutomationAuto-check passed
  • Linux Desktop Control

    agent-sh/computer-use-linux

    Lets an agent observe and operate a local Linux desktop through the computer-use-linux MCP server or Pi tools: accessibility trees, screenshots, windows and input.

    669 GitHub stars~2.8k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Interceptor Browser

    Hacker-Valley-Media/Interceptor

    Drive a signed-in Chrome / Brave / Safari session via the interceptor CLI: open/read pages, click, type, inspect DOM/text/network, automate rich browser editors and scene graphs, capture…

    519 GitHub stars~4.8k tokensUpdated 6 days ago
    Productivity & AutomationAuto-check passed

More from sbroenne/mcp-windows

  • Code Review

    sbroenne/mcp-windows

    Review pull requests in mcp-windows for concrete bugs in MCP and CLI contracts, Windows UI automation, element identity, snapshots, bounded searches, and service lifetime.

    108 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Windows CLI

    sbroenne/mcp-windows

    Guidance for driving Windows desktop automation from the wincli command-line tool - the token-efficient entry point that mirrors the Windows MCP server.

    108 GitHub stars~1.8k tokensUpdated today
    Auto-check passed

Questions about Windows Automation

What does Windows Automation do?

Guidance for reliable, token-efficient Windows automation through MCP. Windows Automation is an agent skill from sbroenne/mcp-windows. Guidance for reliable, token-efficient Windows automation through MCP.

When should I use Windows Automation?

Windows Automation fits situations like: automating desktop apps; choosing UI Automation vs screenshots; handling DPI and multi-monitor issues.

How do I install Windows Automation in Claude Code?

Run `npx skills add sbroenne/mcp-windows --skill windows-automation -a claude-code`. Or copy the skill folder (plugin/skills/windows-automation in sbroenne/mcp-windows) into .claude/skills/windows-automation in your project. Claude Code loads it when a task matches its description.

How do I install Windows Automation in Codex?

Run `npx skills add sbroenne/mcp-windows --skill windows-automation -a codex`. Or copy the skill folder (plugin/skills/windows-automation in sbroenne/mcp-windows) into .agents/skills/windows-automation in your project. Codex loads it when a task matches its description.

Can I use Windows Automation in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sbroenne/mcp-windows --skill windows-automation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/windows-automation, .gemini/skills/windows-automation, .github/skills/windows-automation and .opencode/skills/windows-automation in your project.

What does Windows Automation need to run?

SKILL.md names no scripts, command-line tools or credentials: Windows Automation is instructions for the agent only.

Does Windows Automation access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Windows Automation safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Windows Automation use?

Windows Automation is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Windows Automation use?

About 1.5k tokens (SKILL.md is roughly 5.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Windows Automation?

Skills that share tags, products or a category with Windows Automation: QA Tester (JocysCom/FocusLogger, 213 stars), Windows QA Engineer (CodeAlive-AI/ai-driven-development, 158 stars), Open Computer Use (iFurySt/open-codex-computer-use, 2.4k stars) and Control Browser (zai-org/ZCode, 7.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Windows Automation?

sbroenne (a GitHub user) maintains it in sbroenne/mcp-windows, which has 108 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 9, 2026.

Source: sbroenne/mcp-windows on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.