Apple MCP Servers
A collection of Model Context Protocol (MCP) servers that provide AI assistants with access to native Apple applications on macOS.
Servers
Requirements
- macOS 13+
- Node.js 18+ (22+ for Apple Messages)
- Full Disk Access granted to your terminal app (System Settings > Privacy & Security > Full Disk Access) — required for reading the Messages database
- The associated Apple app must be running for AppleScript-based servers (Notes, Contacts, Mail, Messages, Maps) — these communicate via AppleScript so the app needs to be open. Calendar and Reminders use EventKit directly and do not require the app to be open.
Safety Modes
All servers (except Apple Maps, which is UI-only) support two optional safety flags:
Claude Desktop
{
"mcpServers": {
"apple-notes": {
"command": "npx",
"args": ["@griches/apple-notes-mcp", "--read-only"]
},
"apple-messages": {
"command": "npx",
"args": ["@griches/apple-messages-mcp", "--confirm-destructive"]
}
}
}
Claude Code
claude mcp add apple-notes -- npx @griches/apple-notes-mcp --read-only
claude mcp add apple-messages -- npx @griches/apple-messages-mcp --confirm-destructive
Destructive tools by server
Installation
All servers are published on npm under the @griches scope. No cloning or building required — install and run directly with npx:
# Apple Notes
npx @griches/apple-notes-mcp
# Apple Messages
npx @griches/apple-messages-mcp
# Apple Contacts
npx @griches/apple-contacts-mcp
# Apple Reminders
npx @griches/apple-reminders-mcp
# Apple Calendar
npx @griches/apple-calendar-mcp
# Apple Maps
npx @griches/apple-maps-mcp
# Apple Mail
npx @griches/apple-mail-mcp
Claude Code
claude mcp add apple-notes -- npx @griches/apple-notes-mcp
claude mcp add apple-messages -- npx @griches/apple-messages-mcp
claude mcp add apple-contacts -- npx @griches/apple-contacts-mcp
claude mcp add apple-reminders -- npx @griches/apple-reminders-mcp
claude mcp add apple-calendar -- npx @griches/apple-calendar-mcp
claude mcp add apple-maps -- npx @griches/apple-maps-mcp
claude mcp add apple-mail -- npx @griches/apple-mail-mcp
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"apple-notes": {
"command": "npx",
"args": ["@griches/apple-notes-mcp"]
},
"apple-messages": {
"command": "npx",
"args": ["@griches/apple-messages-mcp"]
},
"apple-contacts": {
"command": "npx",
"args": ["@griches/apple-contacts-mcp"]
},
"apple-reminders": {
"command": "npx",
"args": ["@griches/apple-reminders-mcp"]
},
"apple-calendar": {
"command": "npx",
"args": ["@griches/apple-calendar-mcp"]
},
"apple-maps": {
"command": "npx",
"args": ["@griches/apple-maps-mcp"]
},
"apple-mail": {
"command": "npx",
"args": ["@griches/apple-mail-mcp"]
}
}
}
Install from Source
If you prefer to build from source:
git clone https://github.com/griches/apple-mcp.git
cd apple-mcp
# Apple Notes
cd notes && npm install && npm run build
# Apple Messages
cd ../messages && npm install && npm run build
# Apple Contacts
cd ../contacts && npm install && npm run build
# Apple Reminders
cd ../reminders && npm install && npm run build
# Apple Calendar
cd ../calendar && npm install && npm run build
# Apple Maps
cd ../maps && npm install && npm run build
# Apple Mail
cd ../mail && npm install && npm run build
Then configure your MCP client to run the built files directly:
{
"mcpServers": {
"apple-notes": {
"command": "node",
"args": ["/absolute/path/to/notes/build/index.js"]
},
"apple-messages": {
"command": "node",
"args": ["/absolute/path/to/messages/build/index.js"]
},
"apple-contacts": {
"command": "node",
"args": ["/absolute/path/to/contacts/build/index.js"]
},
"apple-reminders": {
"command": "node",
"args": ["/absolute/path/to/reminders/build/index.js"]
},
"apple-calendar": {
"command": "node",
"args": ["/absolute/path/to/calendar/build/index.js"]
},
"apple-maps": {
"command": "node",
"args": ["/absolute/path/to/maps/build/index.js"]
},
"apple-mail": {
"command": "node",
"args": ["/absolute/path/to/mail/build/index.js"]
}
}
}
Apple Notes
An MCP server that interacts with Apple Notes via AppleScript.
Tools
Usage Examples
- "List my Apple Notes folders"
- "Get my Shopping note"
- "Create a note called Meeting Notes in my Work folder"
- "Search my notes for recipes"
Apple Messages
An MCP server that reads messages from the macOS Messages database (SQLite) and sends messages via AppleScript.
Tools
Permissions
- Reading messages: Requires Full Disk Access for your terminal app to read
~/Library/Messages/chat.db - Sending messages: macOS will prompt you to allow your terminal app to control the Messages app via AppleScript
Usage Examples
- "Show my recent messages"
- "Search my messages for flight confirmation"
- "Send a message to +1234567890 saying I'm on my way"
Apple Contacts
An MCP server that interacts with Apple Contacts via AppleScript.
Tools
Usage Examples
- "List all my contacts"
- "Find contacts named John"
- "Get details for Jane Smith"
- "Create a contact for Bob Jones at Acme Corp"
Apple Reminders
An MCP server that interacts with Apple Reminders via EventKit — fast, reliable, and no dependency on the Reminders app being open.
Tools
Usage Examples
- "Show my reminder lists"
- "List reminders in my Shopping list"
- "Create a reminder to buy milk in my Groceries list"
- "Mark the dentist appointment reminder as done"
Apple Calendar
An MCP server that interacts with Apple Calendar via EventKit — fast, reliable, and no dependency on the Calendar app being open for reads. Write operations (create, update, delete) use AppleScript.
Permissions
- Calendar access: macOS will prompt you to grant calendar access the first time the server runs (System Settings > Privacy & Security > Calendars)
- Creating/updating/deleting events: macOS will prompt you to allow your terminal app to control the Calendar app via AppleScript
Tools
Usage Examples
- "List my calendars"
- "Show events in my Work calendar for next week"
- "Create a meeting tomorrow at 2pm in my Work calendar"
- "Create a dentist appointment on Friday at 10am with an alert 2 hours before"
- "Add a 30-minute alert to my Team Standup event"
- "Search for events about standup"
Apple Maps
An MCP server that interacts with Apple Maps using Maps URL schemes.
Note: Apple Maps has a very limited AppleScript/automation dictionary compared to other Apple apps. There is no supported way to programmatically read back search results, route details, or location data from Maps. As a result, these tools open Apple Maps with the requested query but cannot return structured data (e.g. addresses, coordinates, distances) to the agent. The results are visual — you'll see them in the Maps app.
Tools
Usage Examples
- "Search for coffee shops near Times Square"
- "Get walking directions from Central Park to the Met"
- "Show me 1 Apple Park Way, Cupertino on a map"
- "Drop a pin at 48.8584, 2.2945"
Apple Mail
An MCP server that interacts with Apple Mail via AppleScript.
Tools
Usage Examples
- "How many unread emails do I have?"
- "Show my recent emails in INBOX"
- "Show my unread emails in INBOX"
- "Search my email for invoices"
- "Send an email to [email protected] about the meeting"
Development
Each server is a standalone TypeScript project in its own directory.
# Run tests for Notes
cd notes
npm test
# Run tests for Messages
cd messages
npm test
License
MIT