Fast local Apple Mail MCP: indexed search, full-text bodies, verified sends, triage. macOS.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Runs locally on your Mac. It opens the Mail store read-only, returns only what a client asks for, and sends only when the client explicitly calls the send tool. No third-party relay, no cloud copy of your mail.
Use Claude Code, Claude Desktop, Codex, Cursor, VS Code, or any local MCP client to search, read, triage, and send email through Apple Mail β your mailbox becomes something you can ask, search and delegate to β find anything in seconds, file hundreds of messages through a reviewed plan, send polished mail as the right identity, and let Exchange deliver scheduled messages even while your Mac is asleep.

π Ask your mailbox questions. "What did Stefan send me about the memo last week?" Search runs at database speed β sender, mailbox, dates, unread, attachments β and reconstructs whole conversations.
π³οΈ Find what Mail itself can't. Mail's built-in search only skims the first line of most messages. apple-mail-mcp indexes every message body on your Mac β and for Exchange accounts it even fetches the bodies Mail never downloaded, straight from your own mailbox on the server. Queries that returned nothing return twenty.
π Send as the right you. Work mail through the work lane, personal through Gmail β one parameter picks the identity. Every message is composed from scratch as clean, standards-correct email that renders everywhere, including Outlook (the AppleScript compose path that arrives blank in Outlook is the reason this project exists).
β° Schedule like "Send Later", but scriptable. A scheduled message is frozen in full β attachments, identity, exact text. Exchange can execute it server-side at the requested time, lid closed; other providers use a local background sender and deliver on its next pass (or just after the Mac wakes).
ποΈ Triage at scale, without fear. "File these 40 newsletters" becomes a reviewable plan: nothing moves until it is approved, every message is re-checked before it is touched, and the result is verified against Mail's own records afterward. Delete means Mail's Trash β nothing is ever erased.
π Draft where your drafts live. Compose into your real Exchange Drafts folder, ready to open in Outlook or OWA β created, never auto-sent.
Every other Apple-Mail MCP drives AppleScript for both finding and acting. This one doesn't β and it shows:
| Operation | AppleScript whose-clause | apple-mailbox-mcp |
|---|---|---|
| π Search 300k messages | seconds-to-timeout | milliseconds |
| π― Address one message in a 71k mailbox | 7β10 s (measured) | < 0.1 ms |
| βοΈ Send mail | body renders blank in Outlook | renders everywhere, plain+HTML |
| β° Schedule mail | β | server-side on Exchange; reliable local queue everywhere else |
| ποΈ Bulk triage | one call per message, fire-and-forget | one reviewed plan, one apply, verified |
Every number above was measured on a live ~300,000-message store; the script and full method are in docs/benchmarks.md.
If the benchmarks hold up on your mailbox, a β helps others find this.
EMAIL_MCP_READ_ONLY=1 and only the 11
non-mutating mail tools exist in the session. Search may still maintain its
local body index, and attachment retrieval writes the requested file to the
configured temporary directory.~/.email-mcp/graph/.apple-mail-mcp status gives one readable readiness,
scheduling and recovery screen. apple-mail-mcp doctor provides the complete
diagnostic detail and an exact fix for anything red.Grant Full Disk Access to your terminal app (System Settings β Privacy & Security β Full Disk Access), then quit and reopen the terminal. This is Apple's one manual toggle β there is no pop-up for it.
Install and set up:
Register with your client β one line for Claude Code:
or the same JSON block for Claude Desktop / Cursor / VS Code
(claude_desktop_config.json / .cursor/mcp.json / .vscode/mcp.json):
Verify: uvx apple-mailbox-mcp status prints one readiness screen β
or just ask your client to run the doctor tool; every red line comes
with its exact fix. The first body-index build on a large mailbox runs in
the background and can take a few minutes; search works immediately and
completes as the index fills.
Before running setup, grant your terminal app Full Disk Access
(System Settings β Privacy & Security β Full Disk Access) β that is how
reading stays fast and local. There is no pop-up for this one; it is Apple's
one manual toggle, and setup walks you to the exact pane if it finds it
missing.
setup asks everything in plain words (bare Enter accepts the recommended
answer), offers a sending identity, builds the body-search index, verifies
the nightly refresh actually runs, and ends by printing the one block you
paste into your MCP client:
Setup ends with a clear ready verdict or numbered recovery steps. Grant
Automation β Mail when triage first asks for it. Check the installation,
the next scheduled message, and failed scheduled sends anytime with
apple-mail-mcp status; use apple-mail-mcp doctor for the full technical detail.
π‘ New to the terminal? Three things that look wrong and aren't:
brew install pipxwants a typedy(Enter alone is rejected);pipx ensurepathmay print a β οΈ β the "pipx is ready to go!" line after it is the verdict; and afterensurepath, close and reopen the terminal once soapple-mail-mcpis found.
Every client below speaks stdio MCP; the command is always uvx apple-mailbox-mcp.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
Add the same block to ~/.cursor/mcp.json (or per-project .cursor/mcp.json).
Add the same block under "servers" in .vscode/mcp.json.
Point it at uvx apple-mailbox-mcp. The wire contract is additive-only since v1.0.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/apple-mail-mcp-2)<a href="https://allmcps.com/mcp/apple-mail-mcp-2"><img src="https://allmcps.com/api/badge/apple-mail-mcp-2?style=directory" alt="Apple Mail MCP on AllMCPs" /></a>