mac-mail-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mac-mail-mcpshow unread counts for all accounts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
email-cli
Read Apple Mail.app email from the command line, straight from the local store. No OAuth, no API keys, no scripting the app — Mail keeps all envelope metadata in a SQLite database and the message bodies as .emlx files, and this reads both directly. Works with every account Mail.app is configured with (Gmail, Exchange, iCloud, IMAP), offline, and is read-only by design: it cannot send, move, or delete anything.
Same shape as things
and tt: a small
data layer, a rich-rendered CLI over the top.
email inbox
email search "invoice" --from stripe --since 2026-07-01
email show 39751Install
uv tool install "git+https://github.com/IsakRein/Productivity.Email-CLI"For development:
uv sync --extra dev
uv run pytestThe terminal needs Full Disk Access (System Settings > Privacy &
Security) to read ~/Library/Mail. email doctor tells you if it
doesn't have it.
Related MCP server: apple-mail-mcp
Commands
Command | What |
| accounts and unread summary |
| inbox messages across accounts |
| unread messages everywhere |
| subject/sender search |
| one message in full, with its body |
| every message in a conversation |
| Mail.app accounts |
| folders with message counts |
| verify the store is readable end to end |
Every read takes --json; lists take --limit N (default 25). Message
ids are Mail's own ROWIDs, shown in every table. --account accepts an
account name, username, or id prefix.
How it works
~/Library/Mail/V*/MailData/Envelope Index— SQLite with messages, subjects, addresses, mailboxes, recipients, attachments. Opened read-only.~/Library/Mail/V*/<account>/<Folder>.mbox/.../Messages/<id>.emlx— one file per downloaded message: a byte count, the raw RFC 822 message, then an Apple flags plist. Parsed with the stdlibemailpackage, preferring text/plain and falling back to stripped HTML.~/Library/Accounts/Accounts4.sqlite— account display names ("Google", "Exchange"). Optional; UUIDs are shown when unreadable.
email_cli/
db.py — Envelope Index queries, account names, dataclasses
emlx.py — locate + parse .emlx bodies
cli.py — commands + rich renderingLimitations
Read-only — no sending, moving, or deleting.
Bodies exist only for messages Mail.app has downloaded locally.
Mail.app must be (or have been) configured with the accounts.
This server cannot be deployed
Maintenance
Related MCP Connectors
Explore your Messages SQLite database to browse tables and inspect schemas with ease. Run flexible…
Read, send, file and search email in any Gmail, Microsoft 365 or IMAP mailbox, plus its calendar.
- mailOAuthcom.anymailmcp
Read, send, organize, watch email on any IMAP mailbox: Gmail, iCloud, OVH, Zoho, Fastmail + CalDAV.
Never-stored live email: read, send, organize, schedule and auto-triage Gmail or any IMAP mailbox.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables integration with Apple Mail on macOS using JavaScript for Automation (JXA). Supports reading, searching, sending, and managing emails across multiple accounts with full mailbox hierarchy support.5-
- AlicenseNot gradedqualityDmaintenanceA read-only MCP server for Apple Mail on macOS that enables searching and reading emails directly from the local SQLite database, with fast SQL-level filtering and pagination.2MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that drives macOS Mail: read, search, send, organise.MIT
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to search, read, and inspect Apple Mail on macOS, including conversations and attachments. It can create new, reply, reply-all, or forward drafts, but cannot send or modify existing messages.MIT