
Che Apple Mail Mcp
Connects Claude directly to your local Apple Mail via 48 native Swift tools that bypass AppleScript's slowness by querying SQLite directly. You get millisecond searches across subject, sender, recipient, and date fields even with 250K+ emails, plus batch operations on up to 50 messages per call. Covers the full surface: composing with markdown/HTML/plain formats, CRUD for mailboxes and rules, attachment extraction from .emlx files, VIP management, flag colors, and raw header access. Built for macOS 13+ with hardened input validation and fallback paths when SQLite fails. If you're automating Mail.app workflows or need LLM-driven email triage without Python overhead, this is the native option.
- GitHub stars
- 5
- tools
- 59
- transport
- STDIO
- last updated
- Apr 2, 2026
Tools
59 toolsPublic tool metadata for what this MCP can expose to an agent.
check_compose_lengthExact encoded URL/body length without Mail access; fits is not full eligibility
Exact encoded URL/body length without Mail access; fits is not full eligibility
No parameter schema in public metadata yet.
get_email_classification_policyRead local policy and approvals
Read local policy and approvals
No parameter schema in public metadata yet.
configure_email_classificationConfigure criteria and explicitly approve/revoke rules
Configure criteria and explicitly approve/revoke rules
No parameter schema in public metadata yet.
classify_emailsRead-only classification and expiring explicit-id plan
Read-only classification and expiring explicit-id plan
No parameter schema in public metadata yet.
apply_email_classificationGuarded move to native Trash with audit; no permanent deletion
Guarded move to native Trash with audit; no permanent deletion
No parameter schema in public metadata yet.
list_accountsList all mail accounts
List all mail accounts
No parameter schema in public metadata yet.
get_account_infoGet account details
Get account details
No parameter schema in public metadata yet.
list_mailboxesList all mailboxes (folders)
List all mailboxes (folders)
No parameter schema in public metadata yet.
create_mailboxCreate a new mailbox
Create a new mailbox
No parameter schema in public metadata yet.
delete_mailboxDelete a mailbox
Delete a mailbox
No parameter schema in public metadata yet.
get_special_mailboxesGet special mailbox names (inbox, drafts, sent, trash, junk, outbox)
Get special mailbox names (inbox, drafts, sent, trash, junk, outbox)
No parameter schema in public metadata yet.
list_emailsList emails in a mailbox
List emails in a mailbox
No parameter schema in public metadata yet.
get_emailGet full email content
Get full email content
No parameter schema in public metadata yet.
search_emailsSearch by subject/content
Search by subject/content
No parameter schema in public metadata yet.
get_unread_countGet unread count
Get unread count
No parameter schema in public metadata yet.
get_email_headersGet all email headers
Get all email headers
No parameter schema in public metadata yet.
get_email_sourceGet raw email source
Get raw email source
No parameter schema in public metadata yet.
get_email_metadataGet metadata (forwarded, replied, size)
Get metadata (forwarded, replied, size)
No parameter schema in public metadata yet.
mark_readMark as read/unread
Mark as read/unread
No parameter schema in public metadata yet.
flag_emailFlag/unflag email
Flag/unflag email
No parameter schema in public metadata yet.
set_flag_colorSet flag color (7 colors)
Set flag color (7 colors)
No parameter schema in public metadata yet.
set_background_colorSet email background color
Set email background color
No parameter schema in public metadata yet.
mark_as_junkMark as junk/not junk
Mark as junk/not junk
No parameter schema in public metadata yet.
move_emailMove to another mailbox
Move to another mailbox
No parameter schema in public metadata yet.
copy_emailCopy to another mailbox
Copy to another mailbox
No parameter schema in public metadata yet.
delete_emailDelete email (to trash)
Delete email (to trash)
No parameter schema in public metadata yet.
compose_emailSend new email (supports cc/bcc/attachments — bare addresses only: a display-name recipient in any list is refused on a send, use `create_draft` (#404); `format`: `plain` only since #304; optional `from_address` for multi-account sender selection)
Send new email (supports cc/bcc/attachments — bare addresses only: a display-name recipient in any list is refused on a send, use `create_draft` (#404); `format`: `plain` only since #304; optional `from_address` for multi-account sender selection)
No parameter schema in public metadata yet.
reply_emailReply to email. Optional: `cc_additional`, `save_as_draft`, `format` (since v2.4.0). `attachments` is currently refused whenever non-empty.
Reply to email. Optional: `cc_additional`, `save_as_draft`, `format` (since v2.4.0). `attachments` is currently refused whenever non-empty.
No parameter schema in public metadata yet.
forward_emailForward email. Optional `body` + `format`. Plain mode embeds RFC 3676 `> ` quoted original.
Forward email. Optional `body` + `format`. Plain mode embeds RFC 3676 `> ` quoted original.
No parameter schema in public metadata yet.
redirect_emailRedirect email (keeps original sender)
Redirect email (keeps original sender)
No parameter schema in public metadata yet.
open_mailtoOpen mailto URL
Open mailto URL
No parameter schema in public metadata yet.
list_draftsList draft emails — each entry carries `subject` + numeric `id`
List draft emails — each entry carries `subject` + numeric `id`
No parameter schema in public metadata yet.
create_draftCreate a draft (supports attachments; optional `from_address` for multi-account sender selection)
Create a draft (supports attachments; optional `from_address` for multi-account sender selection)
No parameter schema in public metadata yet.
update_draftReplace an existing draft (upsert): locate by `draft_id` or exact `subject_match` → create replacement → delete old.
Replace an existing draft (upsert): locate by `draft_id` or exact `subject_match` → create replacement → delete old.
No parameter schema in public metadata yet.
list_attachmentsList email attachments
List email attachments
No parameter schema in public metadata yet.
save_attachmentSave attachment to disk
Save attachment to disk
No parameter schema in public metadata yet.
list_vip_sendersList VIP senders
List VIP senders
No parameter schema in public metadata yet.
list_rulesList mail rules
List mail rules
No parameter schema in public metadata yet.
get_rule_detailsGet rule details
Get rule details
No parameter schema in public metadata yet.
create_ruleCreate a new rule
Create a new rule
No parameter schema in public metadata yet.
delete_ruleDelete a rule
Delete a rule
No parameter schema in public metadata yet.
enable_ruleEnable/disable a rule
Enable/disable a rule
No parameter schema in public metadata yet.
list_signaturesList email signatures
List email signatures
No parameter schema in public metadata yet.
get_signatureGet signature content
Get signature content
No parameter schema in public metadata yet.
list_smtp_serversList SMTP servers
List SMTP servers
No parameter schema in public metadata yet.
check_for_new_mailCheck for new mail
Check for new mail
No parameter schema in public metadata yet.
synchronize_accountSync IMAP account
Sync IMAP account
No parameter schema in public metadata yet.
get_emails_batchGet up to 50 emails in one call (per-item errors)
Get up to 50 emails in one call (per-item errors)
No parameter schema in public metadata yet.
list_attachments_batchList attachments for up to 50 emails
List attachments for up to 50 emails
No parameter schema in public metadata yet.
batch_export_emails_markdownServer-side bulk export to verbatim markdown + attachments (frozen frontmatter manifest; concurrency-serialized per output_dir)
Server-side bulk export to verbatim markdown + attachments (frozen frontmatter manifest; concurrency-serialized per output_dir)
No parameter schema in public metadata yet.
export_emails_markdownDEPRECATED — renamed to `batch_export_emails_markdown`; alias removed no earlier than v3.0
DEPRECATED — renamed to `batch_export_emails_markdown`; alias removed no earlier than v3.0
No parameter schema in public metadata yet.
extract_name_from_addressExtract name from email address
Extract name from email address
No parameter schema in public metadata yet.
extract_addressExtract email from full address
Extract email from full address
No parameter schema in public metadata yet.
get_mail_app_infoGet Mail.app info
Get Mail.app info
No parameter schema in public metadata yet.
import_mailboxImport mailbox from file
Import mailbox from file
No parameter schema in public metadata yet.
check_fdaCheck Full Disk Access status and retry opening this server's index reader now; reports the server's actual SQLite fast-path state (open / just recovered / still unavailable)
Check Full Disk Access status and retry opening this server's index reader now; reports the server's actual SQLite fast-path state (open / just recovered / still unavailable)
No parameter schema in public metadata yet.
check_accessibilityCheck Accessibility permission (the compose/reply GUI paths; without it those tools refuse — except the opt-in direct-write `create_draft` path, which needs Full Disk Access instead)
Check Accessibility permission (the compose/reply GUI paths; without it those tools refuse — except the opt-in direct-write `create_draft` path, which needs Full Disk Access instead)
No parameter schema in public metadata yet.
check_automationCheck Automation permission (Apple Events to Mail) — non-prompting probe, four states with remediation
Check Automation permission (Apple Events to Mail) — non-prompting probe, four states with remediation
No parameter schema in public metadata yet.
get_mail_log_eventsRead Mail's own unified log to find where an event chain stops — read-only. `detail=brief` (default) returns only the static event template, integer arguments and an account letter for `[account - mailbox]` lines
Read Mail's own unified log to find where an event chain stops — read-only. `detail=brief` (default) returns only the static event template, integer arguments and an account letter for `[account - mailbox]` lines
No parameter schema in public metadata yet.
Sponsors
Readme
che-apple-mail-mcp
The most comprehensive Apple Mail MCP server - 59 tools with SQLite-powered millisecond search across 250K+ emails.
Why che-apple-mail-mcp?
| Feature | Other MCPs | che-apple-mail-mcp |
|---|---|---|
| Total Tools | ~20 | 59 |
| 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 |
Details
- Repository
- github.com/kiki830621/che-apple-mail-mcp
- Categories
- Databases, Search & Web Crawling
- Package
https://github.com/kiki830621/che-apple-mail-mcp/releases/download/v2.0.1/CheAppleMailMCP- Transport
- STDIO
- Registry
- MCP registry, active