UIAutomationMcp logo

UIAutomationMcp

Windows-only MCP server for inspecting, searching, navigating, and controlling desktop UI Automation elements.

Install UIAutomationMcp

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "uiautomationmcp": {
      "command": "npx",
      "args": [
        "-y",
        "uia-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

The install command didn't complete successfully in our automated test.

npx -y uia-mcp

npm ERR! code EBADPLATFORM npm ERR! notsup Unsupported platform for uia-mcp@1.0.2: wanted {"os":"win32","cpu":"x64,arm64"} (current: {"os":"linux","cpu":"x64"}) npm ERR! notsup Valid os: win32 npm ERR! notsup Actual os: linux npm ERR! notsup Valid cpu: x64,arm64 npm ERR! notsup Actual cpu: x64 npm ERR! A complete log of this run can be found in: /home/user/.npm/_logs/2026-10-22T11_57_55_879Z-debug-0.log

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 5d ago.

Overview

UIAutomationMcp MCP server exposes Windows UI Automation through typed MCP tools for desktop inspection, element lookup, event waiting, and common UI actions. It connects through the Windows UI Automation COM client and can resolve controls by handles, coordinates, properties, tree position, or focus. Use it when an agent needs to inspect or operate interactive Windows applications, including controls exposed through MSAA. It requires Windows and an interactive desktop session, so it cannot run headlessly.

Use cases

  • Inspect focused controls in Windows applications
  • Search desktop UI trees by automation properties
  • Wait for UI focus and structure changes
  • Operate virtualized lists and legacy Win32 controls
  • Read tables, text, selections, and accessibility states

Key features

  • Windows UI Automation inspection
  • Element search and tree navigation
  • Event waiting and change monitoring
  • Common control and window actions
  • Virtualized-item lookup
  • LegacyIAccessible and table support

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 2d ago

Recent health check succeeded.

8/8 checks healthy over the last 50d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 13d ago via OSV.dev · uia-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars4Stargazers on the source repository.
npm downloads243Package downloads in the last 30 days.
Last commit6d agoMost recent push to the default branch.
Install checkInconclusiveInstall command did not finish in our automated test.
Directory activity5 viewsConfig copies, upvotes, and views on AllMCPs.

How UIAutomationMcp works

What UIAutomationMcp MCP server does

UIAutomationMcp MCP server gives an MCP client access to the Windows UI Automation tree. It can inspect the desktop root and focused element, returning metadata such as bounds, runtime IDs, supported patterns, and other element properties. Elements can be resolved from native window handles or screen coordinates, then searched by name, class name, automation ID, framework ID, control type, or process ID.

The server also covers applications whose controls are exposed through the LegacyIAccessible bridge. This allows Win32, MFC, and installer windows to provide usable names, roles, states, and default actions even when they do not expose a native UI Automation provider. Tabular controls can be read as cell matrices with row and column headers.

How it works

The implementation boots a typed client through Interop.UIAutomationClient and traverses UI Automation trees using raw, control, or content views. It can list immediate children, enumerate descendants, and walk the tree from a selected element. Search and inspection requests can use a build cache, which is also available through the command-line interface.

UIAutomationMcp MCP server supports event waits for focus changes, automation events, property changes, and structure changes. It can report drag-and-drop state, including whether an item is grabbed, drop effects, and grabbed items, and can turn automation event identifiers into readable names. Virtualized list items can be located through their container without first scrolling the item into view.

Text-related operations include reading text, selection state, key-pattern state, caret position, annotation runs such as spelling errors, and the containing document for an inline element.

Setup and configuration

The server runs on Windows and needs an interactive desktop session because Windows UI Automation cannot run headlessly. Several distribution options are provided:

  • Install the trsdn.uia-mcp VS Code extension, which bundles the MCP server, CLI, and agent skills.
  • Install the Claude Desktop .mcpb bundle from a release.
  • Run the npm package with npx -y uia-mcp in an MCP server configuration.
  • Install the .NET tool UIAutomationMcp.McpServer, whose command is uiamcp-server.
  • Use the standalone Windows ZIP, which includes the server and CLI without requiring a separate .NET runtime.

The project targets .NET 9. The repository also provides separate CLI and MCP server entry points, plus a VS Code extension package.

Tools and capabilities

UIAutomationMcp MCP server exposes capabilities for:

  • Inspecting the desktop root, focused element, handles, and screen coordinates.
  • Searching by UI Automation properties and process ID.
  • Listing children or descendants in raw, control, or content views.
  • Waiting for focus, property, automation, and structure events.
  • Reading text, selections, key states, caret data, annotations, and document context.
  • Performing focus, invoke, set-value, toggle, expand/collapse, selection, scrolling, range updates, and view changes.
  • Changing window state, moving or resizing windows, docking, realizing virtualized items, and invoking MSAA default actions.

The same expanded automation surface is available through the CLI and MCP server.

Limitations and notes

The server is Windows-only and depends on an interactive desktop. It is not suitable for headless automation. Its scope is Windows UI Automation rather than a general cross-platform application-control API. The repository retains attribution to earlier work in the MCP automation lineage, including a historical reference to Excel MCP, but this project itself focuses on Windows UI Automation.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about UIAutomationMcp

UIAutomationMcp is an MCP server that connects AI agents to Windows desktop controls through Microsoft UI Automation. Its main tools inspect focused and root elements, search and navigate UIA trees, wait for events, read text and patterns, and perform actions such as focus, invoke, set-value, selection, and window management.

Install it through the VS Code extension, Claude Desktop bundle, npm package, .NET tool, or standalone Windows ZIP. The npm configuration runs `npx -y uia-mcp`, while the .NET installation provides the `uiamcp-server` command.

No, UIAutomationMcp requires Windows. It uses the Windows UI Automation client and also requires an interactive desktop session, so it cannot run headlessly.

UIAutomationMcp can inspect, search, navigate, monitor, read, and act on Windows UI elements. Supported operations include tree traversal, event waits, text and selection reads, focus, invoke, set-value, toggling, scrolling, window changes, and MSAA default actions.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewUIAutomationMcp AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/uiautomationmcp?style=directory)](https://allmcps.com/mcp/uiautomationmcp)
HTML Embed
<a href="https://allmcps.com/mcp/uiautomationmcp"><img src="https://allmcps.com/api/badge/uiautomationmcp?style=directory" alt="UIAutomationMcp on AllMCPs" /></a>