A side-by-side look at the Apple Mail MCP and Email MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Apple Mail MCP for communication work as a local process; choose Email MCP for communication as a local process. You can also run both side by side in one mcpServers block.
list_folders, list_emails, get_email.MCP_EMAIL_ADDRESS, MCP_EMAIL_PASSWORD, MCP_EMAIL_IMAP_HOST, MCP_EMAIL_SMTP_HOST, EMAIL_ACCOUNTS.list_accounts, list_mailboxes, list_emails.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Communication | Communication |
| Quality signal | 63/100 · Good | 69/100 · Great |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | other |
| Pricing | Not declared | Free |
| Required env vars | None listed | MCP_EMAIL_ADDRESSMCP_EMAIL_PASSWORDMCP_EMAIL_IMAP_HOSTMCP_EMAIL_SMTP_HOSTEMAIL_ACCOUNTS |
| Verified owner | Community listing | Community listing |
| GitHub stars | 2 | 133 |
| Directory activity | 1 views 0 installs 0 upvotes | 5 views 0 installs 0 upvotes |
| Tools | 13 | 52 |
| Full listing | View Apple Mail MCP | View Email MCP |
list_foldersList all mail accounts and their folders/mailboxes. Returns a tree of account → [mailbox names]. Use this to discover exact mailbox names before calling list_emails or search_emails.list_emailsList emails in a specific mailbox with pagination. Returns message summaries including a message_ref that can be passed to get_email, reply_email, move_email, etc. Messages are returned newest-first (index 1 = most recent).get_emailRead the full content of a specific email including headers and body. The message_ref comes from list_emails or search_emails results.search_emailsSearch for emails matching criteria across one or all mailboxes. Returns message summaries with message_ref fields for use with other tools. At least one filter (from_filter, subject_filter, after_date, before_date) should be provided.compose_emailCompose a new email. If send is false (default), opens the compose window with a draft. If send is true, sends immediately without confirmation.reply_emailReply to an existing email. If send is false (default), opens the reply in a compose window. If send is true, sends immediately without confirmation.move_emailMove an email to a different mailbox. Use list_folders to see available mailbox names.archive_emailMove an email to the Archive mailbox of its account. Uses 'Archive' for iCloud, 'All Mail' for Gmail.flag_emailSet or clear the flag on an email.mark_readMark an email as read or unread.move_to_junkMove an email to the Junk/Spam mailbox of its account. Uses 'Junk' for iCloud, 'Spam' for Gmail.delete_emailMove an email to the Trash (Deleted Messages for iCloud, Trash for Gmail).list_accountsList all configured email accountslist_mailboxesList folders with unread counts and special-use flagslist_emailsPaginated email listing with date, sender, subject, and flag filters; marks bulk mail; optional body previewget_emailRead full email content with attachment metadata and bulk-mail classification (HTML converted to readable text by default)get_emailsFetch full content of multiple emails in a single call (max 20); same bulk markersget_email_statusGet read/flag/label state of an email without fetching the bodysearch_emailsSearch by keyword across subject, sender, and body; same bulk markers and optional preview as `list_emailsdownload_attachmentDownload an email attachment by filename or MIME part id, base64-encoded or (if configured) saved to the server's attachment download directoryfind_email_folderDiscover the real folder(s) an email resides in (resolves virtual folders)extract_contactsExtract unique contacts from recent email headersget_threadReconstruct a conversation thread via References/In-Reply-To; same bulk markerslist_templatesList available email templatesPaste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"apple-mail-mcp": {
"command": "npx",
"args": [
"-y",
"@jdot6/apple-mail-mcp"
]
}
}
}
{
"mcpServers": {
"codefuturist-email-mcp": {
"command": "npx",
"args": [
"-y",
"@codefuturist/email-mcp"
],
"env": {
"MCP_EMAIL_ADDRESS": "YOUR_MCP_EMAIL_ADDRESS_HERE",
"MCP_EMAIL_PASSWORD": "YOUR_MCP_EMAIL_PASSWORD_HERE",
"MCP_EMAIL_IMAP_HOST": "YOUR_MCP_EMAIL_IMAP_HOST_HERE",
"MCP_EMAIL_SMTP_HOST": "YOUR_MCP_EMAIL_SMTP_HOST_HERE",
"EMAIL_ACCOUNTS": "YOUR_EMAIL_ACCOUNTS_HERE"
}
}
}
}