Apple
Apple MCP Servers is a collection of MCP servers for native Apple applications on macOS.
You can connect large language models to local macOS data. Supports Notes, Messages, Contacts, Mail, Reminders, Calendar, and Maps.
Features
- Reads, creates, updates, moves, and deletes Apple Notes and folders.
- Reads message history, searches conversations, and sends Apple Messages.
- Manages Apple Contacts, groups, and contact details.
- Reads, sends, searches, flags, and manages Apple Mail.
- Creates, updates, completes, and manages Apple Reminders and lists.
- Creates, updates, and manages Apple Calendar events.
- Searches locations, gets directions, and drops pins in Apple Maps.
- Restricts destructive operations via configurable safety modes.
Use Cases
- Search notes for specific recipes or meeting minutes.
- Send an iMessage to a contact about arrival times.
- Create a new contact entry for a business associate.
- Mark dentist appointment reminders as completed.
- Create a meeting in the Work calendar with advance alerts.
- Search for coffee shops near specific locations in Apple Maps.
- Find unread emails containing invoice attachments.
How To Use It
1. Install the Apple MCP Servers 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-mcp2. Add these MCP servers to your MCP clients.
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
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-mcpClaude Desktop
{
"mcpServers": {
"apple-notes": {
"command": "npx",
"args":["@griches/apple-notes-mcp", "--read-only"]
},
"apple-messages": {
"command": "npx",
"args":["@griches/apple-messages-mcp", "--confirm-destructive"]
},
"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"]
}
}
}3. Configure your MCP client to run the built JavaScript 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"]
}
}
}Available Tools
Apple Notes Tools
| Tool | Description |
|---|---|
list_folders | List all folders in Apple Notes |
create_folder | Create a new folder |
list_notes | List all notes in a folder |
get_note | Get the full content of a note by title |
create_note | Create a new note (HTML body) in a folder |
update_note | Update the body of an existing note |
move_note | Move a note from one folder to another |
append_to_note | Append HTML content to an existing note |
delete_note | Delete a note |
delete_folder | Delete a folder and all its notes |
search_notes | Search notes by keyword in titles and body content |
Apple Messages Tools
| Tool | Description |
|---|---|
list_chats | List recent chats with last message preview |
get_chat_messages | Get message history for a specific chat (with optional date range filtering) |
search_messages | Search messages by text content |
send_message | Send an iMessage or SMS |
get_chat_participants | Get participants of a chat |
Apple Contacts Tools
| Tool | Description |
|---|---|
list_groups | List all groups in Apple Contacts |
list_contacts | List all contacts, optionally filtered by group |
get_contact | Get full details of a contact (emails, phones, addresses, etc.) |
search_contacts | Search contacts by name |
create_contact | Create a new contact with optional email, phone, organization |
update_contact | Update an existing contact’s details |
delete_contact | Delete a contact by name |
create_group | Create a new group |
delete_group | Delete a contact group |
add_contact_to_group | Add a contact to a group |
remove_contact_from_group | Remove a contact from a group |
Apple Reminders Tools
| Tool | Description |
|---|---|
list_lists | List all reminder lists |
create_list | Create a new reminder list |
list_reminders | List reminders with a due date in a list (optionally include completed) |
get_reminder | Get full details of a reminder by name or id |
create_reminder | Create a new reminder with optional due date, notes, and priority |
update_reminder | Update an existing reminder’s details (by name or id) |
complete_reminder | Mark a reminder as completed (by name or id) |
uncomplete_reminder | Mark a completed reminder as incomplete (by name or id) |
delete_reminder | Delete a reminder (by name or id) |
delete_list | Delete a reminder list and all its reminders |
search_reminders | Search reminders by name across lists |
Apple Calendar Tools
| Tool | Description |
|---|---|
list_calendars | List all calendars |
list_all_events | List events across all calendars within a date range |
list_events | List events in a specific calendar within a date range |
get_event | Get full details of an event by summary/title, including alerts |
create_event | Create a new event with date, time, location, description, and optional alerts |
update_event | Update an existing event’s details, including alerts |
delete_event | Delete an event by summary/title |
search_events | Search events by summary/title across calendars |
Apple Maps Tools
| Tool | Description |
|---|---|
search_location | Search for a location in Apple Maps |
get_directions | Get directions between two locations (driving, walking, or transit) |
drop_pin | Drop a pin at specific coordinates |
open_address | Open a specific address in Apple Maps |
save_to_favorites | Open a location in Maps so you can save it as a favorite |
Apple Mail Tools
| Tool | Description |
|---|---|
list_mailboxes | List all mailboxes across accounts with unread counts |
list_messages | List recent messages in a mailbox, optionally filtered to unread only |
get_message | Get the full content of an email by ID |
search_messages | Search emails by subject or sender across mailboxes |
send_email | Send an email with optional CC/BCC (supports multiple recipients) |
get_unread_count | Get unread count for a mailbox or all mailboxes |
move_message | Move an email to a different mailbox |
mark_read | Mark an email as read or unread |
delete_message | Delete an email (moves to trash) |
flag_message | Flag or unflag an email message |
FAQs
Q: Do the Apple applications need to be open?
A: AppleScript-based servers require the application to be running. Calendar and Reminders use EventKit and run independently.
Q: How do I read the Messages database?
A: You must grant Full Disk Access to your terminal application in macOS System Settings.
Q: Can Apple Maps return structured location data?
A: Apple Maps only provides visual results. The application lacks a programmatic way to return search results or route details.
Q: How do I stop the AI from deleting my data?
A: You can append the --read-only flag or the --confirm-destructive flag to the startup command.
Latest MCP Servers
Notion
Log Mcp
Apple
Featured MCP Servers
Notion
Claude Peers
Excalidraw
FAQs
Q: What exactly is the Model Context Protocol (MCP)?
A: MCP is an open standard, like a common language, that lets AI applications (clients) and external data sources or tools (servers) talk to each other. It helps AI models get the context (data, instructions, tools) they need from outside systems to give more accurate and relevant responses. Think of it as a universal adapter for AI connections.
Q: How is MCP different from OpenAI's function calling or plugins?
A: While OpenAI's tools allow models to use specific external functions, MCP is a broader, open standard. It covers not just tool use, but also providing structured data (Resources) and instruction templates (Prompts) as context. Being an open standard means it's not tied to one company's models or platform. OpenAI has even started adopting MCP in its Agents SDK.
Q: Can I use MCP with frameworks like LangChain?
A: Yes, MCP is designed to complement frameworks like LangChain or LlamaIndex. Instead of relying solely on custom connectors within these frameworks, you can use MCP as a standardized bridge to connect to various tools and data sources. There's potential for interoperability, like converting MCP tools into LangChain tools.
Q: Why was MCP created? What problem does it solve?
A: It was created because large language models often lack real-time information and connecting them to external data/tools required custom, complex integrations for each pair. MCP solves this by providing a standard way to connect, reducing development time, complexity, and cost, and enabling better interoperability between different AI models and tools.
Q: Is MCP secure? What are the main risks?
A: Security is a major consideration. While MCP includes principles like user consent and control, risks exist. These include potential server compromises leading to token theft, indirect prompt injection attacks, excessive permissions, context data leakage, session hijacking, and vulnerabilities in server implementations. Implementing robust security measures like OAuth 2.1, TLS, strict permissions, and monitoring is crucial.
Q: Who is behind MCP?
A: MCP was initially developed and open-sourced by Anthropic. However, it's an open standard with active contributions from the community, including companies like Microsoft and VMware Tanzu who maintain official SDKs.



