MCP

Use apple-tools-mcp to call Apple apps on a local Mac

For anyone who wants a model to use Apple apps such as Mail, Calendar, Reminders, and Messages on a local macOS machine; the prerequisite is Python 3.11+, and you should first run the official claude mcp add command instead of treating a capability description as a tool name.

Official source · Apple-MCPs

Install

claude mcp add --transport stdio --scope project apple-tools -- uvx apple-tools-mcp

Who it's for

If you're on macOS and want a model to use Apple apps and system capabilities on the local machine—create reminders, send messages, view calendars, search mail, manage files, and get directions—this service fits. The official description says these MCP services let AI clients use Apple apps and macOS tools.

The prerequisites are Python 3.11+ and a Mac. The publicly visible official documentation does not name clients as a list, so do not invent client names or assume that data will stay on the local machine.

This is not suitable for non-Mac environments or for anyone who interprets “running locally” as “data never leaves this computer”: the official documentation states that clients may send returned data to model providers, and Apple apps may sync through iCloud or other accounts. Mail attachments are disabled by default and are enabled only after APPLE_MAIL_MCP_ALLOWED_ATTACHMENT_ROOT is set to a dedicated directory.

Complete your first attempt in 3 minutes

Prerequisite: the machine must be running macOS and have an environment that can run the uvx and claude commands. For the first attempt, run only the official installation command; do not treat “search mail” or “check calendars” as function names—the original text does not provide any function names.

Use only this official installation path, retaining all parameters:

claude mcp add --transport stdio --scope project apple-tools -- uvx apple-tools-mcp

Both --transport stdio and --scope project must be retained. The installation creates an MCP service named apple-tools in the current project scope; the actual process is uvx apple-tools-mcp.

Make this official command the first attempt. A success signal is that the command exits normally, the project shows an apple-tools service, and it can launch uvx apple-tools-mcp over stdio. At this point, no callable tool function has been named; before a function name appears, do not send messages, create reminders, or modify files. Sending a message or creating a reminder writes to local Messages or Reminders, and the confirmation point is that a new item appears in the corresponding Apple app.

Use cases

Case one: search local mail. The official capabilities include search mail. The visible documentation does not provide a function name, mailbox scope, or return fields, so the executable step is still to complete the claude mcp add command above. The success signal is that the service is registered; until a specific tool name is visible, do not pass off the words “search mail” as a call. Mail attachments remain unavailable unless the permitted directory is set.

Case two: view calendars. The official capabilities include check calendars alongside search mail, and likewise provide no function name. First confirm that the apple-tools service has been installed with the official command, then wait for the client to list calendar-related tools. Stop if no tool is visible. Viewing calendars may still send event contents to the model provider and sync them through iCloud; local execution does not mean that data stays local.

Usage boundaries

Python 3.11+ and macOS are required. Mail attachments are disabled until APPLE_MAIL_MCP_ALLOWED_ATTACHMENT_ROOT is set. Running locally does not mean that data stays local. Apart from the claude mcp add --transport stdio --scope project command above, do not list a second installer alongside it. The official documentation does not provide a command for revoking a sent message or a created reminder.