Apple Mail MCP β 44 tools, SQLite millisecond search, .emlx parser, batch ops
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.
The most comprehensive Apple Mail MCP server - 53 tools with SQLite-powered millisecond search across 250K+ emails.
| Feature | Other MCPs | che-apple-mail-mcp |
|---|---|---|
| Total Tools | ~20 | 53 |
| Language | Python | Swift (Native) |
| Search Speed | Seconds (AppleScript) | Milliseconds (SQLite) |
| Search Fields | Subject/Sender | Subject/Sender/Recipient/Date |
| Batch Operations | No | Up to 50 emails per call |
| Mailbox Management | Basic | Full CRUD |
| Email Colors | No | 7 flag colors + background |
| VIP Management | No | Yes |
| Rule Management | Partial | Full CRUD |
| Signatures | No | Yes |
| Raw Headers/Source | No | Yes |
Install the plugin. It brings the signed binary, the /archive-mail command
family, the safety rules, and the staleness hook as one unit:
Then grant permissions β the setup window shows live status and links straight to the right System Settings pane:
π‘ Full Disk Access is what makes the fast SQLite read path and
batch_export_emails_markdownwork. Without it the tools still run but read little or nothing, which is easy to mistake for a bug rather than a permission. macOS does not let an app request FDA programmatically β it has to be ticked by hand β which is exactly what the setup window is there to make quick.
Registering the MCP server by itself is a supported advanced path, but it is a strictly smaller install. Choose it knowingly β nothing at runtime will tell you these are missing (#353):
| Shipped by the plugin | Present with MCP-only |
|---|---|
| All 53 MCP tools | β yes |
/archive-mail + -migrate / -rebuild-threads / -repair-synthetic-ids / -view | β the archiving SOP does not exist |
rules/compose-wrapper-free.md β what the cite-block was, and what a refused compose call means | β οΈ background: since #304 the wrapper is structurally impossible, so this rule now explains the six refusal reasons and their recipes rather than guarding against a silent fallback |
rules/confirmation-triggers.md, rules/false-positive-detection.md | β no confirmation discipline on destructive operations |
hooks/session-start.sh β staleness kill | β a session can keep running a stale binary after an upgrade |
| Developer ID signed + notarized binary | β a self-built binary is ad-hoc signed; on macOS 26 TCC cannot reliably hold FDA/Automation for it, so permissions appear to be granted and then stop working (#211) |
Version sidecar β --self-update + the #303 staleness self-check | β no sidecar next to a hand-built binary, so that check is permanently silent |
Install the binary to a local directory like ~/bin/. Avoid cloud-synced
folders (Dropbox, iCloud, OneDrive) β sync activity causes MCP connection
timeouts.
For a self-built binary to hold TCC permissions across rebuilds, sign it with a Developer ID; see Signing & Notarization. Otherwise expect to re-grant permissions after every build.
For full details see CHANGELOG.md.
attachmentFragment cluster + fallback parityattachmentFragment indent across all 3 callers + removed dead MailController.attachmentScript helper that bypassed v2.7.0's race-mitigation delays (#61, #62)CHE_MAIL_ATTACHMENT_DELAY_BETWEEN / _TRAILING (#63, #64)get_email_metadata SQLite path now falls back to AppleScript on error β last read-tool gap closed; all 8 SQLite-first read tools now have parity fallback (#71).partial.emlx + observabilityData index, causing html_body to begin with "sion: 1.0\n\n<base64>" for some Android Gmail messages β raw base64 leaked into LLM context and triggered AUP false-positives downstream (#72)save_attachment now reads from Attachments/<rowId>/<part_id>/<filename> cache when .partial.emlx body is empty β no more silent 0-byte writes for IMAP messages with stripped binaries (#66)SQLite ... fast path failed for rowId=...; falling through to AppleScript) (#69)forward_email plain mode now embeds RFC 3676 > quoted original (parity with reply_email's #43 fix) (#44)bool / [String] no longer silently coerced (#35)@) (#41)cc_additional deduplicates case-insensitively (#34)~/.ssh, Keychains, TCC db, browser cookies) + symlink-resolved + new MAIL_MCP_ATTACHMENT_ROOTS env allow-list (#38)id as Int at handler boundary β defeats AppleScript predicate injection (#50)reply_email runtime (#37, #45) + smoke matrix templates (#46, #47)format parametercompose_email / create_draft / reply_email / forward_email) gain format: "plain" | "markdown" | "html" param (closes #14, #15)message-composition capability spec| Tool | Description |
|---|---|
list_accounts | List all mail accounts |
get_account_info | Get account details |
| Tool | Description |
|---|---|
list_mailboxes | List all mailboxes (folders) |
create_mailbox | Create a new mailbox |
delete_mailbox | Delete a mailbox |
get_special_mailboxes | Get special mailbox names (inbox, drafts, sent, trash, junk, outbox) |
| Tool | Description |
|---|---|
list_emails | List emails in a mailbox |
get_email | Get full email content |
search_emails | Search by subject/content |
get_unread_count | Get unread count |
get_email_headers | Get all email headers |
get_email_source | Get raw email source |
get_email_metadata | Get metadata (forwarded, replied, size) |
| Tool | Description |
|---|---|
mark_read | Mark as read/unread |
flag_email | Flag/unflag email |
set_flag_color | Set flag color (7 colors) |
set_background_color | Set email background color |
mark_as_junk | Mark as junk/not junk |
move_email | Move to another mailbox |
copy_email | Copy to another mailbox |
delete_email | Delete email (to trash) |
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/che-apple-mail-mcp)<a href="https://allmcps.com/mcp/che-apple-mail-mcp"><img src="https://allmcps.com/api/badge/che-apple-mail-mcp?style=directory" alt="Che Apple Mail MCP on AllMCPs" /></a>