mcpField
M
mac-use-mcp

mac-use-mcp

本地服务
github.com/antbotlab开发工具733 周前更新

关于 mac-use-mcp

mac-use-mcp 是面向需要检查和控制应用的 AI Agent 与开发者的 macOS 桌面自动化服务。它提供 18 种工具,涵盖屏幕捕获、输入、窗口、辅助功能元素和剪贴板操作,且无需原生 Node.js 依赖。

主要功能

  1. 01捕获屏幕、区域和窗口
  2. 02控制鼠标与键盘输入
  3. 03管理窗口并启动应用
  4. 04检查辅助功能界面元素
  5. 05读写剪贴板文本

适用场景

  1. 01自动化桌面工作流和表单
  2. 02测试界面并验证控件
  3. 03截取屏幕以进行视觉监控
  4. 04检查应用界面以执行 QA

MCP 相关

该 MCP 服务通过 stdio 向兼容客户端提供 18 种屏幕、鼠标、键盘、窗口、辅助功能和剪贴板操作工具。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"antbotlab-mac-use": {
"command": "npx",
"args": [
"-y",
"mac-use-mcp"
]
}
}
}
启动命令npx -y mac-use-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmac-use-mcp1.1.1

工具

还没有获取到工具列表

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

详细介绍

ant-09-banner-night-03

mac-use-mcp

demo

警告

此工具可完全控制鼠标、键盘和屏幕。 请在沙盒环境中使用,以保护隐私,并避免 Agent 意外造成数据丢失。您需要对通过此工具执行的任何操作负责。

通过 MCP 实现零原生依赖的 macOS 桌面自动化。

让 AI Agent 在 macOS 上拥有眼睛和双手——点击、输入、截屏并检查任何应用程序。

CI npm version npm downloads license TypeScript macOS 13+ Node 22+

使用场景

  • 自动化 UI 测试 — 点击按钮,使用 get_ui_elements 验证元素状态,通过 screenshot 验证屏幕内容
  • 桌面工作流自动化 — 使用 open_application 启动应用,使用 type_text 填写表单,通过 click_menu 浏览菜单
  • 基于屏幕截图的监控 — 定期使用 screenshot 捕获屏幕区域,用于视觉差异比较或告警
  • 无障碍检查 — 查询 UI 元素树,使用 get_ui_elements 进行 QA 和合规检查
  • AI Agent 使用计算机 — 通过 screenshot、click、type_text 等工具,让大模型在 macOS 上拥有眼睛和双手

为什么选择 mac-use-mcp?

  • 开箱即用 — 运行 npx mac-use-mcp 并授予两项 macOS 权限即可。无需 node-gyp、Xcode 工具或构建步骤。
  • 18 种工具,一个服务 — 支持屏幕截图、点击、按键、窗口管理、无障碍检查和剪贴板。
  • 适用于 Intel 和 Apple Silicon 的 macOS 13+ — 无原生扩展,无架构兼容问题。

安装

要求: macOS 13+ 和 Node.js 22+。服务使用 stdio 传输方式进行通信。

此软件包仅适用于 macOS。在其他操作系统上安装时会拒绝安装。

无需构建步骤。无需原生依赖。直接运行:

npx mac-use-mcp

首次运行时,npx 会提示安装软件包。使用 npx -y mac-use-mcp 可跳过确认。

提示

模型选择很重要。 桌面自动化涉及屏幕截图与操作的循环,累计起来会消耗大量令牌。建议使用速度快、推理能力强、视觉能力好且工具调用可靠的模型:

模型提供方
Gemini 3 FlashGoogle
Claude Sonnet 4.6Anthropic
GPT-5 miniOpenAI
MiniMax-M2.5MiniMax
Kimi K2.5Moonshot AI
Qwen3.5Alibaba
GLM-4.7Zhipu AI

权限设置

mac-use-mcp 需要两项 macOS 权限才能运行。授予一次即可。

辅助功能

鼠标和键盘控制所需权限。

  1. 打开 系统设置 > 隐私与安全性 > 辅助功能
  2. 点击 + 按钮
  3. 添加您的 MCP 客户端应用(例如 Claude Desktop 或终端模拟器)
  4. 确保开关已启用
