# UIAutomationMcp [Health: Active]

**Category:** 🖥️ OS Automation  
**Repository:** https://github.com/trsdn/mcp-server-uiautomation  
**GitHub Stars:** 4  
**npm Downloads (last month):** 243  
**Views:** 5  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/uiautomationmcp

## Description
Windows UI Automation MCP server for desktop inspection and element lookup. Windows only.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "uiautomationmcp": {
    "command": "npx",
    "args": ["-y","uia-mcp"]
  }
}
```

## Documentation

## 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.

_Full upstream README: https://allmcps.com/mcp/uiautomationmcp/readme_

