Swift MCP图形用户界面服务器
一个模型上下文协议(MCP)服务器,允许通过以下方式控制macOS SwiftAutoGUI该服务器提供用于通过MCP客户端以编程方式控制鼠标和键盘的工具。
需求
- macOS 15.0或更高版本
- Swift 6.0或更高版本
- Xcode 16.0或更高版本
安装
- 克隆此存储库:
git clone https://github.com/NakaokaRei/swift-mcp-gui.git
cd swift-mcp-gui- 安装
swift package experimental-install- 将命令添加到MCP客户端。
{
"mcpServers" : {
"swift-mcp-gui" : {
"command" : "/Users/USERNAME/.swiftpm/bin/swift-mcp-gui"
}
}
}
可用工具
服务器提供以下用于控制macOS的工具:
1.鼠标移动
- 工具名称:
moveMouse - 输入:
- x:number(x坐标)-接受整数、双精度或字符串表示 - y:number(y坐标)-接受整数、双精度或字符串表示
- 将鼠标光标移动到指定坐标
2.鼠标点击
- 工具名称:
mouseClick - 输入:
- button:string(“左”或“右”)
- 在当前光标位置执行鼠标点击
3.键盘输入
- 工具名称:
sendKeys - 输入:
- keys:字符串数组(键名)
- 发送键盘快捷键或组合键
- 示例键:“命令”、“控制”、“选项”、“移位”、“返回”、“空格”、“a”、“1”等。
4.滚动
- 工具名称:
scroll - 输入:
- direction:string(“向上”、“向下”、“向左”、“向右”) - clicks:number(滚动点击次数)
- 在指定方向上执行滚动
5.屏幕尺寸
- 工具名称:
getScreenSize - 返回主屏幕尺寸(宽度和高度)
6.像素颜色
- 工具名称:
getPixelColor - 输入:
- x:number(x坐标)-接受整数、双精度或字符串表示 - y:number(y坐标)-接受整数、双精度或字符串表示
- 返回指定坐标处像素的RGBA颜色值(0-255)
7.捕获屏幕
- 工具名称:
captureScreen - 输入:
- quality:number(可选,0.0-1.0,默认值:0.5)-JPEG压缩质量 - scale:number(可选,0.1-1.0,默认值:0.25)-图像大小的比例因子 - output:string(可选,“path”或“image”,默认:“path”)-输出格式
output: "path"(默认):保存到临时文件并返回带尺寸的文件路径。减少代币消耗。output: "image":返回AI视觉的内联图像内容(例如Claude)
8.捕获区域
- 工具名称:
captureRegion - 输入:
- x:number(区域的x坐标) - y:数字(区域的y坐标) - width:number(区域宽度) - height:number(区域高度) - quality:number(可选,0.0-1.0,默认值:0.5)-JPEG压缩质量 - scale:number(可选,0.1-1.0,默认值:0.25)-图像大小的比例因子 - output:string(可选,“path”或“image”,默认:“path”)-输出格式
output: "path"(默认):保存到临时文件并返回带尺寸的文件路径。减少代币消耗。output: "image":返回AI视觉的内联图像内容(例如Claude)
9.保存截图
- 工具名称:
saveScreenshot - 输入:
- filename:string(保存屏幕截图的路径) - x:number(可选,区域的x坐标) - y:number(可选,区域的y坐标) - width:number(可选,区域宽度) - height:number(可选,区域高度) - quality:number(可选,0.0-1.0,默认值:0.1)-JPEG压缩质量 - scale:number(可选,0.1-1.0,默认值:0.25)-图像大小的比例因子
- 捕获屏幕或区域并将其保存到文件中
- 文件格式由文件扩展名(.jpg、.jpeg、.png)决定
- 质量参数仅影响JPEG文件
10.执行AppleScript
- 工具名称:
executeAppleScript - 输入:
- script:string(要执行的AppleScript代码)
- 直接执行AppleScript代码并返回结果
- 返回“AppleScript结果: “如果脚本返回一个值
- 如果脚本完成但未返回值,则返回“AppleScript执行成功(未返回结果)”
11.执行AppleScript文件
- 工具名称:
executeAppleScriptFile - 输入:
- path:string(AppleScript文件的路径)
- 从文件中执行AppleScript并返回结果
- 返回“AppleScript结果: “如果脚本返回一个值
- 返回“AppleScript文件执行成功(未返回结果):
“如果脚本完成而不返回值
安全考虑
此服务器需要“系统首选项”中的完全访问权限来控制您的鼠标和键盘。运行它时要小心,只连接受信任的MCP客户端。
许可证
MIT许可证
