mcpField
U
UIAutomationMcp

UIAutomationMcp

本地服务
github.com/trsdn开发工具48 周前更新

关于 UIAutomationMcp

面向 Windows 桌面检查与自动化的 UI Automation 工具集,适用于需要查找界面元素、读取状态并执行操作的开发者。它提供 MCP 服务、CLI 和 VS Code 扩展,并支持 UIA 与 MSAA 信息读取。

主要功能

  1. 01检查桌面与焦点元素元数据
  2. 02按属性搜索 UI 元素
  3. 03遍历 UIA 树及其视图
  4. 04读取文本、选择和控件状态
  5. 05等待自动化事件
  6. 06执行焦点、选择及窗口操作

适用场景

  1. 01检查桌面应用中的控件结构
  2. 02按名称或自动化 ID 查找元素
  3. 03读取表格单元格和文本信息
  4. 04自动执行常见界面操作

MCP 相关

MCP 服务向 MCP 客户端暴露 Windows UI Automation 的检查、搜索、导航、事件等待和操作能力。CLI 与 VS Code 扩展提供相同的扩展功能。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
nugetUIAutomationMcp.McpServer1.0.2
npmuia-mcp1.0.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

UIAutomationMcp

VS Code Marketplace License: MIT .NET Platform

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.ComInterop
  • src\UIAutomationMcp.Service
  • src\UIAutomationMcp.CLI
  • src\UIAutomationMcp.McpServer
  • src\UIAutomationMcp.Smoke
  • vscode-extension
  • mcpb — 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

相关文档

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。