AppleScript自动化服务器

一个通过AppleScript实现Mac应用自动化控制的服务器,可用于文件管理、音乐控制、消息发送等多种任务。

  • by adamrdrew
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 adamrdrew/applescript-mcp

使用说明

🍎 AppleScript MCP服务器

让克劳德控制你的Mac。这个MCP服务器允许Claude通过AppleScript自动化应用程序、管理文件、控制音乐、发送消息等等。

你能用它做什么?

安装后,只需问Claude以下问题:

  • “现在在玩什么?” -Claude查看Music.app,告诉你
  • “创建一个提醒,明天下午3点给妈妈打电话” --在提醒中创建它
  • “添加一个名为“会议笔记”的新笔记,其中包含今天的日期” --在Notes中创建它
  • “打开我的下载文件夹” --在Finder中打开它
  • “正在运行哪些应用程序?” --列出您的活动应用程序
  • “播放我的Chill播放列表” --开始在音乐中播放
  • “获取我当前Safari选项卡的URL” --返回URL
  • “为周五下午2点创建新的日历活动” --将其添加到日历
  • “显示剪贴板上的内容” --显示剪贴板内容
  • “给约翰发个信息,说我快迟到了” --通过消息发送

克劳德发现什么是可能的,学习什么是有效的,并优雅地处理错误。

需求

  • macOS (AppleScript仅适用于macOS)
  • Node.js 18+ — 点击此处下载
  • Xcode --从App Store安装(AppleScript字典需要)

安装Xcode后,运行以下命令以验证其设置是否正确:

sdef /System/Applications/Notes.app | head -5

如果您看到XML输出,则很好。如果您遇到错误,请运行:

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

安装

克劳德代码

通过插件市场安装:

/plugin marketplace add adamrdrew@marketplace
/plugin install applescript-mcp@adamrdrew

重新启动Claude Code或运行 /mcp 以验证它是否已连接。

克劳德桌面

将其添加到您的配置文件中 ~/Library/Application Support/Claude/claude_desktop_config.json:

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

重新启动克劳德桌面。

Claude代码权限

Claude Code每次第一次使用MCP服务器命令时都会问你,这意味着当你开始使用MCP服务器时,你会得到很多“你确定要这样做吗?”的提示,这是一种非常糟糕的体验。安装插件后,您可以通过将其添加到您的 .claude/settings.json

{
  "permissions": {
    "allow": [
      "mcp__plugin_applescript-mcp_applescript-mcp-server__*"
    ]
  }
}

系统权限

Claude第一次尝试控制应用程序时,macOS会请求许可。授予这些 系统设置→ 隐私和安全:

许可 需要时
自动化 控制任何应用程序(Finder、音乐、Safari等)
无障碍 键盘模拟、UI自动化
全磁盘访问 一些文件操作

出现提示时,允许您的终端应用程序(terminal、iTerm、Warp等)或Claude Desktop控制所请求的应用程序。

哪些应用程序有效?

Claude可以控制任何“可脚本化”的macOS应用程序。大多数内置应用程序都是可脚本化的:

  • 访达 --文件和文件夹操作
  • 音乐 --播放、播放列表、库访问
  • 游猎 --标签、URL、阅读列表
  • 邮件 --发送、阅读、整理电子邮件
  • 日历 --事件和提醒
  • 备注 --创建和管理笔记
  • 提醒事项 --任务和列表
  • 消息 --发送消息
  • 照片 --专辑和组织
  • 联系人 --通讯簿访问
  • 主题演讲/页数/数字 --文档自动化
  • 终端 --脚本执行

许多第三方应用程序也是可脚本化的(Adobe应用程序、BBEdit、OmniFocus等)。

安全特性

服务器保护您免受意外损坏:

风险等级 发生了什么 示例
低 正常运行 获取信息,读取数据
中等 显示警告 发送电子邮件、按键
高 在您确认 Shell命令之前被阻止,退出所有应用程序
关键的 在您确认之前被阻止 删除所有文件,清空垃圾箱

如果克劳德尝试了一些有风险的事情,你会看到一个警告,可以决定是否继续。

学习系统

随着时间的推移,服务器变得越来越智能:

  • 记住什么有效 --成功的脚本将被保存以备将来参考
  • 建议修复 --当某件事失败时,它会提供具体的解决方案
  • 技能档案 --流行应用程序的精选示例 ~/.applescript-mcp/skills/

有用的错误消息

当出现问题时,您会得到可操作的修复:

❌ Automation permission denied for Safari.

HOW TO FIX:
1. Open System Settings
2. Go to Privacy & Security → Automation
3. Find your terminal app
4. Enable the toggle for "Safari"
5. Restart your terminal

故障排除

“未安装Xcode” 从App Store安装Xcode,然后运行:

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

“权限被拒绝”错误 打开系统设置→ 隐私和安全→ 自动化并启用应用程序。

命令在应用程序上不起作用 并非所有应用程序都是可脚本化的。让克劳德跑 list_scriptable_apps 看看有什么可用的。

服务器未连接

  • 克劳德代码:运行 /mcp 检查状态
  • 对于Claude Desktop:编辑配置后重新启动应用程序

贡献

想要贡献、从源代码运行或理解代码库吗?看 贡献.md.

想要更深入的记录吗?看 项目文件

许可证

该项目根据 GNU通用公共许可证v3.0.