使用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方法暴露以下工具:
macos-use_open_application_and_traverse
identifier (字符串,必需):应用程序的名称、包ID或文件路径。macos-use_click_and_traverse
pid (数字,必需):目标应用程序的进程ID (PID)。x (数字,必需):点击的X坐标(相对于窗口/屏幕,取决于SDK的行为)。y (数字,必需):点击的Y坐标。macos-use_type_and_traverse
pid (数字,必需):目标应用程序的进程ID (PID)。text (字符串,必需):要输入的文本。macos-use_press_key_and_traverse
pid (数字,必需):目标应用程序的进程ID (PID)。keyName (字符串,必需):键名(例如,Return,Escape,ArrowUp,Delete,a,B)。如果无修饰键激活,则字母区分大小写。modifierFlags (字符串数组,可选):在按键时按下的修饰键数组。有效值:CapsLock(或Caps),Shift,Control(或Ctrl),Option(或Opt,Alt),Command(或Cmd),Function(或Fn),NumericPad(或Numpad),Help。macos-use_refresh_traversal
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_
很高兴根据您的需求定制服务器,请随时打开问题或联系我们