Apple Apps MCP
This server provides AI tools with controlled access to core Apple apps on macOS, enabling reading, writing, and automation with integrated safety guardrails.
Permissions Management
Check the status of Calendar, Reminders, and Automation permissions
Request Calendar, Reminders, or Automation permissions
Calendar
List calendar events within a specified date range
Create new events (with title, start/end times, notes, and optional calendar selection)
Reminders
List reminders (optionally filtering by completed status)
Create new reminders (with title, notes, due date, and optional list selection)
Complete a reminder by ID (requires confirmation + reason)
Notes
Search Apple Notes by query
Read a specific note by ID
Create a new note (with title, body, and optional folder)
Search emails by subject or sender
Read a specific email by ID
Create a new draft (with recipient(s), subject, and body)
Send an existing draft by ID (requires confirmation + reason)
Shortcuts
List all local Apple Shortcuts
Run a Shortcut by name (with optional input) (requires confirmation + reason)
Music
Search the Apple Music library
Play music (resume playback or play a specific track by ID)
Pause Apple Music playback
Apple MCP
Apple MCP is a local macOS app and MCP server for giving AI tools controlled access to Apple apps.
It includes a SwiftUI setup app for permissions and client configuration, plus a TypeScript stdio MCP server for clients like Codex, Claude Code, Claude Desktop, Raycast, and any other MCP-compatible app.
Features
Native macOS setup app with integration toggles and permission status.
Calendar and Reminders access through EventKit.
Notes, Mail, Music, and Shortcuts adapters through local macOS automation surfaces.
Local MCP server over stdio.
Client setup helpers for Codex and Claude.
Safety guardrails for risky actions like sending mail, running shortcuts, and completing reminders.
Related MCP server: app-store-connect-mcp-server
MCP Tools
Apple MCP exposes these tools:
apple_permissions_statusapple_request_permissioncalendar_list_eventscalendar_create_eventreminders_listreminders_createreminders_completenotes_searchnotes_readnotes_createmail_searchmail_readmail_create_draftmail_send_draftshortcuts_listshortcuts_runmusic_searchmusic_playmusic_pause
Risky tools require confirm: true and a short reason.
Download
Prebuilt releases are available on the Releases page.
The app is signed with a Developer ID certificate and notarized by Apple, so it opens normally with no Gatekeeper warnings — just drag Apple MCP to your Applications folder.
Requirements
macOS 26 or newer
Xcode command line tools / Swift toolchain
Node.js 20 or newer
npm
Build And Run
npm install
npm run build
swift build
./script/build_and_run.shThe app stores local preferences at:
~/.apple-apps-mcp/config.jsonRun The MCP Server
npm run dev:mcpAfter building, you can register the server manually:
codex mcp add apple-apps -- node /absolute/path/to/dist/mcp/index.js
claude mcp add apple-apps -- node /absolute/path/to/dist/mcp/index.jsThe setup app can also write or show client config for supported AI apps.
Permissions
Calendar and Reminders use native EventKit permissions. The setup app owns the foreground permission prompt and runs a localhost-only EventKit bridge so MCP calls share the approved app context.
Notes, Mail, Music, and Shortcuts may trigger macOS Automation prompts on first use.
Development
npm test
npm run build
swift build
./script/build_and_run.sh --verifyThe Codex app Run button is wired through:
.codex/environments/environment.tomlMaintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/0xatrilla/Apple-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server