屏幕录制

截屏所需权限。

  1. 打开 系统设置 > 隐私与安全性 > 屏幕录制
  2. 点击 + 按钮
  3. 添加您的 MCP 客户端应用
  4. 确保开关已启用
  5. 如果系统提示,请重新启动应用
验证权限

授予这两项权限并配置 MCP 客户端后(参见下一节),使用 check_permissions 工具确认一切正常:

> check_permissions
✓ Accessibility: granted
✓ Screen Recording: granted

MCP 客户端配置

Claude Code
claude mcp add mac-use-mcp -- npx mac-use-mcp
Claude Desktop

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "mac-use-mcp": {
      "command": "npx",
      "args": ["mac-use-mcp"]
    }
  }
}
OpenAI Codex

添加到 ~/.codex/config.toml:

[mcp_servers.mac-use]
command = "npx"
args = ["-y", "mac-use-mcp"]

也可以通过 CLI 配置:

codex mcp add mac-use -- npx -y mac-use-mcp
Google Antigravity

添加到 ~/.gemini/antigravity/mcp_config.json:

{
  "mcpServers": {
    "mac-use-mcp": {
      "command": "npx",
      "args": ["mac-use-mcp"]
    }
  }
}
Gemini CLI

添加到 ~/.gemini/settings.json:

{
  "mcpServers": {
    "mac-use-mcp": {
      "command": "npx",
      "args": ["mac-use-mcp"]
    }
  }
}
VS Code / Copilot

将其添加到工作区中的 .vscode/mcp.json(或打开命令面板并运行 MCP: Open User Configuration 进行全局配置):

{
  "servers": {
    "mac-use-mcp": {
      "command": "npx",
      "args": ["mac-use-mcp"]
    }
  }
}
Cursor

添加到 ~/.cursor/mcp.json(全局)或 .cursor/mcp.json(项目级):

{
  "mcpServers": {
    "mac-use-mcp": {
      "command": "npx",
      "args": ["mac-use-mcp"]
    }
  }
}
Windsurf

添加到 ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "mac-use-mcp": {
      "command": "npx",
      "args": ["mac-use-mcp"]
    }
  }
}
Cline

打开 Cline 的 MCP 设置(在 Cline 扩展面板中,点击 MCP 服务图标),然后添加:

{
  "mcpServers": {
    "mac-use-mcp": {
      "command": "npx",
      "args": ["mac-use-mcp"]
    }
  }
}
Kiro

添加到 ~/.aws/amazonq/mcp.json:

{
  "mcpServers": {
    "mac-use-mcp": {
      "command": "npx",
      "args": ["mac-use-mcp"]
    }
  }
}

工具

这个 Node.js MCP 服务向任何兼容 MCP 的客户端提供 18 个用于鼠标、键盘和屏幕控制的工具。

屏幕
工具描述
screenshot截取屏幕、指定区域或按标题指定的窗口(PNG 或 JPEG)
get_screen_info获取每个显示器的数量、分辨率、原点和缩放系数
get_cursor_position获取当前光标坐标
输入
工具描述
click在屏幕坐标处点击,并设置按钮、点击次数和修饰键选项
move_mouse将光标移动到指定位置
scroll在指定位置向上、向下、向左或向右滚动
drag在可配置的时长内从一个点拖动到另一个点
type_text在光标位置输入文本(支持 Unicode、CJK 和表情符号)
press_key按下按键或组合键(例如,"cmd+c"、"Return")
窗口与应用
工具描述
list_windows列出所有可见窗口及其位置和大小
focus_window激活应用并将指定窗口置于最前方
open_application按名称启动应用
click_menu按路径点击菜单栏项目(例如,“File > Save As...”)

应用名称支持模糊匹配——"chrome" 会匹配到 "Google Chrome","code" 会匹配到 "Code",等等。

