Skip to main content
MCP server CX Codex

Apple Tools (Unified) — MCP server

A single MCP server that hands your agent ten macOS apps and tools: Mail, Calendar, Reminders, Messages, Contacts, Notes, Files, Maps, System and Shortcuts. It runs on your Mac.

Install into Claude Code · Platform CLI All methods and platforms ↓
claude mcp add --env APPLE_MAIL_MCP_SAFETY_PROFILE=<APPLE_MAIL_MCP_SAFETY_PROFILE> --env APPLE_CALENDAR_MCP_SAFETY_MODE=<APPLE_CALENDAR_MCP_SAFETY_MODE> --env APPLE_REMINDERS_MCP_SAFETY_MODE=<APPLE_REMINDERS_MCP_SAFETY_MODE> --env APPLE_FILES_MCP_SAFETY_MODE=<APPLE_FILES_MCP_SAFETY_MODE> --env APPLE_FILES_MCP_ALLOWED_ROOTS=<APPLE_FILES_MCP_ALLOWED_ROOTS> --transport stdio apple-tools-mcp -- uvx apple-tools-mcp
Open on GitHub

What Apple Tools (Unified) does

Start it with uvx apple-tools-mcp and the client gets tools that read from and write to Apple apps. Messages go out over iMessage unless you pass service_name as SMS or RCS. Mail search always needs a query — a sender, part of a subject, or *.

Safety modes decide what the tools may touch. Mail runs as safe_manage under uvx and pip, while the Claude Desktop bundles ship with full_access. Attachments stay off until you point APPLE_MAIL_MCP_ALLOWED_ATTACHMENT_ROOT at a folder. Files tools reach only the paths listed in APPLE_FILES_MCP_ALLOWED_ROOTS.

You need Python 3.11+ on macOS, and you approve permissions yourself in the system prompt or System Settings. Streamable HTTP binds to 127.0.0.1, ::1 or localhost only, because there is no remote authentication — a tunnel or public proxy would leave it open. Returned data goes to your client, which may forward it to its model provider, so running locally does not keep it local.

What it helps with

  • turn a chat message into a reminder
  • pull a mail thread by sender and reply in it
  • check the calendar and suggest a free slot
  • send an iMessage or an SMS through the paired iPhone
  • triage incoming mail and build a morning briefing

Example prompts for the agent

  • Find the latest mail from [email protected] and show it
  • Create a reminder for tomorrow with the -08:00 offset
  • Build my daily briefing from the calendar and unread messages

How to install Apple Tools (Unified)

Platform CLI

claude mcp add --env APPLE_MAIL_MCP_SAFETY_PROFILE=<APPLE_MAIL_MCP_SAFETY_PROFILE> --env APPLE_CALENDAR_MCP_SAFETY_MODE=<APPLE_CALENDAR_MCP_SAFETY_MODE> --env APPLE_REMINDERS_MCP_SAFETY_MODE=<APPLE_REMINDERS_MCP_SAFETY_MODE> --env APPLE_FILES_MCP_SAFETY_MODE=<APPLE_FILES_MCP_SAFETY_MODE> --env APPLE_FILES_MCP_ALLOWED_ROOTS=<APPLE_FILES_MCP_ALLOWED_ROOTS> --transport stdio apple-tools-mcp -- uvx apple-tools-mcp

Replace <…> with your own values. 7 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from apple-tools-mcp <command>

Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more

Questions about Apple Tools (Unified)

How do I install Apple Tools (Unified) in Claude Code?

Install uv first, then run claude mcp add apple-tools-mcp -- uvx apple-tools-mcp. Restart the client afterwards.

What does Apple Tools (Unified) do?

It exposes ten macOS apps and tools to your agent: Mail, Calendar, Reminders, Messages, Contacts, Notes, Shortcuts, Files, System and Maps. It also adds saved defaults, contact routing, undo and briefings.

Which permissions does the server need?

They differ per app: Mail and Notes use automation access, Messages needs Full Disk Access for history, and some System actions want System Events or Accessibility. You grant each one by hand in the macOS prompt or System Settings.

Similar MCP servers

All MCP servers for Agent setup: memory, context, orchestration →

From the same set4

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor