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.

概覽

AI 產生的概覽

本機 macOS MCP 伺服器,讓助理透過 Apple 自動化讀取與修改 Apple 應用程式、iWork 文件、檔案與媒體。

可以做什麼
  • 讀取並搜尋郵件、行事曆、提醒事項、備忘錄與聯絡人,並建立、更新或刪除其中項目
  • 開啟、編輯、儲存並匯出 Pages、Numbers、Keynote 與 TextEdit 文件,包含儲存格範圍與投影片
  • 瀏覽 Safari 標籤頁與閱讀列表,控制音樂播放與播放清單,管理照片相簿、匯入與匯出
  • 在設定的根目錄內列出、讀取、建立與複製檔案,用 Spotlight 搜尋檔名,並在 Finder 中顯示項目
  • 探索已安裝的應用程式、啟動 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。
安裝前請注意
寫入類工具會操作真實資料:可寄送郵件與訊息、修改行事曆、提醒事項、聯絡人與文件,變更可能同步給他人。APPLE_MCP_FILE_ROOTS 只限制通用檔案工具,不限制 Apple 應用程式。列入允許清單的捷徑可執行其內含的任何動作,啟用前請先檢查。唯讀模式與群組篩選並非授權機制。回傳的資料會進入用戶端的模型工作階段,逾時可能留下部分變更。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Apple Productivity Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

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

App / groupToolsCoverage
Mail12Accounts and mailboxes; message metadata/body; sender/subject search; visible drafts; send; read/flag status; move/trash; mailbox creation; attachments.
Calendar12Calendars and events; create/update/delete events; event notes, attendees and recurrence; calendar creation/rename/deletion; display alarms and event URLs.
Reminders15Accounts/lists; reminders and title search; notes, priorities and due dates; create/update/delete; list management; complete/reopen; flags and notification dates.
Notes9Accounts/folders; list/search/read notes; create folders and HTML notes; update and delete unlocked notes.
Contacts9Search and contact details; groups and members; create contacts/groups; update fields; add/remove group membership.
Pages8List/open/create documents; read/replace/append body text; save; export PDF/DOCX; close with unsaved-change protection.
Numbers11Documents, sheets, tables; create tables; read/write bounded cell ranges; save; export PDF/XLSX; close.
Keynote9Documents and slides; create presentations; add/update title, body and presenter notes; save; export PDF/PPTX; close.
TextEdit7Documents; create/open/read/replace/append text; save RTF; close.
Safari6Tabs and page text; open/navigate/close tabs with URL checks; Reading List.
Music9Playlists, tracks and search; metadata; create playlists and add tracks; playback and volume.
Photos9Albums/items/search; metadata; create albums; add items; import/export; update metadata.
Messages3Accounts/chats; send text to an explicit recipient through an explicit account.
Files8Bounded folder listing; metadata/text; create text files/folders; copy; Spotlight filename search; Finder Trash.
Finder2Selected item metadata; reveal an allowed path.
Shortcuts2 + 1 opt-inList shortcuts/folders; run only names in the configured allowlist.
System2Discover installed apps/configuration; launch a known Apple app.

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

sh
codex mcp add apple-productivity-local -- \  npx -y @gambadio/apple-productivity-mcp@latestcodex mcp get apple-productivity-local

Claude Code

sh
claude mcp add --transport stdio --scope user apple-productivity-local -- \  npx -y @gambadio/apple-productivity-mcp@latestclaude mcp get apple-productivity-local

Claude Desktop and other JSON-configured clients

Add this to the client's MCP configuration, then restart it:

json
{  "mcpServers": {    "apple-productivity-local": {      "command": "npx",      "args": ["-y", "@gambadio/apple-productivity-mcp@latest"]    }  }}

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.

VariableDefaultBehavior
APPLE_MCP_ENABLED_GROUPSAll groupsComma-separated group names from the table above, lowercase: e.g. mail,calendar,reminders,notes. Empty means all. Unknown groups fail startup.
APPLE_MCP_READ_ONLYfalse1 or true registers read-only tools only. 0 or false enables the selected groups' write tools as well.
APPLE_MCP_FILE_ROOTS[]JSON array of existing absolute directories for Files tools, Finder reveal, Mail attachment saving, and Shortcut file input. Required when using those operations. Paths resolving outside these roots are rejected.
APPLE_MCP_SHORTCUTS[]JSON array of shortcut names/identifiers permitted to run. An empty list omits apple_shortcuts_run entirely.

Example with Notes, reminders, files, and one permitted Shortcut:

json
{  "mcpServers": {    "apple-productivity-local": {      "command": "npx",      "args": ["-y", "@gambadio/[email protected]"],      "env": {        "APPLE_MCP_ENABLED_GROUPS": "system,notes,reminders,files,finder,shortcuts",        "APPLE_MCP_FILE_ROOTS": "[\"/Users/YOUR_NAME/Documents\"]",        "APPLE_MCP_SHORTCUTS": "[\"Prepare daily note\"]"      }    }  }}

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

sh
npm cinpm testnpm run docs:toolsnpm audit --omit=devnpm pack --dry-run

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:

sh
npm run test:integration

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.

sh
codex mcp remove apple-productivity-localclaude mcp remove apple-productivity-local --scope user

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
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

2
  1. v3.0.0最新Oct 12, 2026
  2. v2.1.1Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分