返回市场
macos使用mcp服务器

macos使用mcp服务器

作者:mediar-ai115 星标更新:2025-09-02

项目介绍

mcp-server-macos-use

使用Swift编写的Model Context Protocol (MCP)服务器。它通过利用可访问性API(主要通过MacosUseSDK)来控制macOS应用程序。

您可以在Claude Desktop或其他兼容的MCP客户端中使用它。

该服务器通过标准输入/输出(stdio)监听MCP命令,并提供多个工具与应用程序进行交互。

https://github.com/user-attachments/assets/b43622a3-3d20-4026-b02f-e9add06afe2b

可用工具

服务器通过CallTool MCP方法暴露以下工具:

  1. macos-use_open_application_and_traverse

    • 描述: 打开或激活指定的应用程序,然后遍历其可访问性树。
    • 参数:
      • identifier (字符串,必需):应用程序的名称、包ID或文件路径。
  2. macos-use_click_and_traverse

    • 描述: 在目标应用程序窗口(通过PID标识)中的特定坐标处模拟鼠标点击,然后遍历其可访问性树。
    • 参数:
      • pid (数字,必需):目标应用程序的进程ID (PID)。
      • x (数字,必需):点击的X坐标(相对于窗口/屏幕,取决于SDK的行为)。
      • y (数字,必需):点击的Y坐标。
  3. macos-use_type_and_traverse

    • 描述: 向目标应用程序(通过PID标识)模拟输入文本,然后遍历其可访问性树。
    • 参数:
      • pid (数字,必需):目标应用程序的进程ID (PID)。
      • text (字符串,必需):要输入的文本。
  4. macos-use_press_key_and_traverse

    • 描述: 模拟按下特定的键盘键(例如,“Enter”,“Tab”,“a”,“B”),可选地按住修饰键,针对由PID标识的应用程序,然后遍历其可访问性树。
    • 参数:
      • pid (数字,必需):目标应用程序的进程ID (PID)。
      • keyName (字符串,必需):键名(例如,ReturnEscapeArrowUpDeleteaB)。如果无修饰键激活,则字母区分大小写。
      • modifierFlags (字符串数组,可选):在按键时按下的修饰键数组。有效值:CapsLock(或Caps),ShiftControl(或Ctrl),Option(或OptAlt),Command(或Cmd),Function(或Fn),NumericPad(或Numpad),Help
  5. macos-use_refresh_traversal

    • 描述: 仅执行指定应用程序(通过PID标识)的可访问性树遍历。对于获取当前UI状态而不执行操作很有用。
    • 参数:
      • pid (数字,必需):要遍历的应用程序的进程ID (PID)。

通用可选参数(用于CallTool

这些参数可以传递到任何工具调用的arguments对象中,以覆盖默认的MacosUseSDK行为(参见代码中的ActionOptions):

  • traverseBefore (布尔值,可选):在主要操作之前遍历可访问性树。
  • traverseAfter (布尔值,可选):在主要操作之后遍历可访问性树(通常默认为true)。
  • showDiff (布尔值,可选):包括遍历之间的差异(如适用)。
  • onlyVisibleElements (布尔值,可选):限制遍历可见元素。
  • showAnimation (布尔值,可选):显示动作的视觉反馈动画。
  • animationDuration (数字,可选):反馈动画的持续时间。
  • delayAfterAction (数字,可选):在执行操作后添加延迟。

依赖项

  • MacosUseSDK(假设是本地或外部的Swift包,提供macOS控制功能)

构建和运行

# 示例构建命令(根据需要调整,使用'debug'进行开发)
swift build -c debug # 或者使用'release'进行生产

# 运行服务器(它通过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目录的绝对路径。

帮助

联系 matt@mediar.ai Discord: m13v_

计划

很高兴根据您的需求定制服务器,请随时打开问题或联系我们