email-mcp: an MCP server for IMAP and SMTP mail
email-mcp
An email MCP with 52 tools: the agent reads, searches, sends and sorts mail across several accounts over IMAP and SMTP, and schedules sends
- 135 ★ on the repository
- Last commit
- LGPL-3.0
Broad access
Why this level
- The agent reads your correspondence and attachments and sends and deletes email in your name
- Access needs an app password or an OAuth token, which opens the whole mailbox
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/email-mcpDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The agent reads your correspondence and attachments and sends and deletes email in your name
- Access needs an app password or an OAuth token, which opens the whole mailbox
This is third-party code. Review the repository files before installing.
What it does
email-mcp gives an agent a full mail client over IMAP and SMTP. There can be several accounts, and the server detects settings for Gmail, Outlook, Yahoo, iCloud, Fastmail, ProtonMail, Zoho and GMX. A setup wizard, `email-mcp setup`, tests the connection, saves the config and prints a ready snippet for the MCP client. There are 52 tools, 7 prompts and 6 resources. The agent reads and searches mail with filters, opens threads, downloads attachments (up to 5 MB in base64), writes drafts and templates, replies, forwards and sends, including on a schedule. Labels and bulk operations respect provider quirks. From invitation emails the server extracts calendar events in ICS format and computes mail analytics. A separate mode watches the mailbox in real time through IMAP IDLE. It triages incoming mail with presets and rules and shows desktop notifications or fires a webhook. A verification code from an email is caught at once and copied to the clipboard with auto-clear. The default transport is stdio, and Streamable HTTP is available for network access.
Who it is for. For people who handle mail across several inboxes and want an agent in Claude Desktop, Cursor or VS Code to search, reply and sort for them.
Good fit when
- You want to triage a work and a personal inbox in one request: find unread mail, reply and file messages into folders
- You need to schedule an email for a specific time without keeping a client open
- You want a verification code from an email to land in the clipboard at once and clear itself
- You need to pull calendar events out of received invitations and add them to your calendar
- You want mail analytics: who sends the most and how messages are distributed over time
Not a fit when
- You want the simplest send-and-search set: a six-tool server such as email-smtp-imap-mcp is lighter
- The mailbox allows only browser OAuth sign-in and you cannot create an app password: OAuth2 support for Gmail and Microsoft 365 is experimental
- You need S/MIME or PGP decryption: the server does not decrypt such mail
- You have no Node.js 24 and do not want a binary or Docker
Example request
Find today's unread emails in my work account, summarize them briefly and draft replies to the two most urgent onesMCP
- Transport
- stdio, http
- Authentication
- key is optional
Environment variables
MCP_EMAIL_ADDRESS- Mailbox address for a single account set up without a config file.
MCP_EMAIL_PASSWORDsecret- App password for the mailbox when configuring without a config file.
Limitations
It needs Node.js 24 or newer. Without Node.js there is a prebuilt binary (through Homebrew or mise) and a Docker image. Mailbox passwords live in config.toml or, if you choose so in the wizard, in the OS keychain, leaving a `keychain:name` reference in the file.
OAuth2 for Gmail and Microsoft 365 is marked experimental. Attachment downloads are capped at 5 MB in base64, and larger files need a download directory configured. Encrypted mail is not decrypted. The server files a copy of a sent message into the Sent folder only when the save_to_sent setting is on, and Gmail does not need it. The server is released under LGPL-3.0.
How to disable. Delete the email block from your MCP client's config file and restart the client. If you started the always-on server, stop it with `email-mcp server stop`, and on macOS remove the login item with `email-mcp server uninstall`.
FAQ
Is there a mail MCP that works with several accounts?
Yes, email-mcp handles several IMAP and SMTP accounts at once. Add them with `email-mcp account add` and the agent picks the right one by name. Eight providers have auto-detected settings: Gmail, Outlook, Yahoo, iCloud, Fastmail, ProtonMail, Zoho and GMX.
How do I connect the mail MCP to Claude Desktop?
Run `npx @codefuturist/email-mcp setup` to add an account, then `email-mcp install`: the installer finds Claude Desktop, Cursor and Windsurf and writes the server in. To do it by hand, add an email block to claude_desktop_config.json with the command npx and the arguments -y, @codefuturist/email-mcp, stdio.
Can email-mcp send email on a schedule?
Yes. The queue of scheduled mail lives in the state directory, so in Docker mount it as a named volume or the mail is lost when the container restarts.
How does verification code catching work?
The IMAP IDLE watcher notices an email with a code and the server copies the code to the clipboard. The code is concealed and clears automatically. It works while the server runs, so a background service, `email-mcp server start`, exists for permanent use.
How does email-mcp protect mailbox passwords?
Connections use TLS or STARTTLS, passwords never reach logs, and on macOS and Linux the wizard offers to store the password in the OS keychain. A rate limiter applies to each account.
Discussion
No questions or reviews yet.
Related
MCP serversEmail SMTP/IMAP MCP: mail across several accounts
Email SMTP/IMAP MCP
A six-tool mail MCP: one local server searches, reads, sends, forwards and files email across any number of IMAP and SMTP accounts
Email MCP: Yandex, Mail.ru and other providers
Email MCP Server
An HTTP/SSE wrapper around an IMAP MCP server for remote mailbox access from Claude Web: read, search, send, across 15 providers
Mail.ru MCP server
Mail.ru MCP Server (Go Production Edition)
A Go MCP server for Mail.ru mail, SMTP and cloud storage that requires human confirmation before sending mail or changing files
Mail.ru read-only mail MCP server
Mail.ru MCP
A small read-only MCP server for Mail.ru mail: listing, reading, searching and folders, with no ability to send or delete
Yandex Mail MCP server
ymail-mcp
Yandex work mail in Claude Code over IMAP: reading, searching threads and drafting replies without sending
Mail.ru mail MCP server
mailru-mcp
An MCP server for Mail.ru mail: reading, search, folder sorting and archiving that works around Mail.ru's IMAP quirks
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| email-mcp: an MCP server for IMAP and SMTP mail (this entry) | no | key is optional | 135 | |
| Email SMTP/IMAP MCP: mail across several accounts | no | API key | 24 | a compact six-tool server for several mailboxes, while this one adds 52 tools, scheduling, IDLE watching and analytics |
| Email MCP: Yandex, Mail.ru and other providers | no | API key | 0 | an HTTP/SSE wrapper over an IMAP server for remote access from Claude Web, while this server runs locally over stdio |
| Mail.ru read-only mail MCP server | no | API key | 0 | a small read-only server for Mail.ru only, while this one works with any IMAP and SMTP provider and can send |
README in short
The description compares the server with typical mail MCPs across fourteen points: several accounts, drafts and templates, scheduled sending, IDLE watching, verification codes, ICS calendar, analytics, OAuth2 and HTTP transport. Installation is covered for npx, pnpm, Homebrew, a prebuilt Bun binary and Docker. Ready blocks are given for Claude Desktop, VS Code, Cursor, Windsurf, Zed, Mistral Vibe and Docker. Separate sections cover the always-on server, macOS login launch and HTTP options.