辅助功能
工具描述
get_ui_elements通过 Accessibility API 查询 UI 元素——按角色或标题查找按钮、文本字段和其他控件
剪贴板
工具描述
clipboard_read以纯文本形式读取当前系统剪贴板
clipboard_write将文本写入系统剪贴板
实用工具
工具描述
wait暂停指定时长(毫秒,0–10 000,默认值为 500)
check_permissions验证辅助功能和屏幕录制权限

示例

使用 mac-use-mcp 工具的常见工作流模式:

截取特定窗口
1. focus_window({ app: "Safari" })
2. screenshot({ mode: "window", window_title: "Safari" })
点击对话框中的按钮
1. get_ui_elements({ app: "Finder", role: "AXButton" })
   → finds "OK" button at position (500, 300)
2. click({ x: 500, y: 300 })
自动执行菜单操作
1. open_application({ name: "TextEdit" })
2. click_menu({ app: "TextEdit", path: "Format > Make Plain Text" })
在应用之间复制文本
1. focus_window({ app: "Safari" })
2. press_key({ key: "cmd+a" })       # select all
3. press_key({ key: "cmd+c" })       # copy
4. focus_window({ app: "Notes" })
5. press_key({ key: "cmd+v" })       # paste

工作原理

  • Swift 二进制文件处理鼠标输入(CGEvent)、屏幕捕获(CGWindowListCreateImage)、窗口枚举(CGWindowListCopyWindowInfo)和 UI 元素查询(Accessibility API)
  • AppleScript处理键盘输入(System Events key code)、窗口聚焦和菜单点击
  • Node.js MCP 服务通过 stdio 协调所有操作,将 MCP 工具调用转换为系统操作
  • 不使用原生 Node.js 插件——Swift 二进制文件已预编译,并随 npm 包一起提供
  • 串行执行队列可防止系统操作之间发生竞态条件

已知限制

  • Sequoia 上的屏幕录制提示:macOS 15 每月会显示系统提示,要求重新确认屏幕录制权限。这是操作系统级行为,无法禁用。
  • 安全输入字段:密码字段和其他安全文本输入框会阻止模拟键盘事件。这是 macOS 的安全功能。
  • macOS 26+ 上的键盘输入:CGEvent 键盘合成会被静默阻止。键盘输入会使用 AppleScript(System Events key code)作为变通方案,在某些边缘情况下行为可能有所不同。
  • 系统对话框:由于 macOS 的安全限制,某些系统级对话框(例如 FileVault 解锁窗口、登录窗口)无法通过编程方式交互。
  • 无头环境 / CI:需要图形会话。不支持无头 macOS 环境(例如标准 GitHub Actions 运行器)。

故障排除

权限提示不断出现

在“系统设置”>“隐私与安全性”中,为你的终端应用授予辅助功能和屏幕录制权限。可能需要重启终端。

macOS Sequoia 权限对话框

macOS 15(Sequoia)引入了更严格的权限提示。提示出现时,请允许相关权限。check_permissions 工具可检查当前权限状态。

安全输入字段

某些密码字段和安全文本输入框会阻止程序化按键事件。这是 macOS 的安全功能。可使用 clipboard_write + press_key("cmd+v") 作为变通方案。

屏幕录制显示黑屏截图

请确保已为终端应用授予屏幕录制权限(不仅是辅助功能权限)。授予权限后请重启终端。

相关项目

  • Playwright MCP — 通过辅助功能树实现浏览器自动化。可与 mac-use-mcp 配合,用于仅涉及 Web 的任务。
  • Peekaboo — 使用 ScreenCaptureKit 实现 macOS 屏幕自动化。需要 macOS 15+ 和 Swift 构建环境。
  • awesome-mcp-servers — 精选的生态系统 MCP 服务列表。

贡献

开发环境设置和指南请参阅 CONTRIBUTING.md。

更新日志

安全

如需报告漏洞,请参阅 SECURITY.md。

支持

  • 发现了 Bug?提交问题
  • 有功能创意?提交问题
  • 喜欢这个项目?给它点个星,帮助更多人发现 mac-use-mcp。

许可证

MIT © 2026 antbotlab


macOS 是 Apple Inc. 在美国及其他国家和地区注册的商标。

评论

支持 Markdown

第一次接触 MCP?

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

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