Collapsing fifteen actions behind one tool with lazy parameter discovery is the interesting choice here: the client sees one entry, and the schema for an action only arrives when it is needed. Passwords sit in a plaintext config file, so keep it out of version control and treat the send code as a workflow checkpoint rather than a security boundary.
A provider-agnostic email MCP server. It talks plain IMAP and SMTP, so it works against Gmail, Outlook, Purelymail, DomainFactory or any standard mail host, and it can hold several accounts at once. Everything is exposed through a single email tool with an action argument, which keeps the client's tool list to one entry.
- email — one tool driven by an action; call it with just the action to discover that action's parameters, then call again with params
- list_accounts, list_folders and validate_config — the configured mailboxes with their aliases and labels, the IMAP folders on one, and a config check that never logs into IMAP or SMTP
- list_emails, search and read — recent mail in a folder, IMAP-criteria search, and the full message body by UID
- get_attachment, save_attachment and prepare_attachments — an attachment as base64, straight to disk, or a preflight look at local paths, names, sizes and MIME types before you send
- Send, reply, reply_all and forward — plain text, HTML or both, with attachments by path or inline base64, and calendar invites via raw ICS so clients show Accept and Decline
- Move and mark — file a message into another folder, or set read, unread, flagged or unflagged
An accounts.json listing each mailbox with its address and password (app passwords for Gmail and Outlook), pointed at by ACCOUNTS_FILE — or a single account through EMAIL_ADDRESS, EMAIL_PASSWORD, IMAP_HOST and SMTP_HOST. Install with pip install simple-email-mcp and the client runs simple-email-mcp over stdio. The config is re-read on every call, so rotating a value takes effect without a restart. Setting send_code makes the assistant ask you for that code before any send.
One command plus a key — pip install simple-email-mcp, then supply credentials
