
Apple Mail MCP
io.github.imdinuPublished by GitHub account imdinuv0.5.0Updated Oct 24, 2026
Apple Mail MCP server with full-coverage FTS5 body search, reliable on large mailboxes.
Overview
Local MCP server that lets an assistant read, search and extract content from Apple Mail on a Mac, including full-mailbox body search via an FTS5 index.
- What you can do
- List accounts and mailboxes
- Fetch emails by filter (all, unread, flagged, today, last 7 days) or by message ID with full content and attachments
- Search across all, subject, sender, body or attachments, with date bounds and highlighting
- Extract links and attachment content from a specific message
- When to use it
- Useful when you want an assistant to work with a Mac's Apple Mail: finding messages in a large mailbox, reading a specific email, or pulling links and attachments out of it. Aimed at users whose mail volume makes AppleScript-based servers time out.
- Requirements
- Runs locally on macOS as a PyPI package (apple-mail-mcp) launched via uvx, pipx or a Claude plugin/bundle. Apple Mail must be set up, and the launching app needs Full Disk Access so the search index can be built and kept fresh. Optional configuration via a config file or APPLE_MAIL_* environment variables.
Installation
In SourceWeft
- Open Apple Mail MCP in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Apple Mail MCP
[Apple Mail MCP — Full-coverage FTS5 body search]
[Python 3.11+] [License: GPL v3] [macOS] [MCP] [Code style: ruff] [CI]
The only Apple Mail MCP server with full-coverage body search — reliable on large mailboxes where AppleScript-based servers timeout. 8 tools for reading, searching, and extracting email content.
Read the docs for the full guide.
Quick Start
Claude Code (plugin)
Claude Desktop (one-click bundle)
Download apple-mail-mcp-<version>.mcpb from the
latest release
and double-click it.
Both the plugin and the bundle run the released PyPI package via a thin
launcher (uvx → pipx → private venv, whichever is available) — no
vendored code, identical behavior to a manual install. They start the
server with --watch; grant Full Disk Access to the launching app
(Claude Code / Claude Desktop) so the index stays fresh.
Any MCP client
Add to your MCP client:
Build the Search Index (Recommended)
Configure (Optional)
Writes a commented config file you can edit to set defaults like your
primary account or mailbox. Every key has a matching APPLE_MAIL_* env
var if you prefer environment-based config. See
Configuration
for the full schema and precedence rules.
Tools
Performance
Tested against 6 other Apple Mail MCP servers on a real ~73K-message mailbox:
- Only server with full-coverage body search. Most competitors don't support body search at all; the one that does (BastianZim) live-scans only the 5000 most recent messages — silent miss on anything older. Our FTS5 index covers the entire mailbox.
- ~3ms single email fetch via disk-first
.emlxreading (no JXA round-trip). - ~1ms
list_accountsand ~5ms 50-email listing via direct Envelope-Index SQLite reads (0.4+) — same path BastianZim/rusty/pl-lyfx use, with JXA as the correctness fallback. - ~7ms subject search via FTS5 — competitive with native Rust on the same operation.
- Reliable across all 6 benchmarked operations on a 73K mailbox; AppleScript-based servers timeout, throw syntax errors, or skip operations they don't support.
Configuration
Apple Mail MCP works out of the box. To customize defaults, run
apple-mail-mcp init to generate a config.toml template — or use
the matching APPLE_MAIL_* environment variables. See the
Configuration docs
for the full schema and the CLI > env > file > default precedence.
Per-client env overrides via the MCP client's launch config also work:
CLI Usage
All tools are also available as standalone CLI commands (no MCP server needed):
All commands output JSON. Generate a Claude Code skill for CLI-based access:
Development
License
GPL-3.0-or-later
Source: README.md at commit 0398b86
Tools
0Version history
1- v0.5.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts