Token导航 LogoToken导航

MCP Server · AI代理

Mac MCP Server

一个基于AppleScript和JXA的macOS自动化服务器,为AI助手提供44种工具以实现系统控制、应用管理、窗口操作等功能。

未说明官方级别未说明来源级核验工具 44
TypeScriptClaudeAI代理

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
laststance
提供方
laststance

工具数量

44

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

2 个

MCP World

选型结论

Mac MCP Server 属于AI代理类 MCP Server,公开资料标注 44 个工具,通过传输方式未标注接入,适配 Claude,没有现成的安装命令;接入前先确认权限范围。

分类

AI代理

传输方式

未说明

认证方式

无需认证

部署方式

仅本地运行

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 44 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

mac mcp服务器

macOS AppleScript MCP(模型上下文协议)服务器,使Claude Code和其他AI助手能够通过AppleScript和JXA(JavaScript for Automation)自动化macOS。

概述

此MCP服务器为全面的macOS自动化提供了44个工具,使AI助手能够:

  • 检索系统信息(硬件、电池、显示器)
  • 管理应用程序(启动、退出、激活、列出正在运行的应用程序)
  • 控制窗口(移动、调整大小、聚焦、最小化)
  • 模拟键盘和鼠标输入
  • 通过辅助功能API与UI元素交互
  • 捕获屏幕截图(针对API兼容性进行了自动优化)
  • 访问剪贴板和通知
  • 控制音频设置
  • 导航菜单和状态栏项目

服务器通过stdio进行通信,以实现无缝的克劳德代码集成,并使用AppleScript/JXA进行系统自动化。

快速开始

先决条件

  • macOS 10.15(Catalina)或更高版本
  • Node.js 20.11.0或更高版本

从npm安装

npm install -g mac-mcp-server

配置Claude代码

将以下内容添加到您的Claude Code MCP配置中(~/.claude.json 或克劳德桌面设置):

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

重新启动Claude Code以加载MCP服务器。

授予macOS权限

首次使用时,macOS会提示您授予所需的权限。请参阅 权限指南 详见下文。

工具参考

系统信息

工具说明
get_system_info检索macOS版本、硬件型号、处理器和内存
get_battery_status获取电池百分比和充电状态(MacBook)
get_display_info列出连接的显示器及其分辨率信息

音频控制

工具说明
get_volume获取当前系统卷(0-100)
set_volume将系统卷设置为指定的百分比
get_mute_status检查系统音频是否已静音
set_mute将系统音频静音或取消静音

剪贴板和通知

工具说明
get_clipboard读取当前剪贴板内容(文本、图像或文件)
set_clipboard将剪贴板设置为指定文本
send_notification显示带有可选字幕和声音的macOS通知

应用管理

工具说明
list_running_apps列出所有正在运行的GUI应用程序及其捆绑ID和PID
launch_app按名称启动应用程序
quit_app优雅地退出应用程序
activate_app将应用程序置于前台

Finder集成

工具说明
reveal_in_finder打开Finder并选择指定的文件或文件夹
get_selected_files获取Finder中当前选定文件的路径
get_finder_window_path获取最前面的Finder窗口的路径

窗口管理

工具说明
list_windows列出所有可见窗口的位置和大小
focus_window将特定窗口带到前面
move_window将窗口移动到指定坐标
resize_window将窗口调整为指定尺寸
minimize_window最小化Dock的窗口

鼠标控制

工具说明
click执行鼠标单击(左键、右键或中键)
double_click执行双击操作
move_mouse移动光标而不单击
drag从开始坐标到结束坐标执行拖动操作

键盘输入

工具说明
type_text在当前光标位置键入文本
press_key按名称按键(Enter、Tab、Escape、F1-F12等)
key_combination按下组合键(例如Cmd+C、Cmd+Shift+S)

滚动和导航

工具说明
scroll沿指定方向(上、下、左、右)滚动
scroll_to_element滚动直到UI元素可见

截图

工具说明
take_screenshot以PNG/JPEG格式捕获屏幕、显示器、窗口或区域

屏幕截图功能:

  • 自动调整大小:屏幕截图的大小调整为最大1600px(可配置),以实现API兼容性
  • 自动压缩:需要时使用JPEG压缩将文件大小限制为1.8MB
  • 全分辨率:使用 rawFile: true 用于以全分辨率输出文件
  • 禁用处理:设置 maxDimension: 0 和 maxFileSize: 0 禁用所有处理

UI元素交互

工具说明
get_ui_elements检索应用程序的UI元素树
click_ui_element按路径单击UI元素
get_ui_element_value获取UI元素的值
set_ui_element_value设置可编辑UI元素的值
focus_ui_element将键盘焦点设置为UI元素

菜单栏操作

工具说明
list_menu_items获取应用程序的菜单层次结构
click_menu_item按路径单击菜单项(例如,“文件>保存”)
get_menu_item_state获取菜单项的启用/选中状态
list_status_bar_items列出可见的状态栏项目
click_status_bar_item单击状态栏项以打开其菜单
click_status_bar_menu_item单击状态栏菜单中的菜单项
get_menu_bar_structure获取进程的完整菜单栏层次结构

macOS权限

此服务器需要特定的macOS权限才能运行。首次使用某些工具时,macOS会提示您授予访问权限。

必需的权限

1.无障碍

需要: 键盘输入、鼠标控制、UI元素交互、窗口管理

授予访问权限:

  1. 打开 系统设置>隐私和安全>辅助功能
  2. 点击 + 按钮并添加您的终端应用程序(终端、iTerm2或克劳德代码)
  3. 切换开关以启用访问
  4. 重新启动终端 授予许可后

快速访问:

open "x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility"
2.自动化

需要: 控制其他应用程序(Finder、Safari等)

授予访问权限:

  1. 打开 系统设置>隐私和安全>自动化
  2. 在列表中查找您的终端应用程序
  3. 为要控制的目标应用程序启用复选框
  4. 如果首次使用时出现提示,请单击 好的 允许

快速访问:

open "x-apple.systempreferences:com.apple.preference.security?Privacy_Automation"
3.屏幕录制

需要: 截图

授予访问权限:

  1. 打开 系统设置>隐私和安全>屏幕录制
  2. 点击 + 按钮并添加您的终端应用程序
  3. 切换开关以启用访问
  4. 重新启动终端 授予许可后

快速访问:

open "x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture"

权限疑难解答

问题解决方案
已添加权限但不起作用完全重新启动终端应用程序(Cmd+Q,然后重新打开)
应用程序未出现在权限列表中运行一次操作以触发权限对话框
授予权限后仍被拒绝从列表中删除应用程序,重新启动,然后重新添加
所有权限问题仍然存在重新启动macOS
“辅助访问”错误授予 无障碍 具体许可
“-1743”错误代码格兰特 自动化 目标应用程序的权限
截图返回黑色图像Grant 屏幕录制 权限和重新启动

权限检查表

在使用mac mcp服务器之前,请验证是否授予了这些权限:

  • \[ \] 无障碍 -终端/Claude代码已添加并启用
  • \[ \] 自动化 -在您的终端下启用的目标应用程序
  • \[ \] 屏幕录制 -终端/Claude代码已添加并启用
  • \[ \] 应用程序已重新启动 授予权限后

使用示例

系统信息

// Get system info
await get_system_info({})
// Returns: { macOSVersion: "15.0", hardwareModel: "MacBook Pro", ... }

// Get battery status
await get_battery_status({})
// Returns: { percentage: 85, isCharging: true, isDesktop: false }

应用管理

// List running applications
await list_running_apps({})
// Returns: [{ name: "Safari", bundleId: "com.apple.Safari", processId: 1234 }, ...]

// Launch an application
await launch_app({ name: 'Safari' })

// Quit an application
await quit_app({ name: 'Safari' })

窗口管理

// List all windows
await list_windows({})

// Focus a specific window
await focus_window({ appName: 'Finder', windowIndex: 1 })

// Move a window
await move_window({ appName: 'Finder', x: 100, y: 100 })

// Resize a window
await resize_window({ appName: 'Finder', width: 800, height: 600 })

键盘和鼠标

// Type text
await type_text({ text: 'Hello, World!' })

// Press a key
await press_key({ key: 'enter' })

// Key combination (Cmd+C)
await key_combination({ modifiers: ['command'], key: 'c' })

// Click at coordinates
await click({ x: 500, y: 300 })

// Right-click
await click({ x: 500, y: 300, button: 'right' })

// Cmd+click
await click({ x: 500, y: 300, modifiers: ['command'] })

截图

// Capture full screen (auto-resized and compressed for API)
await take_screenshot({})

// Capture to file (also auto-processed by default)
await take_screenshot({ filePath: '/tmp/screenshot.png' })

// Capture at full resolution (no processing)
await take_screenshot({ filePath: '/tmp/full.png', rawFile: true })

// Capture specific region
await take_screenshot({
  region: { x: 100, y: 100, width: 800, height: 600 },
})

// Custom compression settings
await take_screenshot({
  maxDimension: 1920, // Max 1920px
  maxFileSize: 1_000_000, // Max 1MB
  quality: 70, // JPEG quality 70
})

// Disable all processing for base64 output
await take_screenshot({ maxDimension: 0, maxFileSize: 0 })

UI元素交互

// Get UI element tree
await get_ui_elements({ appName: 'Safari', maxDepth: 3 })

// Click a button by path
await click_ui_element({
  appName: 'Safari',
  elementPath: 'window1/button1',
})

// Set text field value
await set_ui_element_value({
  appName: 'TextEdit',
  elementPath: 'window1/textfield1',
  value: 'New text',
})

菜单操作

// List application menus
await list_menu_items({ appName: 'Finder' })

// Click a menu item
await click_menu_item({
  appName: 'Finder',
  menuPath: 'File > New Finder Window',
})

// Get menu item state
await get_menu_item_state({
  appName: 'Finder',
  menuPath: 'View > Show Path Bar',
})

从源安装

对于开发或定制:

git clone https://github.com/laststance/mac-mcp-server.git
cd mac-mcp-server
pnpm install
pnpm build

然后配置Claude Code以使用本地构建:

{
  "mcpServers": {
    "mac-mcp-server": {
      "command": "node",
      "args": ["/path/to/mac-mcp-server/dist/index.js"]
    }
  }
}

发展

命令

命令描述
pnpm build为生产而建
pnpm dev开发模式(手表)
pnpm test运行测试
pnpm typecheckTypeScript类型检查
pnpm lintLint代码
pnpm lint:fix棉绒和自动修复
pnpm format使用Prettier格式化代码

项目结构

mac-mcp-server/
├── src/
│   ├── index.ts           # Entry point, MCP server setup
│   ├── lib/
│   │   ├── server.ts      # MCP server configuration
│   │   ├── executor.ts    # AppleScript execution
│   │   ├── permission.ts  # Permission checking and guidance
│   │   └── sanitizer.ts   # Input sanitization
│   └── tools/
│       ├── system.ts      # System information tools
│       ├── clipboard.ts   # Clipboard management
│       ├── notification.ts # Notification display
│       ├── audio.ts       # Audio control
│       ├── application.ts # Application lifecycle
│       ├── finder.ts      # Finder integration
│       ├── window.ts      # Window management
│       ├── mouse.ts       # Mouse control
│       ├── keyboard.ts    # Keyboard input
│       ├── scroll.ts      # Scroll operations
│       ├── screenshot.ts  # Screenshot capture
│       ├── ui-element.ts  # UI element interaction
│       └── menu.ts        # Menu bar operations
├── dist/                  # Compiled output
├── package.json
└── tsconfig.json

安全

此MCP服务器的设计考虑了安全性:

  • 仅执行AppleScript:所有自动化都是通过AppleScript和JXA执行的。不会执行任意shell命令。
  • 输入净化:所有用户输入在包含在AppleScript中之前都经过消毒,以防止注入攻击。
  • 无数据持久性:服务器不存储任何用户数据或凭据。
  • 权限门控访问:所有敏感操作都需要明确的macOS权限授予。
  • 自动化范围:每个工具都有特定的、有限的用途,而不是提供一般的系统访问。

需求

要求版本
macOS10.15(Catalina)或更高版本
Node.js20.11.0或更高版本
pnpm10.28.0(用于开发)

许可证

麻省理工学院

作者

Laststance.io

贡献

欢迎捐款。请先打开一个问题,讨论您想更改什么。

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

工具与能力

工具数量

44

资源数量

0

提示词数量

0

能力标签

macOS自动化TypeScript本地部署AppleScript工具AI助手集成系统控制应用管理

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 工具数量 44 个,一次接入能覆盖的操作比单点工具更全。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Mac MCP Server

MCP World · 本页

44未说明未标注2 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Mac MCP Server 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Mac MCP Server 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Mac MCP Server 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Mac MCP Server 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Mac MCP Server 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP