原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。使用 Google 登录即可撰写评价。原型 · 每 30 分钟更新
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

MCP Mac Control

作者:dockndevai版本 0.3.1i★ 0i在你的电脑上运行
注册名称io.github.dockndevai/mcp-mac-control

安装方法

What it does

Full macOS control — drive a Mac like a human: shell, AppleScript, files, and human-like GUI.

  • Connects 在你的电脑上运行
  • Account or key No key needed
  • Category 文档、表格与办公

安装

选择你使用的 AI 应用,然后复制设置。

通过 3/3 项检查 · 在你的电脑上运行 · ✓ 命令已检查 2026年11月14日

第一步:你用哪个 AI?

选择你用的应用,步骤会显示在下方。

可连接 Claude,但需要先准备

需要先在电脑上安装 Node.js(只需一次) · 仅限电脑上的 Claude 应用(Windows 或 Mac),网页和手机不可用

让 AI 帮你安装

把这段话复制到 Claude 的对话里。AI 会先检查电脑,告诉你要改哪个文件,并且每次都等你同意。

请在这台电脑上为 Claude 安装 MCP server MCP Mac Control,按顺序:1) 用 node -v 检查是否有 Node.js。没有的话,请让我从 https://nodejs.org/en/download 安装,不要自己安装。2) 只使用这份配置(已通过 PopNx MCP 检查):{ "mcpServers": { "mac-control": { "command": "npx", "args": [ "-y", "@dockndevai/mcp-mac-control" ] } } } 3) 告诉我要修改的文件完整路径或要运行的命令,等我同意。4) 不需要密钥。5) 按约定执行,然后确认 MCP Mac Control 的工具真的出现了。

这段话不包含你的密钥。如果需要密钥,AI 会请你自己粘贴到文件或应用的输入框里。

  1. 安装 Node.js(如果还没有)

    已经装好了吗?先检查 · 打开终端,输入这条命令后按 Enter

    node -v
    • 显示版本号(例如 v26.13.1)= 已安装,可跳过这一步
    • 显示 "command not found"(Windows 显示 "is not recognized")= 还没安装,或刚装好但需要关掉终端再重新打开
    怎么打开终端

    Mac:按 ⌘ + Space,输入 Terminal 后按 Enter

    Windows:打开“开始”菜单,输入 Windows PowerShell,然后选“打开”

    还没安装: 打开官方下载页,选择 LTS 版本和点选式安装程序:Mac 用 .pkg · Windows 用 .msi。双击后一路下一步即可,不需要 curl 命令

    打开 Node.js 下载页 ↗

    装好后关掉终端再打开,重新运行同一条命令,应显示版本号: node -v

    安装一次,所有需要 Node.js 的工具都能用

  2. 打开电脑版 Claude 应用的设置文件

    SettingsDeveloperEdit Config

  3. 粘贴这些设置并保存文件

    {
      "mcpServers": {
        "mac-control": {
          "command": "npx",
          "args": [
            "-y",
            "@dockndevai/mcp-mac-control"
          ]
        }
      }
    }
  4. 退出 Claude 再重新打开

  5. 试一试

    用 MCP Mac Control 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Claude 说正在使用 MCP Mac Control,或回答中出现 MCP Mac Control 的工具名称,就表示连接成功

5 项可选设置(不填也能用)

上面的命令不填这些也能用。想调整时再按开发者的说明添加。

  • MACCTL_SAFE_MODE Set true to invert to safe-by-default: read-only, all powers gated, confirmations on. Default false (full control).
  • MACCTL_MODE Access mode: read-only | read-write | admin. Defaults to admin (or read-only in safe mode).
  • MACCTL_CONFIRM Set true to require human approval (via MCP elicitation) on destructive ops. Default off in full control.
  • MACCTL_PATH_ALLOWLIST Comma-separated path roots the agent may touch (empty = anywhere).
  • MACCTL_PROTECTED_PATHS Comma-separated path roots that may be read but never modified/deleted (empty by default in full control).

说明仍为英文原文。

菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同

ChatGPT 暂时无法连接 MCP Mac Control

MCP Mac Control 需要安装在你的电脑上,而 ChatGPT 只能连接在网上运行的服务器

你可以改用这些方式

A · 使用能连接 MCP Mac Control 的应用

  • 需要先在电脑上安装 Node.js(只需一次) · 仅限电脑上的 Claude 应用(Windows 或 Mac),网页和手机不可用
  • 需要先在电脑上安装 Node.js(只需一次)
  • 需要先在电脑上安装 Node.js(只需一次)
  • 需要先在电脑上安装 Node.js(只需一次)

B · 文档、表格与办公 类中能连接 ChatGPT 的其他服务器

从同类中使用较多的里挑选,仅限用地址即可连接、无需密钥的

可连接 Claude Code,但需要先准备

需要先在电脑上安装 Node.js(只需一次)

让 AI 帮你安装

把这段话复制到 Claude Code 的对话里。AI 会先检查电脑,告诉你要改哪个文件,并且每次都等你同意。

请在这台电脑上为 Claude Code 安装 MCP server MCP Mac Control,按顺序:1) 用 node -v 检查是否有 Node.js。没有的话,请让我从 https://nodejs.org/en/download 安装,不要自己安装。2) 只使用这份配置(已通过 PopNx MCP 检查):claude mcp add --scope user mac-control -- npx -y @dockndevai/mcp-mac-control 3) 告诉我要修改的文件完整路径或要运行的命令,等我同意。4) 不需要密钥。5) 按约定执行,然后确认 MCP Mac Control 的工具真的出现了。

这段话不包含你的密钥。如果需要密钥,AI 会请你自己粘贴到文件或应用的输入框里。

  1. 安装 Node.js(如果还没有)

    已经装好了吗?先检查 · 打开终端,输入这条命令后按 Enter

    node -v
    • 显示版本号(例如 v26.13.1)= 已安装,可跳过这一步
    • 显示 "command not found"(Windows 显示 "is not recognized")= 还没安装,或刚装好但需要关掉终端再重新打开
    怎么打开终端

    Mac:按 ⌘ + Space,输入 Terminal 后按 Enter

    Windows:打开“开始”菜单,输入 Windows PowerShell,然后选“打开”

    还没安装: 打开官方下载页,选择 LTS 版本和点选式安装程序:Mac 用 .pkg · Windows 用 .msi。双击后一路下一步即可,不需要 curl 命令

    打开 Node.js 下载页 ↗

    装好后关掉终端再打开,重新运行同一条命令,应显示版本号: node -v

    安装一次,所有需要 Node.js 的工具都能用

  2. 打开终端

    Mac:按 Command+空格,输入 Terminal · Windows:打开 PowerShell

  3. 粘贴这条命令并按 Enter

    claude mcp add --scope user mac-control -- npx -y @dockndevai/mcp-mac-control
  4. 在 Claude Code 中输入 /mcp

    应能看到 MCP Mac Control 在列表中并显示已连接

  5. 试一试

    用 MCP Mac Control 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Claude Code 说正在使用 MCP Mac Control,或回答中出现 MCP Mac Control 的工具名称,就表示连接成功

5 项可选设置(不填也能用)

上面的命令不填这些也能用。想调整时再按开发者的说明添加。

  • MACCTL_SAFE_MODE Set true to invert to safe-by-default: read-only, all powers gated, confirmations on. Default false (full control).
  • MACCTL_MODE Access mode: read-only | read-write | admin. Defaults to admin (or read-only in safe mode).
  • MACCTL_CONFIRM Set true to require human approval (via MCP elicitation) on destructive ops. Default off in full control.
  • MACCTL_PATH_ALLOWLIST Comma-separated path roots the agent may touch (empty = anywhere).
  • MACCTL_PROTECTED_PATHS Comma-separated path roots that may be read but never modified/deleted (empty by default in full control).

说明仍为英文原文。

菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同

可连接 Cursor,但需要先准备

需要先在电脑上安装 Node.js(只需一次)

让 AI 帮你安装

把这段话复制到 Cursor 的对话里。AI 会先检查电脑,告诉你要改哪个文件,并且每次都等你同意。

请在这台电脑上为 Cursor 安装 MCP server MCP Mac Control,按顺序:1) 用 node -v 检查是否有 Node.js。没有的话,请让我从 https://nodejs.org/en/download 安装,不要自己安装。2) 只使用这份配置(已通过 PopNx MCP 检查):{ "mcpServers": { "mac-control": { "command": "npx", "args": [ "-y", "@dockndevai/mcp-mac-control" ] } } } 3) 告诉我要修改的文件完整路径或要运行的命令,等我同意。4) 不需要密钥。5) 按约定执行,然后确认 MCP Mac Control 的工具真的出现了。

这段话不包含你的密钥。如果需要密钥,AI 会请你自己粘贴到文件或应用的输入框里。

  1. 安装 Node.js(如果还没有)

    已经装好了吗?先检查 · 打开终端,输入这条命令后按 Enter

    node -v
    • 显示版本号(例如 v26.13.1)= 已安装,可跳过这一步
    • 显示 "command not found"(Windows 显示 "is not recognized")= 还没安装,或刚装好但需要关掉终端再重新打开
    怎么打开终端

    Mac:按 ⌘ + Space,输入 Terminal 后按 Enter

    Windows:打开“开始”菜单,输入 Windows PowerShell,然后选“打开”

    还没安装: 打开官方下载页,选择 LTS 版本和点选式安装程序:Mac 用 .pkg · Windows 用 .msi。双击后一路下一步即可,不需要 curl 命令

    打开 Node.js 下载页 ↗

    装好后关掉终端再打开,重新运行同一条命令,应显示版本号: node -v

    安装一次,所有需要 Node.js 的工具都能用

  2. 点击这个按钮打开 Cursor

    在 Cursor 中打开

    Cursor 会请你确认安装,点击 Install

  3. 在 Cursor 中以 Agent 模式打开 AI 聊天

  4. 试一试

    用 MCP Mac Control 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Cursor 说正在使用 MCP Mac Control,或回答中出现 MCP Mac Control 的工具名称,就表示连接成功

5 项可选设置(不填也能用)

上面的命令不填这些也能用。想调整时再按开发者的说明添加。

  • MACCTL_SAFE_MODE Set true to invert to safe-by-default: read-only, all powers gated, confirmations on. Default false (full control).
  • MACCTL_MODE Access mode: read-only | read-write | admin. Defaults to admin (or read-only in safe mode).
  • MACCTL_CONFIRM Set true to require human approval (via MCP elicitation) on destructive ops. Default off in full control.
  • MACCTL_PATH_ALLOWLIST Comma-separated path roots the agent may touch (empty = anywhere).
  • MACCTL_PROTECTED_PATHS Comma-separated path roots that may be read but never modified/deleted (empty by default in full control).

说明仍为英文原文。

菜单名称已于 2026年11月11日 对照 Cursor 帮助页面核实 · 你的界面可能因版本略有不同

可连接 VS Code,但需要先准备

需要先在电脑上安装 Node.js(只需一次)

让 AI 帮你安装

把这段话复制到 VS Code 的对话里。AI 会先检查电脑,告诉你要改哪个文件,并且每次都等你同意。

请在这台电脑上为 VS Code 安装 MCP server MCP Mac Control,按顺序:1) 用 node -v 检查是否有 Node.js。没有的话,请让我从 https://nodejs.org/en/download 安装,不要自己安装。2) 只使用这份配置(已通过 PopNx MCP 检查):{ "servers": { "mac-control": { "type": "stdio", "command": "npx", "args": [ "-y", "@dockndevai/mcp-mac-control" ] } } } 3) 告诉我要修改的文件完整路径或要运行的命令,等我同意。4) 不需要密钥。5) 按约定执行,然后确认 MCP Mac Control 的工具真的出现了。

