mcpField
M
mcp-server-macos-use

mcp-server-macos-use

本地服务
macos-use.dev生产力3554 周前更新

关于 mcp-server-macos-use

mcp-server-macos-use 是用 Swift 编写的 MCP 服务,通过无障碍 API 控制 macOS 应用程序。它基于 MacosUseSDK,通过 stdio 与 MCP 客户端通信,适合需要让 Agent 操作桌面应用的用户。

主要功能

  1. 01基于无障碍 API 操作 macOS 应用
  2. 02通过 PID 指定目标应用
  3. 03遍历无障碍树以获取界面状态
  4. 04支持点击、输入文本和按键操作
  5. 05可选的动画与操作后延迟设置

适用场景

  1. 01让 Agent 打开并操作本地 macOS 应用
  2. 02读取应用当前界面元素结构
  3. 03在 Claude Desktop 中自动执行桌面操作

MCP 相关

该项目是 MCP 服务,通过 stdio 接收 MCP 命令,并通过 CallTool 方法向客户端暴露 macos-use 系列工具。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

mcp-server-macos-use

官方网站:https://macos-use.dev/

用 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 公开以下工具:

  1. macos-use_open_application_and_traverse

    • **描述:**打开或激活指定应用,然后遍历其辅助功能树。
    • 参数:
      • identifier(String,必填):应用的名称、Bundle ID 或文件路径。
  2. macos-use_click_and_traverse

    • **描述:**在目标应用(由 PID 标识)的窗口内指定坐标处模拟鼠标点击,然后遍历其辅助功能树。
    • 参数:
      • pid(Number,必填):目标应用的进程 ID(PID)。
      • x(Number,必填):点击位置的 X 坐标(相对于窗口或屏幕,具体取决于 SDK 的行为)。
      • y(Number,必填):点击位置的 Y 坐标。
  3. macos-use_type_and_traverse

    • **描述:**在目标应用(由 PID 标识)中模拟输入文本,然后遍历其辅助功能树。
    • 参数:
      • pid(Number,必填):目标应用的进程 ID(PID)。
      • text(String,必填):要输入的文本。
  4. 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。
  5. 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 或联系我们

评论

支持 Markdown

第一次接触 MCP?

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

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