Apple MCP
README.md
# π Apple MCP - Better Siri that can do it all :)
> **Plot twist:** Your Mac can do more than just look pretty. Turn your Apple apps into AI superpowers!
Love this MCP? Check out supermemory MCP too - https://mcp.supermemory.ai
Click below for one click install with `.dxt`
<a href="https://github.com/supermemoryai/apple-mcp/releases/download/1.0.0/apple-mcp.dxt">
<img width="280" alt="Install with Claude DXT" src="https://github.com/user-attachments/assets/9b0fa2a0-a954-41ee-ac9e-da6e63fc0881" />
</a>
[](https://smithery.ai/server/@Dhravya/apple-mcp)
<a href="https://glama.ai/mcp/servers/gq2qg6kxtu">
<img width="380" height="200" src="https://glama.ai/mcp/servers/gq2qg6kxtu/badge" alt="Apple Server MCP server" />
</a>
## π€― What Can This Thing Do?
**Basically everything you wish your Mac could do automatically (but never bothered to set up):**
### π¬ **Messages** - Because who has time to text manually?
- Send messages to anyone in your contacts (even that person you've been avoiding)
- Read your messages (finally catch up on those group chats)
- Schedule messages for later (be that organized person you pretend to be)
### π **Notes** - Your brain's external hard drive
Full Apple Notes management via MCP β search, list, read, create, update, append, delete, and open notes. Each note gets a stable **synthetic ID** (`folder::creationDate::title`) you can reuse for follow-up operations.
| Operation | What it does |
|-----------|--------------|
| `search` | Find notes by keyword in title or body (optional `folderName`) |
| `list` | List notes across all folders, or filter with `folderName` |
| `folders` | List all Notes folders |
| `read` | Read full note body by `noteId` or `title` + optional `folderName` |
| `create` | Create a note (auto-creates folder if missing) |
| `update` | Replace entire note body |
| `append` | Append text to an existing note (use `\n` for line breaks) |
| `delete` | Delete a note |
| `open` | Open a note in the Notes app |
**Note IDs:** After `create`, `list`, or `search`, copy the `ID:` line from results. Use it with `read`, `append`, `update`, `delete`, or `open` to target the exact note β even when titles duplicate.
**Example MCP calls:**
```json
{ "operation": "create", "title": "Sprint Goals", "body": "- Ship feature\n- Write tests", "folderName": "Work" }
```
```json
{ "operation": "append", "noteId": "Work::Friday, May 30, 2026 at 10:00:00 AM::Sprint Goals", "body": "\n---\nDone: tests" }
```
```json
{ "operation": "read", "noteId": "Work::Friday, May 30, 2026 at 10:00:00 AM::Sprint Goals" }
```
Requires **Automation β Notes** permission for your terminal or Cursor.
### π₯ **Contacts** - Your personal network, digitized
- Find anyone in your contacts without scrolling forever
- Get phone numbers instantly (no more "hey, what's your number again?")
- Actually use that contact database you've been building for years
### π§ **Mail** - Email like a pro (or at least pretend to)
Full inbox triage via MCP β no OpenClaw required. Fast SQLite search plus Mail.app actions for organization.
| Operation | What it does |
|-----------|--------------|
| `overview` | Inbox dashboard β unread counts, recent unread, mailbox breakdown, top senders |
| `unread` / `search` / `latest` | List and find messages (SQLite index, ~50ms) |
| `read` / `open` | Read full body from `.emlx` or open in Mail.app |
| `draft` | Create a new draft (saved for review, not auto-sent) |
| `reply` / `forward` | Create reply or forward drafts from a message ID |
| `move` | Move messages to a mailbox (Archive, project folders, etc.) |
| `markRead` | Mark messages read or unread in batch (max 20 IDs) |
| `senders` | Top senders analytics β spot newsletter overload |
| `accounts` / `mailboxes` / `stats` | Account and mailbox discovery |
**Inbox zero workflow:** `overview` β `search` for urgent items β `reply`/`draft` for responses β `move` to Archive β `markRead` for the rest.
**Message IDs:** Returned by `search`, `unread`, `overview`, and `latest`. Reuse with `read`, `open`, `reply`, `forward`, `move`, and `markRead`.
Requires **Full Disk Access** (SQLite index) and **Automation β Mail** (move, reply, mark read).
### β° **Reminders** - For humans with human memory
Full Apple Reminders management when [remindctl](https://github.com/steipete/remindctl) is installed (`brew install steipete/tap/remindctl`). Uses EventKit for fast list/search/complete/delete with iCloud sync β no OpenClaw required.
| Operation | What it does |
|-----------|--------------|
| `lists` / `list` | List all reminder lists |
| `show` | Show reminders by filter: today, tomorrow, week, overdue, upcoming, completed, all, or a date |
| `search` | Search reminder titles and notes |
| `info` | Get full details for a reminder by ID |
| `create` | Create a reminder (remindctl preferred; AppleScript fallback) |
| `edit` | Update title, notes, due date, list, or priority |
| `complete` | Mark one or more reminders complete by ID |
| `delete` | Delete reminders by ID |
| `createList` | Create a new reminder list |
| `open` | Open a reminder, list, or the Reminders app |
| `status` | Check remindctl install and permission status |
**Reminder IDs:** `show`, `search`, and `create` return stable IDs you can reuse with `info`, `edit`, `complete`, `delete`, and `open`.
**Setup:**
```bash
brew install steipete/tap/remindctl
remindctl authorize
```
Requires **Reminders** permission for your terminal or Cursor.
### π
**Calendar** - Time management for the chronically late
- Create events faster than you can double-book yourself
- Search for that meeting you're definitely forgetting about
- List upcoming events (spoiler: you're probably late to something)
- Open calendar events directly (skip the app hunting)
### πΊοΈ **Maps** - For people who still get lost with GPS
- Search locations (find that coffee shop with the weird name)
- Save favorites (bookmark your life's important spots)
- Get directions (finally stop asking Siri while driving)
- Create guides (be that friend who plans everything)
- Drop pins like you're claiming territory
## π The Magic of Chaining Commands
Here's where it gets spicy. You can literally say:
_"Read my conference notes, find contacts for the people I met, and send them a thank you message"_
And it just... **works**. Like actual magic, but with more code.
## π Installation (The Easy Way)
### Option 1: Smithery (For the Sophisticated)
```bash
npx -y install-mcp apple-mcp --client claude
```
For Cursor users (we see you):
```bash
npx -y install-mcp apple-mcp --client cursor
```
### Option 2: Manual Setup (For the Brave)
<details>
<summary>Click if you're feeling adventurous</summary>
First, get bun (if you don't have it already):
```bash
brew install oven-sh/bun/bun
```
Then add this to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"apple-mcp": {
"command": "bunx",
"args": ["--no-cache", "apple-mcp@latest"]
}
}
}
```
</details>
## π¬ See It In Action
Here's a step-by-step video walkthrough: https://x.com/DhravyaShah/status/1892694077679763671
(Yes, it's actually as cool as it sounds)
## π― Example Commands That'll Blow Your Mind
```
"Send a message to mom saying I'll be late for dinner"
```
```
"Find all my AI research notes and email them to sarah@company.com"
```
```
"Add follow-up items to my Work/Sprint Goals note"
```
```
"List all folders in Apple Notes, then create a meeting note in Work"
```
```
"Create a reminder to call the dentist tomorrow at 2pm"
```
```
"Show me my calendar for next week and create an event for coffee with Alex on Friday"
```
```
"Find the nearest pizza place and save it to my favorites"
```
## π οΈ Local Development (For the Tinkerers)
```bash
git clone https://github.com/dhravya/apple-mcp.git
cd apple-mcp
bun install
bun run index.ts
```
Now go forth and automate your digital life! π
---
_Made with β€οΈ by supermemory (and honestly, claude code)_
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues