关于 UIAutomationMcp
面向 Windows 桌面检查与自动化的 UI Automation 工具集,适用于需要查找界面元素、读取状态并执行操作的开发者。它提供 MCP 服务、CLI 和 VS Code 扩展,并支持 UIA 与 MSAA 信息读取。
主要功能
- 01检查桌面与焦点元素元数据
- 02按属性搜索 UI 元素
- 03遍历 UIA 树及其视图
- 04读取文本、选择和控件状态
- 05等待自动化事件
- 06执行焦点、选择及窗口操作
适用场景
- 01检查桌面应用中的控件结构
- 02按名称或自动化 ID 查找元素
- 03读取表格单元格和文本信息
- 04自动执行常见界面操作
MCP 相关
MCP 服务向 MCP 客户端暴露 Windows UI Automation 的检查、搜索、导航、事件等待和操作能力。CLI 与 VS Code 扩展提供相同的扩展功能。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
UIAutomationMcp
Windows UI Automation 工具包,提供三个一致的入口:
- CLI(
uiamcp) - MCP 服务(
UIAutomationMcp.McpServer) - VS Code 扩展(
uia-mcp)
安装
VS Code 扩展(推荐)——从 Marketplace 安装
trsdn.uia-mcp
(code --install-extension trsdn.uia-mcp),或
从最新版本安装
UIAutomationMcp-<version>.vsix。
独立运行;内含 MCP 服务、CLI 和两个 Agent 技能。
Claude Desktop——从最新版本下载 uia-mcp-<version>.mcpb 并双击。
npm——uia-mcp 随附捆绑了 .NET 运行时的 MCP 服务,
因此无需满足任何前置条件:
{
"mcpServers": {
"uia-mcp": { "command": "npx", "args": ["-y", "uia-mcp"] }
}
}
NuGet .NET 工具
dotnet tool install --global UIAutomationMcp.McpServer # MCP server -> uiamcp-server
dotnet tool install --global UIAutomationMcp.CLI # CLI -> uiamcp
独立 ZIP——UIAutomationMcp-MCP-Server-<version>-windows.zip 包含独立运行的 MCP 服务和 CLI;无需 .NET 运行时。
需要 Windows 和交互式桌面会话。UI Automation 无法在无头环境中运行。
渊源
本仓库属于更广泛的 MCP 自动化发展脉络,并有意保留对 Stefan Brönner 早期工作的致谢。
本仓库还保留了对 Excel MCP 的历史引用,将其作为该脉络中的相关姊妹项目,尽管本仓库本身专注于 Windows UI Automation。
功能
- 通过
Interop.UIAutomationClient启动类型化的 UI Automation 客户端 - 读取丰富的桌面根节点和焦点元素元数据,包括边界、运行时 ID 和支持的模式
- 根据原生窗口句柄和屏幕坐标解析元素
- 按名称、类名、自动化 ID、框架 ID、控件类型和进程 ID 搜索 UIA 树
- 从原始、控件或内容树视图枚举直接子元素
- 从原始、控件或内容树视图枚举后代元素
- 使用原始、控件和内容遍历器浏览 UIA 树
- 支持用于检查、搜索和浏览的构建缓存请求
- 读取文本、选择内容和键盘模式状态,包括插入符位置、批注片段(如拼写错误)以及内联元素所属的文档
- 等待焦点、自动化、属性变更和结构变更事件
- 执行常见操作,例如聚焦、调用、设置值、切换、展开/折叠、选择、更改窗口状态、移动/调整大小、滚动、更新范围值、切换视图、停靠、实现虚拟化项目以及执行 MSAA 默认操作
- 直接向容器查询尚未由虚拟化列表实例化的项目,因此无需滚动即可搜索 300 行列表中的第 250 行
- 报告拖放状态(
isGrabbed、放置效果、已抓取项目),以便观察正在进行的拖动,并将自动化事件解析为Drag_DragStart等易读名称 - 通过 LegacyIAccessible 桥接读取 MSAA 数据,因此即使未公开原生 UI Automation 提供程序的 Win32、MFC 和安装程序窗口,也能提供可用的名称、角色、状态和可执行的默认操作
- 将表格控件读取为包含行标题和列标题的单元格矩阵
- 通过 CLI 和 MCP 提供相同的扩展功能
- 将 CLI 和 MCP 服务打包在 VS Code 扩展中
仓库布局
src\UIAutomationMcp.ComInteropsrc\UIAutomationMcp.Servicesrc\UIAutomationMcp.CLIsrc\UIAutomationMcp.McpServersrc\UIAutomationMcp.Smokevscode-extensionmcpb— Claude Desktop 捆绑包源文件和构建脚本skills— 面向uia-cli和uia-mcp的 Agent 技能
构建和验证
dotnet 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
相关文档
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。