使用说明
11年mcp
macOS辅助功能MCP服务器,通过模型上下文协议公开AXUIElement API。这允许LLM通过本机可访问性树检查任何正在运行的应用程序的UI并与之交互。
也适用于iOS模拟器——模拟器将iOS可访问性元素桥接到其macOS AX树中,因此您可以检查iOS应用程序并与之交互。
需求
- macOS 13+
- Swift 6工具链
- 在“系统设置”>“隐私与安全”>“辅助功能”中授予的辅助功能权限
构建
swift build
二进制文件位于 .build/debug/a11y-mcp.
使用Claude代码
claude mcp add a11y /path/to/a11y-mcp/.build/debug/a11y-mcp
工具
检查
| 工具 | 目的 |
|---|---|
check_accessibility_permission |
检查进程是否具有AX信任 |
list_applications |
列出带有PID的正在运行的应用程序 |
get_accessibility_tree |
从给定的根转储元素树 |
get_element_attributes |
获取单个元素的所有属性 |
find_elements |
按角色、头衔、标签或标识符搜索 |
get_focused_element |
获得系统范围内的焦点元素 |
行动
| 工具 | 目的 |
|---|---|
perform_action |
按下按钮、升起车窗、增加滑块 |
set_attribute_value |
设置文本字段值、焦点、位置、大小 |
元素寻址
AXUIElement引用不能跨工具调用序列化。相反,元素由角色注释路径寻址:
pid:1234 — app root
pid:1234/0:AXWindow — first child (must be AXWindow)
pid:1234/0:AXWindow/3:AXGroup/1:AXButton — nested element
子索引导航;角色验证。如果角色不匹配(因为UI发生了变化),服务器将返回一个描述不匹配的错误,提示重新查询。
典型工作流程
check_accessibility_permission--确认AX信任list_applications--查找目标应用程序的PIDget_accessibility_tree随着pid:<PID>--查看UI结构find_elements--定位特定的按钮、文本字段等。perform_action/set_attribute_value--与元素交互
项目结构
Sources/
AXWrapper/ # Library: AXUIElement wrappers, no MCP dependency
a11y-mcp/ # Executable: MCP server, tool handlers
Tools/ # One file per tool