{
  "markdown": "# UIAutomationMcp\n\n[![VS Code Marketplace](https://img.shields.io/visual-studio-marketplace/v/trsdn.uia-mcp?label=VS%20Code%20Marketplace)](https://marketplace.visualstudio.com/items?itemName=trsdn.uia-mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![.NET](https://img.shields.io/badge/.NET-9-blue.svg)](https://dotnet.microsoft.com/download/dotnet/9.0)\n[![Platform](https://img.shields.io/badge/platform-Windows-lightgrey.svg)](https://learn.microsoft.com/windows/win32/winauto/entry-uiauto-win32)\n\nWindows UI Automation toolkit with three aligned entry points:\n- CLI (`uiamcp`)\n- MCP server (`UIAutomationMcp.McpServer`)\n- VS Code extension (`uia-mcp`)\n\n## Install\n\n**VS Code extension** (recommended) — install\n[`trsdn.uia-mcp`](https://marketplace.visualstudio.com/items?itemName=trsdn.uia-mcp)\nfrom the Marketplace (`code --install-extension trsdn.uia-mcp`), or\ninstall the `UIAutomationMcp-<version>.vsix` from the\n[latest release](https://github.com/trsdn/mcp-server-uiautomation/releases/latest).\nSelf-contained; bundles the MCP server, the CLI, and both agent skills.\n\n**Claude Desktop** — download `uia-mcp-<version>.mcpb` from the latest release and\ndouble-click it.\n\n**npm** — [`uia-mcp`](https://www.npmjs.com/package/uia-mcp) ships the MCP server with\nthe .NET runtime bundled, so it needs no prerequisites:\n\n```json\n{\n  \"mcpServers\": {\n    \"uia-mcp\": { \"command\": \"npx\", \"args\": [\"-y\", \"uia-mcp\"] }\n  }\n}\n```\n\n**NuGet .NET tools**\n\n```powershell\ndotnet tool install --global UIAutomationMcp.McpServer   # MCP server -> uiamcp-server\ndotnet tool install --global UIAutomationMcp.CLI         # CLI        -> uiamcp\n```\n\n**Standalone ZIP** — `UIAutomationMcp-MCP-Server-<version>-windows.zip` contains the\nself-contained MCP server and CLI; no .NET runtime required.\n\nRequires Windows and an interactive desktop session. UI Automation cannot run headless.\n\n## Lineage\n\nThis repository is part of the broader MCP automation lineage and intentionally keeps attribution to earlier work by Stefan Brönner.\n\nIt also keeps the historical reference to Excel MCP as a related sibling project in that lineage, even though this repository itself is focused on Windows UI Automation.\n\n## What it does\n- boots a typed UI Automation client through `Interop.UIAutomationClient`\n- reads rich desktop-root and focused-element metadata, including bounds, runtime IDs, and supported patterns\n- resolves elements from native window handles and screen coordinates\n- searches UIA trees by name, class name, automation id, framework id, control type, and process id\n- enumerates immediate children from raw, control, or content tree views\n- enumerates descendants from raw, control, or content tree views\n- navigates the UIA tree with raw, control, and content walkers\n- supports build-cache requests for inspection, search, and navigation\n- reads text, selection, and key pattern states, including caret position, annotation runs such as spelling errors, and the containing document of an inline element\n- waits for focus, automation, property-changed, and structure-changed events\n- performs common actions such as focus, invoke, set-value, toggle, expand/collapse, selection, window state changes, move/resize, scroll, range-value updates, view switching, docking, realizing virtualized items, and MSAA default actions\n- finds items that a virtualizing list has not materialized yet by asking the container directly, so a search for the 250th row of a 300-row list works without scrolling\n- reports drag and drop state (`isGrabbed`, drop effects, grabbed items) so an in-progress drag can be observed, and resolves automation events to readable names such as `Drag_DragStart`\n- reads MSAA data through the LegacyIAccessible bridge, so Win32, MFC, and installer windows that expose no native UI Automation provider still report usable names, roles, states, and a runnable default action\n- reads tabular controls as a cell matrix with row and column headers\n- exposes the same expanded surface through CLI and MCP\n- packages the CLI and MCP server inside the VS Code extension\n\n## Repository layout\n- `src\\UIAutomationMcp.ComInterop`\n- `src\\UIAutomationMcp.Service`\n- `src\\UIAutomationMcp.CLI`\n- `src\\UIAutomationMcp.McpServer`\n- `src\\UIAutomationMcp.Smoke`\n- `vscode-extension`\n- `mcpb` — Claude Desktop bundle sources and build script\n- `skills` — agent skills for `uia-cli` and `uia-mcp`\n\n## Build and validate\n```powershell\ndotnet build .\\UIAutomationMcp.sln -c Release\n.\\src\\UIAutomationMcp.Smoke\\bin\\Release\\net9.0-windows\\UIAutomationMcp.Smoke.exe\n.\\src\\UIAutomationMcp.CLI\\bin\\Release\\net9.0-windows\\uiamcp.exe inspect --root --cache\n.\\src\\UIAutomationMcp.CLI\\bin\\Release\\net9.0-windows\\uiamcp.exe find --focused --scope children --max-results 10 --cache\n.\\src\\UIAutomationMcp.CLI\\bin\\Release\\net9.0-windows\\uiamcp.exe children --focused --view raw --max-results 10\n.\\src\\UIAutomationMcp.CLI\\bin\\Release\\net9.0-windows\\uiamcp.exe descendants --focused --view raw --max-results 25\n.\\src\\UIAutomationMcp.CLI\\bin\\Release\\net9.0-windows\\uiamcp.exe wait-event --event-kind focus --timeout-ms 500\n.\\src\\UIAutomationMcp.CLI\\bin\\Release\\net9.0-windows\\uiamcp.exe action focus --focused\n```\n\n## Related docs\n- [UI Automation COM Reference](docs/UIAUTOMATION-COM-REFERENCE.md)\n- [Installation Guide](docs/INSTALLATION.md)\n- [Development Workflow](docs/DEVELOPMENT.md)\n- [Contributing](docs/CONTRIBUTING.md)\n\n",
  "bytes": 5464,
  "sha": "160d7293f1e676034bf4a0090dd27871de6e13d36afa3cfeae676a3fb1fb4515",
  "repo_slug": "trsdn/mcp-server-uiautomation",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_trsdn_mcp_server_uiautomation_9569c75a/readme"
}