Windows UI Automation MCP server for desktop inspection and element lookup. Windows only.
Runs on your machine from its package; the steps are below.
At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Published to NuGet as `UIAutomationMcp.McpServer` — run it with your .NET MCP host.
Run
npx -y uia-mcp
MCP client config
{
"mcpServers": {
"uiautomationmcp": {
"command": "npx",
"args": [
"-y",
"uia-mcp"
]
}
}
}Windows UI Automation toolkit with three aligned entry points:
uiamcp)UIAutomationMcp.McpServer)uia-mcp)VS Code extension (recommended) — install
trsdn.uia-mcp
from the Marketplace (code --install-extension trsdn.uia-mcp), or
install the UIAutomationMcp-<version>.vsix from the
latest release.
Self-contained; bundles the MCP server, the CLI, and both agent skills.
Claude Desktop — download uia-mcp-<version>.mcpb from the latest release and
double-click it.
npm — uia-mcp ships the MCP server with
the .NET runtime bundled, so it needs no prerequisites:
{
"mcpServers": {
"uia-mcp": { "command": "npx", "args": ["-y", "uia-mcp"] }
}
}
NuGet .NET tools
dotnet tool install --global UIAutomationMcp.McpServer # MCP server -> uiamcp-server
dotnet tool install --global UIAutomationMcp.CLI # CLI -> uiamcp
Standalone ZIP — UIAutomationMcp-MCP-Server-<version>-windows.zip contains the
self-contained MCP server and CLI; no .NET runtime required.
Requires Windows and an interactive desktop session. UI Automation cannot run headless.
This repository is part of the broader MCP automation lineage and intentionally keeps attribution to earlier work by Stefan Brönner.
It 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.
Interop.UIAutomationClientisGrabbed, drop effects, grabbed items) so an in-progress drag can be observed, and resolves automation events to readable names such as Drag_DragStartsrc\UIAutomationMcp.ComInteropsrc\UIAutomationMcp.Servicesrc\UIAutomationMcp.CLIsrc\UIAutomationMcp.McpServersrc\UIAutomationMcp.Smokevscode-extensionmcpb — Claude Desktop bundle sources and build scriptskills — agent skills for uia-cli and uia-mcpdotnet build .\UIAutomationMcp.sln -c Release
.\src\UIAutomationMcp.Smoke\bin\Release\net9.0-windows\UIAutomationMcp.Smoke.exe
.\src\UIAutomationMcp.CLI\bin\Release\net9.0-windows\uiamcp.exe inspect --root --cache
.\src\UIAutomationMcp.CLI\bin\Release\net9.0-windows\uiamcp.exe find --focused --scope children --max-results 10 --cache
.\src\UIAutomationMcp.CLI\bin\Release\net9.0-windows\uiamcp.exe children --focused --view raw --max-results 10
.\src\UIAutomationMcp.CLI\bin\Release\net9.0-windows\uiamcp.exe descendants --focused --view raw --max-results 25
.\src\UIAutomationMcp.CLI\bin\Release\net9.0-windows\uiamcp.exe wait-event --event-kind focus --timeout-ms 500
.\src\UIAutomationMcp.CLI\bin\Release\net9.0-windows\uiamcp.exe action focus --focused