关于 mcp-server-macos-use
mcp-server-macos-use 是用 Swift 编写的 MCP 服务,通过无障碍 API 控制 macOS 应用程序。它基于 MacosUseSDK,通过 stdio 与 MCP 客户端通信,适合需要让 Agent 操作桌面应用的用户。
主要功能
- 01基于无障碍 API 操作 macOS 应用
- 02通过 PID 指定目标应用
- 03遍历无障碍树以获取界面状态
- 04支持点击、输入文本和按键操作
- 05可选的动画与操作后延迟设置
适用场景
- 01让 Agent 打开并操作本地 macOS 应用
- 02读取应用当前界面元素结构
- 03在 Claude Desktop 中自动执行桌面操作
MCP 相关
该项目是 MCP 服务,通过 stdio 接收 MCP 命令,并通过 CallTool 方法向客户端暴露 macos-use 系列工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-server-macos-use
用 Swift 编写的 Model Context Protocol(MCP)服务。它主要通过 MacosUseSDK 利用辅助功能 API 控制 macOS 应用。
你可以在 Claude Desktop 或其他兼容的 MCP 客户端中使用它。
该服务通过标准输入/输出(stdio)接收 MCP 命令,并公开多个用于与应用交互的工具。
https://github.com/user-attachments/assets/cd203171-bac6-4124-9a58-59947a25be07
https://github.com/user-attachments/assets/f274560a-559f-4140-b133-c0b5c500a02d
可用工具
该服务通过 MCP 方法 CallTool 公开以下工具:
-
macos-use_open_application_and_traverse- **描述:**打开或激活指定应用,然后遍历其辅助功能树。
- 参数:
identifier(String,必填):应用的名称、Bundle ID 或文件路径。
-
macos-use_click_and_traverse- **描述:**在目标应用(由 PID 标识)的窗口内指定坐标处模拟鼠标点击,然后遍历其辅助功能树。
- 参数:
pid(Number,必填):目标应用的进程 ID(PID)。x(Number,必填):点击位置的 X 坐标(相对于窗口或屏幕,具体取决于 SDK 的行为)。y(Number,必填):点击位置的 Y 坐标。
-
macos-use_type_and_traverse- **描述:**在目标应用(由 PID 标识)中模拟输入文本,然后遍历其辅助功能树。
- 参数:
pid(Number,必填):目标应用的进程 ID(PID)。text(String,必填):要输入的文本。
-
macos-use_press_key_and_traverse- **描述:**模拟按下指定键盘按键(例如 'Enter'、'Tab'、'a'、'B'),可选择同时按住修饰键;目标应用由 PID 指定。然后遍历其辅助功能树。
- 参数:
pid(Number,必填):目标应用的进程 ID(PID)。keyName(String,必填):按键名称(例如Return、Escape、ArrowUp、Delete、a、B)。未启用修饰键时,字母区分大小写。modifierFlags(Array,可选):按下按键时要按住的修饰键数组。有效值:CapsLock(或Caps)、Shift、Control(或Ctrl)、Option(或Opt、Alt)、Command(或Cmd)、Function(或Fn)、NumericPad(或Numpad)、Help。
-
macos-use_refresh_traversal- **描述:**仅遍历指定应用(由 PID 标识)的辅助功能树。适用于获取当前 UI 状态而不执行操作。
- 参数:
pid(Number,必填):要遍历的应用的进程 ID(PID)。
通用可选参数(适用于 CallTool)
调用任何工具时,都可以在 arguments 对象中传入以下参数,以覆盖 MacosUseSDK 的默认行为(请参阅代码中的 ActionOptions):
traverseBefore(Boolean,可选):在主要操作之前遍历辅助功能树。traverseAfter(Boolean,可选):在主要操作之后遍历辅助功能树(通常默认为 true)。showDiff(Boolean,可选):包含遍历结果之间的差异(如适用)。onlyVisibleElements(Boolean,可选):仅遍历可见元素。showAnimation(Boolean,可选):显示操作的视觉反馈动画。animationDuration(Number,可选):反馈动画的持续时间。delayAfterAction(Number,可选):执行操作后添加延迟。
依赖项
MacosUseSDK(假定为提供 macOS 控制功能的本地或外部 Swift 软件包)
构建和运行
# Example build command (adjust as needed, use 'debug' for development)
swift build -c debug # Or 'release' for production
# Running the server (it communicates via stdin/stdout)
./.build/debug/mcp-server-macos-use
与客户端集成(示例:Claude Desktop)
构建完成后,需要告知客户端应用在哪里可以找到服务可执行文件。例如,要配置 Claude Desktop,可以将以下内容添加到其配置中:
{
"mcpServers": {
"mcp-server-macos-use": {
"command": "/path/to/your/project/mcp-server-macos-use/.build/debug/mcp-server-macos-use"
}
}
}
请将 /path/to/your/project/ 替换为 mcp-server-macos-use 目录的实际绝对路径。
帮助
请联系 [email protected] Discord:m13v_
计划
我们很乐意根据你的需求定制服务,欢迎提交 issue 或联系我们
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。