MCP macOS控制
Swift内置的本地macOS MCP(模型上下文协议)服务器,提供 65工具 用于全面的计算机控制——鼠标、键盘、屏幕捕获、OCR、窗口管理、视觉分析、CoreML智能、可访问性树读取,以及 iPhone镜像自动化 通过macOS Sequoia。

概述
MCP macOS Control使AI代理能够感知macOS应用程序并与之交互,并通过iPhone镜像在连接的iPhone上感知iOS应用程序。所有处理都在使用本机Apple框架的设备上进行。
关键能力:
- 通过CoreGraphics事件实现完全的鼠标和键盘自动化
- 带有OCR文本提取的屏幕截图(Vision框架)
- 带归一化坐标的iPhone镜像控制(macOS 15+)
- 通过AXUIElement API读取辅助功能树
- 设备上CoreML LLM推理(零云令牌)
- 实时屏幕监控,可连续捕获
- 多显示器支持
- 速率限制、结构化日志记录和CI/CD
需求
- macOS 13.0(Ventura)或更高版本(适用于iPhone镜像的macOS 15)
- 苹果硅或英特尔Mac(推荐苹果硅)
- Swift 5.9+/Xcode 16+
- MCP SDK 0.12.0+
安装
git clone https://github.com/aerocristobal/MCP-MacOSControl.git
cd MCP-MacOSControl
swift build -c release可执行文件位于 .build/release/mcp-macos-control.
Claude桌面配置
添加 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"macos-control": {
"command": "/path/to/MCP-MacOSControl/.build/release/mcp-macos-control"
}
}
}权限
macOS需要明确的权限:
- 无障碍 (系统设置>隐私和安全>辅助功能)--鼠标、键盘、窗口激活和辅助功能树都需要
- 屏幕录制 (系统设置>隐私和安全>屏幕录制)-截图、OCR和连续捕获所需
看 docs/PERMISSIONS.md 详细设置。
工具(共65个,11个模块)
鼠标控制(鼠标模块——9个工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
click_screen | 单击坐标(左/右/中) | x,y |
double_click | 在坐标 | x,y处双击 |
move_mouse | 移动光标 | x,y |
mouse_down | 按住鼠标键 | -- |
mouse_up | 松开鼠标按钮 | -- |
drag_mouse | 在两点之间拖动 | 从_x、从_y、到_x、到_y |
scroll | 沿某个方向滚动 | |
get_screen_size | 获取屏幕分辨率 | -- |
list_displays | 列出所有连接的显示器 | -- |
键盘控制(键盘模块——4个工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
type_text | 在光标处键入文本 | text |
press_keys | 按键组合(例如。, [["cmd", "c"]]) | 按键 |
key_down | 按住键 | 键 |
key_up | 释放一个键 |
屏幕捕获和OCR(屏幕捕获模块——2个工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
take_screenshot | 将屏幕或窗口捕获为PNG | -- |
take_screenshot_with_ocr | 截图+文本提取 | -- |
窗口管理(WindowModule-2个工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
list_windows | 列出所有打开的窗口 | -- |
activate_window | 将窗口置于前台 | title_pattern |
连续捕获(连续捕获模块——6个工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
start_continuous_capture | 开始实时捕获 | capture_type |
stop_continuous_capture | 停止捕获会话 | -- |
get_capture_frame | 获取最新帧 | -- |
list_capturable_displays | 列出可用显示 | -- |
list_capturable_windows | 列出可捕获的窗口 | -- |
list_capturable_applications | 列出正在运行的应用 | -- |
视觉分析(视觉模块——5个工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
classify_image | 场景/对象分类 | image_data |
detect_objects | 使用边界框进行对象检测 | image_data |
detect_rectangles | 矩形/UI元素检测 | image_data |
detect_saliency | 注意区域检测 | image_data |
detect_faces | 人脸检测 | image_data |
CoreML智能(CoreMLModule——8个工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
list_coreml_models | 列出可用型号 | -- |
load_coreml_model | 推理加载模型 | 名称、路径 |
unload_coreml_model | 卸载型号 | 名称 |
get_model_info | 模型元数据 | 名称 |
generate_text_llm | 在设备文本生成 | model_name时,提示 |
analyze_screen_with_llm | 屏幕+视觉+LLM | 型号名称,说明 |
intelligent_screen_summary | 基于NLP的屏幕摘要 | -- |
extract_key_info | 从OCR | OCR_results中提取实体 |
实时分析(实时模块——4个工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
analyze_screen_now | 快速捕捉+视觉分析 | -- |
start_screen_monitoring | 连续分析 | -- |
get_monitoring_results | 最新分析结果 | -- |
stop_screen_monitoring | 停止监视 | -- |
系统(系统模块——3个工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
check_permissions | 检查辅助功能和屏幕录制 | -- |
wait_milliseconds | 暂停执行 | 毫秒 |
wait_for_text | 轮询OCR,直到出现文本 | 文本 |
无障碍(无障碍模块-1个工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
accessibility_tree | 阅读macOS应用程序的AXUIElement树 | -- |
返回结构化JSON,其中包含每个UI元素的角色、标题、值、位置、大小和子元素。可配置的 max_depth (默认值3)。注意:仅适用于macOS应用程序——iPhone镜像内容需要 iphone_screenshot_with_ocr.
iPhone镜像(iPhone镜像模块——21个工具)
需要配置了iPhone镜像的macOS 15(Sequoia)。所有坐标都使用相对于iPhone屏幕内容区域的归一化0.0-1.0范围。
| 工具 | 描述 | 必需参数 |
|---|---|---|
iphone_status | 检查镜像状态和连接 | -- |
iphone_launch | 启动/激活iPhone镜像 | -- |
iphone_calibrate | 力含量校正重新校准 | -- |
iphone_tap | 在归一化坐标 | x,y处点击 |
iphone_double_tap | 双击 | x,y |
iphone_long_press | 长按时间 | x,y |
iphone_swipe | 轻松地在曲线内向外滑动 | start_x、start_y、end_x、end_y |
iphone_scroll | 滚轮事件 | -- |
iphone_type_text | 通过剪贴板粘贴文本 | 文本 |
iphone_clear_text | 全选+删除 | -- |
iphone_press_key | 发送密钥事件 | 密钥 |
iphone_home | 转到主屏幕(Cmd+1) | -- |
iphone_app_switcher | 打开应用程序切换器(Cmd+2) | -- |
iphone_spotlight | 打开聚光灯(Cmd+3) | -- |
iphone_screenshot | 捕获iPhone屏幕内容 | -- |
iphone_screenshot_with_ocr | 截图+OCR(标准化坐标) | -- |
iphone_analyze_screen_now | iPhone屏幕上的视觉分析 | -- |
iphone_analyze_with_llm | iPhone屏幕+CoreML LLM | 型号名称,说明 |
iphone_open_app | 通过Spotlight按名称打开iOS应用程序 | app_name |
iphone_wait_for_text | 轮询iPhone OCR以获取文本 | 文本 |
iphone_reconnect | 等待镜像重新连接 | -- |
iPhone镜像的工作原理: 服务器检测iPhone镜像窗口,通过视觉矩形检测校准iPhone屏幕内容区域,并将归一化坐标转换为绝对屏幕坐标。滑动手势使用轻松输入输出,轻轻一推即可确保iOS手势识别。文本输入使用剪贴板粘贴来支持通用语言。
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
MCP_MACOS_CONTROL_LOG_LEVEL | warn | 日志级别:错误、警告、信息、调试、跟踪 |
MCP_MACOS_CONTROL_MAX_INPUT_RATE | 10 | 每秒最大输入事件数 |
建筑
Sources/
MacOSControlLib/ # Library target
ToolModule.swift # ToolModule protocol
ToolRouter.swift # Module registry + dispatch
Errors.swift # MCPError structured errors
Logger.swift # Structured logging
RateLimiter.swift # Token bucket rate limiter
MouseControl.swift # CGEvent mouse automation
KeyboardControl.swift # CGEvent keyboard automation
ScreenCapture.swift # Screenshot capture
OCRProcessor.swift # Vision OCR
WindowManagement.swift # Window list/activate
VisionAnalyzer.swift # Vision framework analysis
CoreMLManager.swift # CoreML model management
ContinuousCaptureManager.swift # ScreenCaptureKit streams
RealtimeAnalyzer.swift # Continuous vision analysis
Accessibility/
AccessibilityTreeBuilder.swift # AXUIElement tree traversal
AXNodeSerializer.swift # JSON shaping + schema_version
AXNode.swift # Tree value type
IPhoneMirroring/
MirroringWindowDetector.swift # Window detection + focus guard
CoordinateTranslator.swift # Content rect calibration + coord translation
GestureEngine.swift # Tap, swipe, scroll gestures
IOSNavigation.swift # Home, Spotlight, App Switcher, open app
IPhoneTextInput.swift # Clipboard paste, key events
Modules/
MouseModule.swift # 9 mouse tools
KeyboardModule.swift # 4 keyboard tools
ScreenCaptureModule.swift # 2 capture tools
WindowModule.swift # 2 window tools
ContinuousCaptureModule.swift # 6 continuous capture tools
VisionModule.swift # 5 vision tools
CoreMLModule.swift # 8 CoreML tools
RealtimeModule.swift # 4 realtime tools
SystemModule.swift # 3 system tools
AccessibilityModule.swift # 1 accessibility tool
IPhoneMirroringModule.swift # 21 iPhone tools
MCP-MacOSControl/
Server.swift # Entry point (33 lines)
Tests/
MCP-MacOSControlTests/ # 178 unit tests发展
swift build # Debug build
swift build -c release # Release build
swift test # Run 178 unit testsCI通过GitHub Actions(macOS 15,构建+测试)在每次推送时运行。
文档
许可证
MIT许可证
致谢
- 与 模型上下文协议 Swift SDK
- 使用苹果的原生框架(CoreGraphics、Vision、CoreML、ScreenCaptureKit、AppKit)
