Token导航 LogoToken导航TokenDH.com
MCP Apple Script logo
AI代理未说明官方级别未说明来源级核验

MCP Apple Script

MCP Server

MCP-AppleScript是一个本地MCP服务器,为macOS上的MCP客户端提供受控的AppleScript自动化工具,支持对Notes、Calendar、Reminders等10种苹果应用进行安全操作。

工具数

13

提示词数

0

GitHub Stars

0

资源数

0
安全控制TypeScriptClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

frouaix

提供方

frouaix

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP AppleScript

一个本地MCP服务器,在macOS上向MCP客户端公开受控的AppleScript自动化工具。

\[!小心\] 该软件可以读取、创建、修改和删除您的个人数据 跨笔记、日历、提醒、邮件、联系人、消息、照片、音乐、Finder和Safari。 通过运行此服务器,您授予AI模型代表您与macOS应用程序交互的能力。尽管存在多个安全层(操作模式、每个应用程序的分配、破坏性动作确认), 没有一种自动防护措施是万无一失的。意外的提示、配置错误的策略或模型幻觉可能会导致 数据丢失、私人信息泄露或意外行为 例如发送消息或电子邮件。 您全权负责: - 回顾和理解 配置政策模型 启用任何应用程序之前 - 开始于 readonly 模式,只有当你了解后果时才会升级 - 将启用的应用程序数量保持在您实际需要的最低限度 - 从不跑步 full 无人值守模式 本项目提供 按原样,不提供任何保证。参见 许可证.

概述

MCP AppleScript在 模型上下文协议 通过AppleScript实现macOS自动化。它由两个部分组成:

  • MCP服务器(Types/Node.js):处理MCP协议、工具模式、配置、验证、日志记录和策略执行
  • Swift执行器:通过执行AppleScript命令 NSAppleScript 并返回结构化JSON结果

工具

所有10个苹果应用程序都可以通过通用 app.* 工具与a app 参数:

工具模式描述
applescript.ping只读运行状况检查--返回服务器版本和支持的应用程序
applescript.get_mode只读获取当前操作模式和启用的工具
applescript.set_mode只读更改操作模式(只读/创建/完整)
app.list_containers只读列出容器(文件夹、日历、邮箱、播放列表等)
app.listreadonly用分页列出容器中的项目
app.get只读按ID获取单个项目
app.search只读搜索/筛选项目
app.createcreate创建新项目
app.action创建特定于应用程序的操作(发送、播放、完成、do_javascript等)
applescript.run_templatecreate按ID执行已注册的模板(策略门控)
app.update完整更新项目(需要确认)
app.deletefull删除项目(需要确认)
applescript.run_scriptfull执行原始AppleScript(需要确认)

支持的应用程序

笔记、日历、提醒、邮件、通讯录、消息、照片、音乐、查找器、Safari浏览器

操作模式

服务器启动于 只读 默认模式。使用 applescript.set_mode 要动态更改模式:

模式描述可用工具
只读不创建、编辑或删除ping、get_mode、set_mode、app.list/get/search/list_containers
创造允许只读+创建+app.create、app.action、run_template
满的所有可能具有破坏性的操作+app.update、app.delete、run_script(需要确认)

当模式更改时,会通过以下方式通知客户端 notifications/tools/list_changed 并且只会看到当前模式下可用的工具。

破坏性行动确认

满的 破坏性工具模式(app.update, app.delete, run_script)需要用户确认:

  1. 如果MCP客户端支持 引出,显示确认对话框
  2. 否则,a 确认令牌 返回--在第二次呼叫中将其传递回以进行确认

需求

  • macOS 12.0或更高版本
  • Node.js 20+(仅用于从源代码构建)
  • Swift 5.9+(仅适用于从源代码构建)
  • pnpm 8+(仅适用于从源构建)

安装

选项1:下载预构建的二进制文件(.dmg)

下载最新 .dmg 从 :

  1. 打开 .dmg 并复制 mcp-applescript/usr/local/bin/:
   sudo cp /Volumes/MCP-AppleScript\ */mcp-applescript /usr/local/bin/
  1. 创建配置文件:
   mkdir -p ~/.config/applescript-mcp
   cat > ~/.config/applescript-mcp/config.json << 'EOF'
   {
     "defaultMode": "readonly",
     "apps": {
       "com.apple.Notes": { "enabled": true },
       "com.apple.iCal": { "enabled": true },
       "com.apple.reminders": { "enabled": true },
       "com.apple.mail": { "enabled": true },
       "com.apple.Contacts": { "enabled": true }
     }
   }
   EOF
  1. 添加到您的MCP客户端配置中(请参阅下面的Claude Desktop)

预构建的二进制文件是一个自包含的可执行文件,内嵌了Node.js和Swift执行器,不需要运行时依赖。

选项2:从源代码构建

git clone https://github.com/frouaix/MCPAppleScript.git
cd MCPAppleScript
./install.sh

安装脚本将:

  1. 安装Node.js依赖项
  2. 构建TypeScript MCP服务器
  3. 构建并安装Swift执行器 /usr/local/bin/
  4. 在以下位置创建默认配置 ~/.config/applescript-mcp/config.json

Claude桌面集成

增添 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "applescript": {
      "command": "/usr/local/bin/mcp-applescript"
    }
  }
}

如果从源代码构建,请使用dev路径:

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

配置

配置存在于 ~/.config/applescript-mcp/config.json (通过以下方式覆盖 APPLESCRIPT_MCP_CONFIG env 是:

{
  "executorPath": "/usr/local/bin/applescript-executor",
  "defaultTimeoutMs": 12000,
  "defaultMode": "readonly",
  "modes": {
    "readonly": ["applescript.ping", "applescript.get_mode", "applescript.set_mode", "app.list_containers", "app.list", "app.get", "app.search"],
    "create": ["app.create", "app.action", "applescript.run_template"],
    "full": ["app.update", "app.delete", "applescript.run_script"]
  },
  "apps": {
    "com.apple.Notes": { "enabled": true },
    "com.apple.iCal": { "enabled": true },
    "com.apple.reminders": { "enabled": true },
    "com.apple.mail": { "enabled": true },
    "com.apple.Contacts": { "enabled": true },
    "com.apple.MobileSMS": { "enabled": true },
    "com.apple.Photos": { "enabled": true },
    "com.apple.Music": { "enabled": true },
    "com.apple.finder": { "enabled": true },
    "com.apple.Safari": { "enabled": true }
  },
  "runScript": {
    "enabled": false,
    "allowedBundleIds": []
  },
  "logging": {
    "level": "info",
    "redact": ["email", "content", "body"]
  }
}

模式

modes 部分控制在每个操作模式级别可用的工具。模式是累积的-- create 包括所有 readonly 工具, full 包括所有 create 工具。您可以对此进行自定义,以将工具提升到较低的模式或将其限制到较高的模式。

策略模型

  • 按应用程序分配列表:每个应用程序都必须明确配置和启用
  • 按工具权限:控制哪些工具可以针对哪些应用程序
  • 每模式工具门控:每个工具都需要一个最低模式级别(可通过以下方式配置 modes)
  • run_script 默认情况下禁用:原始AppleScript执行需要显式选择加入
  • 强制超时:所有操作都有时间限制

自动化权限(TCC)

首次使用时,macOS将提示输入自动化权限:

  1. 打开 系统设置隐私和安全自动化
  2. 查找您的终端或执行器二进制文件
  3. 为要自动化的应用程序启用权限(笔记、日历、提醒、邮件、联系人等)

如果你看到 AUTOMATION_DENIED 错误,请检查这些权限。

建筑

MCP Client (Claude, etc.)
    ↕ stdio (JSON-RPC)
TypeScript MCP Server
    ↕ JSON over stdin/stdout
Swift Executor (applescript-executor)
    ↕ Apple Events
macOS Apps (Notes, Calendar, Reminders, Mail, Contacts, Messages, Photos, Music, Finder, Safari)

节点进程是唯一面向MCP的组件。Swift是每次工具调用在本地调用的助手。看 docs/ARCHITECTURE.md 了解详情。

发展

# Install dependencies
pnpm install

# Build everything
pnpm build

# Run unit tests (150 tests)
pnpm test:unit

# Run integration tests (4 tests, requires macOS)
pnpm test:integration

# Build Swift executor
cd packages/executor-swift && swift build

# Run the server in development mode
cd packages/mcp-server && pnpm dev

构建独立二进制文件

# Build self-contained binary (Node.js SEA + embedded Swift executor)
pnpm build:sea

# Package as .dmg
pnpm build:dmg

输出: dist/mcp-applescript (约107MB,约40MB,以.dmg计)

安全

  • 三种操作模式 (只读→ 创造→ 已满),默认为安全
  • 破坏性行动确认 通过MCP启发或确认令牌
  • 基于模板的执行 防止任意脚本注入
  • 每个应用程序、每个工具权限模型 与明确的排外主义者
  • 输入验证 在所有工具参数上使用Zod模式
  • 敏感数据编辑 在日志中(可配置)
  • 超时执行 关于所有执行器操作
  • 稳定的错误代码 适用于所有故障模式

项目结构

MCPAppleScript/
  packages/
    mcp-server/          # TypeScript MCP server
      src/
        index.ts         # Stdio entrypoint
        server.ts        # MCP server + tool registration
        sea.ts           # SEA binary support (executor extraction)
        adapters/        # ResourceAdapter pattern: per-app adapters (10 apps)
        config/          # Configuration loading + Zod schemas
        mode/            # Operation mode manager + confirmation
        policy/          # Allowlist/denylist enforcement
        exec/            # Executor spawning + IPC
        util/            # Errors, logging, JSON utils
    executor-swift/      # Swift executor CLI
      Sources/Executor/
        main.swift       # JSON dispatcher
        AppleScriptRunner.swift  # Template dispatch to per-app modules
        {App}Templates.swift     # Per-app AppleScript templates (10 files)
        AppTargeting.swift       # Bundle ID handling
        Errors.swift     # Error code mapping
        JsonIO.swift     # Stdin/stdout JSON I/O
  scripts/
    build-sea.sh         # Build self-contained binary (Node.js SEA)
    build-dmg.sh         # Package binary as .dmg
  docs/                  # Architecture documentation
  install.sh             # One-step installer (build from source)

许可证

麻省理工学院——见 许可证

作者

弗朗索瓦 Rouaix

目录标签

目录标签

安全控制TypeScriptClaudemacOS自动化本地部署苹果脚本任务自动化MCP协议

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

13

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明nonelocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP