
Apple Productivity Mcp
io.github.gambadio由 GitHub 账号 gambadio 发布v3.0.0更新于 Oct 24, 2026
Local macOS tools for Apple apps, iWork documents, files, media, and Shortcuts.
概览
本地 macOS MCP 服务器,让助手通过 Apple 自动化读写 Apple 应用、iWork 文档、文件与媒体。
- 可以做什么
- 读取并搜索邮件、日历、提醒事项、备忘录和通讯录,并创建、更新或删除其中的条目
- 打开、编辑、保存并导出 Pages、Numbers、Keynote 和 TextEdit 文档,包括单元格区域与幻灯片
- 浏览 Safari 标签页和阅读列表,控制音乐播放与播放列表,管理照片相簿、导入与导出
- 在配置的根目录内列出、读取、创建和复制文件,用 Spotlight 搜索文件名,并在访达中显示项目
- 发现已安装的应用、启动 Apple 应用,并仅运行明确列入允许清单的快捷指令
- 适用场景
- 适合在 Mac 上工作、希望助手直接操作自己的 Apple 数据和文档的场景,例如查找提醒事项、撰写备忘录、填写 Numbers 表格或把 Pages 文档导出为 PDF,且无需托管服务。
- 运行要求
- macOS、Node.js 20 或更高版本,以及支持本地 stdio 的 MCP 客户端;目标 Apple 应用需已安装并配置,Pages、Numbers、Keynote 需单独安装。每个应用都需要 macOS 自动化权限,部分位置还需“文件和文件夹”访问权限。可选设置:APPLE_MCP_ENABLED_GROUPS、APPLE_MCP_READ_ONLY、APPLE_MCP_FILE_ROOTS 和 APPLE_MCP_SHORTCUTS。
安装
在 SourceWeft 中
- 打开 控制台中的 Apple Productivity Mcp,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Apple Productivity MCP
A local macOS MCP server for working with Apple's productivity apps, documents, files, and media from Codex, Claude Code, Claude Desktop, and other stdio MCP clients.
Version 3.0.0: 133 tools across 17 groups, plus optional execution of explicitly allowlisted Shortcuts. Runs on your Mac through Apple's automation interfaces. No hosted service, listening port, subscription, or Apple API key is required.
Tool reference · Machine-readable schemas · Verification · Source documentation · Changelog · Publishing · Directory status
What it can do
The original 18 tool names remain supported. Version 3 expands the default catalog; select only the app groups you want below.
Coverage has boundaries. Apple does not expose every app feature through scripting. Messages history, Contacts deletion, Pages layout text boxes, full document styling, Calendar invitations, Reminders subtasks/tags/recurrence, arbitrary Safari JavaScript, and private Apple databases are not implemented. There are no dedicated Home, Health, Wallet, Find My, or Freeform editing tools. A user-created, allowlisted Shortcut can bridge supported actions in other apps. The complete input schemas describe exactly what each tool accepts.
Requirements
- macOS and Node.js 20 or newer.
- The Apple app you want to control must be installed and configured. Pages, Numbers, and Keynote are separate App Store installations.
- A client supporting local stdio MCP servers.
- macOS Automation permission for the launching client/process to control each app. Some file locations also require Files & Folders access.
The server starts when the MCP client connects. Each automation call uses a fixed script and JSON arguments with a timeout. iCloud, Exchange, or other account sync continues to follow the app's own settings.
Install
Codex
Claude Code
Claude Desktop and other JSON-configured clients
Add this to the client's MCP configuration, then restart it:
For a reproducible install, replace @latest with @3.0.0. A tested local .mcpb bundle and checksum are available in the GitHub release. See the packaging instructions to build one yourself. This package requires execution on the user's Mac and cannot access their apps from a Linux container or remote hosting service.
Configuration
All settings are optional. Put them in your MCP client's server environment and start a new MCP process.
Example with Notes, reminders, files, and one permitted Shortcut:
Replace YOUR_NAME and the shortcut name with values that exist on your Mac. An iCloud Drive directory can be included using its real local absolute path.
File roots constrain the generic file tools listed above; they are not a sandbox for Apple apps. iWork/TextEdit open/save/export and Photos import/export use explicit paths under the macOS permissions of those apps. Shortcuts may perform any action already contained in the allowed shortcut, including sending messages or changing data elsewhere. Inspect a shortcut before allowlisting it. App-group filtering and read-only mode control the exposed tool surface; MCP annotations are hints for clients, not an authorization system.
Example requests
- “Find reminders with ‘invoice’ in the title, then show their notes and due dates.”
- “Create a Notes folder in this account and put my meeting summary in it.”
- “Read this Pages document and export a PDF beside it.”
- “List the sheets and tables in my Numbers workbook, then fill cells B2:D6 with these values.”
- “Add a Keynote slide with this title, body, and presenter notes.”
- “Find Mail messages from this sender and save the selected attachment in my allowed Documents folder.”
- “List my Photos albums and export these selected items into an empty folder.”
- “Run my allowlisted ‘Prepare daily note’ shortcut.”
Start with discovery tools. Use returned IDs/names and inspect the tool schema for exact fields. apple_system_capabilities identifies installed apps but does not pre-authorize them or prove permissions. Write requests act on real data, so name the intended target and changes explicitly.
Data handling and safeguards
- No server-side account, telemetry service, network listener, or credential storage.
- Fixed JXA programs receive user values as JSON arguments, without interpolation into executable source. There is no arbitrary code or shell execution tool.
- New file copies refuse replacement. Text writes and document save/export require an explicit overwrite option to replace a path. Photos exports require an empty folder.
- Generic file operations require explicit roots and check resolved paths. File deletion goes through Finder Trash; there is no empty-Trash tool.
- Collection reads and text/cell ranges have limits. Locked Notes are not read or modified. Safari tab mutations compare the expected URL to guard against shifted indices.
- Read-only mode hides mutations. Every tool declares read-only, destructive, idempotent, and open-world annotations.
- Email, Messages, document changes, reminders, contacts, and media edits may sync or reach other people. A send result means submission to the app, not independently verified delivery.
- Timeouts or multi-step errors can leave partial changes. Inspect the target before retrying a write.
- Data returned to an MCP client becomes part of that client's active model session and is governed by its data controls. Local execution does not mean content stays outside the model session. JSON inputs are visible to local processes with sufficient OS privileges.
Development and verification
Tests execute the static automation programs against application fixtures, exercise filesystem boundaries in temporary folders, and initialize the actual stdio MCP server. They do not send messages or edit personal app data.
For the existing read-only Mail/Calendar/Reminders integration suite, after granting Automation permission:
Live verification is app-specific. Pages, Numbers, and Keynote were not installed on the release development Mac; their tools have fixture coverage but no live iWork verification. See verification results and limitations and implementation sources. Do not interpret the tool count as a claim that every operation has been exercised against every app/macOS version.
Troubleshooting
Automation unavailable / not authorized / timeout: open System Settings → Privacy & Security → Automation and permit the relevant Apple app for the launching client. A timeout can also reflect a busy app or slow iCloud data; do not blindly retry writes. Restart the client after permission/configuration changes.
Application cannot be found: install the app, launch it once, and verify apple_system_capabilities. OS process sandboxing can also restrict LaunchServices. Run a local client with the appropriate macOS access.
File roots required / path outside allowed roots: configure APPLE_MCP_FILE_ROOTS as a JSON array of existing absolute directories. A symlink cannot be used to escape that list. Create missing parent folders first.
Object not found / ambiguous name: rediscover the app's current account, list, document, or object ID. Names differ by language/provider. Close or rename duplicate documents before editing by name.
Contacts has unsaved changes: save or discard your pending edits in Contacts before using a mutation, because Contacts' scripting save affects all pending changes.
Tools missing: check app-group/read-only settings, start a new session, and verify mcp get/mcp list in your client. Shortcut execution appears only with a nonempty allowlist. Apps need not be installed for their tools to be advertised.
spawn ... ENOENT: ensure Node and npx are accessible to the desktop client's PATH; use the full path returned by command -v npx if needed.
Update or remove
@latest is resolved when a new MCP process starts; restart the client after publishing a release. An existing process continues running its loaded version. To retain the original app scope on v3, set APPLE_MCP_ENABLED_GROUPS=mail,calendar,reminders.
Removing registration does not delete Apple data or clear npm's cache.
Distribution
Canonical source: GitHub. Package: npm. Registry identity: io.github.gambadio/apple-productivity-mcp.
Directory status distinguishes live listings, submissions awaiting review, login requirements, and incompatible or paused destinations. Third-party listing text may lag the source release. Inclusion and recommendation are controlled by those maintainers.
License
MIT. Independent project; not affiliated with or endorsed by Apple.
来源:README.md,提交 68fdccd
工具
0版本历史
2- v3.0.0最新Oct 12, 2026
- v2.1.1Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分