这段话不包含你的密钥。如果需要密钥,AI 会请你自己粘贴到文件或应用的输入框里。

  1. 安装 Node.js(如果还没有)

    已经装好了吗?先检查 · 打开终端,输入这条命令后按 Enter

    node -v
    • 显示版本号(例如 v26.13.1)= 已安装,可跳过这一步
    • 显示 "command not found"(Windows 显示 "is not recognized")= 还没安装,或刚装好但需要关掉终端再重新打开
    怎么打开终端

    Mac:按 ⌘ + Space,输入 Terminal 后按 Enter

    Windows:打开“开始”菜单,输入 Windows PowerShell,然后选“打开”

    还没安装: 打开官方下载页,选择 LTS 版本和点选式安装程序:Mac 用 .pkg · Windows 用 .msi。双击后一路下一步即可,不需要 curl 命令

    打开 Node.js 下载页 ↗

    装好后关掉终端再打开,重新运行同一条命令,应显示版本号: node -v

    安装一次,所有需要 Node.js 的工具都能用

  2. 点击这个按钮打开 VS Code

    在 VS Code 中打开

    VS Code 会请你确认安装,点击 Install

  3. 在 VS Code 中以 Agent 模式打开 AI 聊天

  4. 试一试

    用 MCP Mac Control 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 VS Code 说正在使用 MCP Mac Control,或回答中出现 MCP Mac Control 的工具名称,就表示连接成功

5 项可选设置(不填也能用)

上面的命令不填这些也能用。想调整时再按开发者的说明添加。

  • MACCTL_SAFE_MODE Set true to invert to safe-by-default: read-only, all powers gated, confirmations on. Default false (full control).
  • MACCTL_MODE Access mode: read-only | read-write | admin. Defaults to admin (or read-only in safe mode).
  • MACCTL_CONFIRM Set true to require human approval (via MCP elicitation) on destructive ops. Default off in full control.
  • MACCTL_PATH_ALLOWLIST Comma-separated path roots the agent may touch (empty = anywhere).
  • MACCTL_PROTECTED_PATHS Comma-separated path roots that may be read but never modified/deleted (empty by default in full control).

说明仍为英文原文。

菜单名称已于 2026年11月11日 对照 VS Code 帮助页面核实 · 你的界面可能因版本略有不同

其他支持 MCP 的应用(如 Windsurf、Zed、Gemini CLI)添加方式各不相同,请在应用列表中查看

查看所有支持 MCP 的应用 →

JSON 设置在下方“开发者专用”中

卡住了?问问正在用 MCP Mac Control 的人💬 讨论 →
开发者专用:终端命令和 JSON 设置

安装在电脑上

Claude Code

claude mcp add --scope user mac-control -- npx -y @dockndevai/mcp-mac-control

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "mac-control": {
      "command": "npx",
      "args": [
        "-y",
        "@dockndevai/mcp-mac-control"
      ]
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "mac-control": {
      "command": "npx",
      "args": [
        "-y",
        "@dockndevai/mcp-mac-control"
      ]
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "mac-control": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@dockndevai/mcp-mac-control"
      ]
    }
  }
}

需要你填写的值

  • MACCTL_SAFE_MODE env
    Set true to invert to safe-by-default: read-only, all powers gated, confirmations on. Default false (full control).
  • MACCTL_MODE env
    Access mode: read-only | read-write | admin. Defaults to admin (or read-only in safe mode).
  • MACCTL_CONFIRM env
    Set true to require human approval (via MCP elicitation) on destructive ops. Default off in full control.
  • MACCTL_PATH_ALLOWLIST env
    Comma-separated path roots the agent may touch (empty = anywhere).
  • MACCTL_PROTECTED_PATHS env
    Comma-separated path roots that may be read but never modified/deleted (empty by default in full control).

说明仍为英文原文。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

一览

每周下载量i
31/周
连接方式
在你的电脑上运行
最新版本i
0.3.1
发布到注册中心i
2026年9月27日
代码最后更新i
2026年11月11日
作者
dockndevai
软件包
npm: @dockndevai/mcp-mac-control
注册状态
活跃

哪些应用可以使用它

依据这个服务器的连接方式和各应用自己的文档,检查于 2026年11月10日。

在你的电脑上运行,适用于

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

全部应用及其优缺点 →

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月15日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 dockndevai 验证,该账户拥有此仓库

  • ✓ 通过

    仍在维护

    代码最后更新于4天前

  • ✓ 通过

    有许可证

    使用 MIT

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

已公开的漏洞(OSV.dev)

尚未检查

我们检查什么 → · JSON

作者:申请重新检查或报告信息错误

讨论

提问、分享技巧或报告无法使用。按“有帮助”数量排序。

还没有帖子,欢迎第一个提问或分享。

此处内容由用户撰写,不代表 PopNx 团队。

登录后发帖

用户评价

还没有评价

登录后写评价

与“文档、表格与办公”中的其他服务器比较i

  • 星标数多于此分类中其他 3962 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 3962 个服务器的 37% 更新
  • 基础检查结果等于或优于此分类中其他 3962 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

MCP Mac Control 安全吗?

它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于4天前,最新版本(0.3.1)于2个月前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:Puter MCP, XcodeBuildMCP, Anki MCP Server, Sosumi, Zapier

功能相近的其他选择

同一分类、其他作者、命令已通过检查。官方的排在前面,再按星标排序。

如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Puter MCP

Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more

作者:HeyPuter广泛使用★ 4.4万5个月前更新

在云端运行✓ 服务方 · puter.com

XcodeBuildMCP

XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.

作者:getsentry广泛使用↓ 13万/周 共用包的下载量★ 65764个月前更新

在你的电脑上运行✓ 服务方 · xcodebuildmcp.com

Anki MCP Server

MCP server for Anki flashcards: adaptive review, notes, media, and deck management via AnkiConnect.

作者:ankimcp正在增长↓ 1136/周★ 55941天前更新

在你的电脑上运行✓ 服务方 · ankimcp.ai

Sosumi

Search and read Apple developer documentation, HIG, and WWDC transcripts as Markdown.

作者:NSHipster正在增长★ 4926天前更新

在云端运行✓ 服务方 · sosumi.ai

Zapier

Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.

作者:zapier正在增长★ 4604个月前更新

在云端运行✓ 服务方 · zapier.com
  • Puter MCP — 在云端运行,无需安装 · 不需要密钥
  • XcodeBuildMCP — 需要安装在电脑上 · 不需要密钥
  • Anki MCP Server — 需要安装在电脑上 · 不需要密钥
  • Sosumi — 在云端运行,无需安装 · 不需要密钥
  • Zapier — 在云端运行,无需安装 · 不需要密钥 · 在 Claude 的目录中

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

mcp-mac-control

A Model Context Protocol server that gives an AI agent full control of a Mac — like a person sitting at it. Shell, AppleScript, files, processes, and human-like GUI control: move, click, double/right-click, drag, scroll, type, and press key combos — with a screenshot + window/screen-size perception loop.

⚠️ This server is full-control by default. It starts in admin mode with command execution, deletes, and GUI input all enabled. That is powerful and dangerous: anything the agent reads (a web page, an email, a file) could contain a prompt injection that then runs arbitrary code on your Mac. Only connect it to an agent and content you trust. Set `MACCTL_SAFE_MODE=true` to flip the whole thing to safe-by-default. If you want safe-by-default as the baseline, use the sibling @dockndevai/mcp-macos instead.

Part of the dockndevai MCP server suite.

What it gives an agent (26 tools)

Perceive — screenshot, get_screen_size, list_windows, get_frontmost_app, list_apps, system_info, list_directory, read_file, list_processes, get_clipboard

Operate the desktop like a human — move_mouse, click (left/right/double), drag, scroll, type_text, key_press (with ⌘/⌥/⌃/⇧), activate_app, quit_app, open, set_clipboard, notify, write_file

Full power — run_command (any program, no shell unless you ask for one), run_applescript (AppleScript/JXA — drive any scriptable app), delete_path (→ Trash), kill_process

The classic loop: screenshot → decide → click/type/drag/scroll → screenshot again.

Install

npx -y @dockndevai/mcp-mac-control

macOS only. You'll need to grant the host app (Terminal, your IDE, Claude Desktop, …) macOS permissions the first time each capability is used:

  • Screen Recording → for screenshot
  • Accessibility → for GUI input (click, type_text, drag, scroll, key_press) and list_windows
  • Automation → for AppleScript / app control
  • Mouse control uses cliclick: brew install cliclick

Configure (Claude Code)

claude mcp add mac-control -- npx -y @dockndevai/mcp-mac-control

That's it — it's full-control by default. To scope it down, add env flags (see below). See docs/CLIENTS.md for Claude Desktop / Cursor / Codex / VS Code / Windsurf, and .env.example for every variable.

Dialing the control up or down

Full control needs no configuration. Everything below is about restricting it:

VariableDefaultEffect
MACCTL_SAFE_MODEfalsetrue → read-only, every power gated, confirmations on (safe-by-default)
MACCTL_MODEadminread-only / read-write / admin — caps which tools are registered
MACCTL_ALLOW_EXECtrueshell / AppleScript / kill
MACCTL_ALLOW_DELETEtruedelete to Trash
MACCTL_ALLOW_INPUTtrueGUI input (mouse/keyboard)
MACCTL_CONFIRMfalsetrue → run_command, run_applescript, delete_path, kill_process pause for human approval via MCP elicitation. The prompt shows the tool, the exact arguments (command text, script, path) and a fingerprint; for delete_path, kill_process and file overwrites the target's version is pinned across the prompt and the action is refused if it changed; a prompt nobody answers is a refusal; trashing a folder also needs its path typed
MACCTL_REQUIRE_HUMAN_APPROVALfalsetrue → implies MACCTL_CONFIRM, and those actions are refused if the client cannot elicit (instead of running on the MACCTL_ALLOW_* flags alone)
MACCTL_PATH_ALLOWLIST(empty = anywhere)confine file ops to these roots
MACCTL_PROTECTED_PATHS(empty)roots readable but never modified/deleted
MACCTL_COMMAND_ALLOWLIST(empty = any)restrict run_command to these programs
MACCTL_DRY_RUNfalsevalidate + log writes without executing
MACCTL_AUDIT_LOGtrueJSON audit line per guarded op, to stderr

The policy engine (src/security.ts) is the same graduated model as the rest of the suite — this server just ships it wide open by default. See SECURITY.md.

AI risk guard (optional)

For an extra layer on top of the static rules, this server can consult a local laya-guard daemon before running a high-risk tool (run_command, run_applescript, delete_path). The guard classifies the actual command — deterministic patterns plus a local decision model — as allow / confirm / block. It runs *after* the deterministic policy and can only tighten (add a confirm or block), never grant.

VariableDefaultEffect
MACCTL_GUARD_MODEoffmonitor (log what it would do) / enforce (block or require confirm)
MACCTL_GUARD_URLhttp://127.0.0.1:8799the local laya-guard daemon
MACCTL_GUARD_TIMEOUT_MS2000per-check timeout
MACCTL_GUARD_FAIL_CLOSEDconfirmwhen the daemon is unreachable in enforce mode: confirm or allow

Run the daemon with pipx install laya-guard && laya-guard. Start in monitor to see what it catches, then switch to enforce.

Developing

npm install

npm run build echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | node dist/index.js # list tools npm test

Licence

MIT