MCP server for Email (IMAP/SMTP) - composite tools optimized for AI agents
mcp-name: io.github.n24q02m/better-email-mcp
IMAP/SMTP email server for AI agents -- 6 composite tools with multi-account and auto-discovery
<!-- Badge Row 1: Status --> <!-- Badge Row 2: Tech --> <a href="https://glama.ai/mcp/servers/n24q02m/better-email-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/n24q02m/better-email-mcp/badge" alt="Better Email MCP server" /> </a>help tool + MCP Resources| Tool | Actions | Description |
|---|---|---|
messages | search, read, mark_read, mark_unread, flag, unflag, move, archive, trash | Search, read, and organize emails |
folders | list | List mailbox folders |
attachments | list, download | List and download email attachments |
send | new, reply, forward | Compose, reply, and forward emails |
setup | status, start, reset, complete | Credential setup via browser relay, status check, reset, re-resolve |
help | - | Get full documentation for any tool |
| URI | Description |
|---|---|
email://docs/messages | Message operations reference |
email://docs/folders | Folder operations reference |
email://docs/attachments | Attachment operations reference |
email://docs/send | Send/compose reference |
email://docs/help | Full documentation |
No environment variables needed. On first start, the server opens a relay setup page:
npx, or Docker)https://better-email-mcp.n24q02m.com)email:app-password format (comma-separated for multi-account)Your credentials never leave your machine. The relay server only sees encrypted data.
For CI/automation, you can still use environment variables (see below).
Run as a multi-user HTTP server with OAuth 2.1 authentication:
{
"mcpServers": {
"better-email": {
"type": "http",
"url": "https://better-email-mcp.n24q02m.com/mcp"
}
}
}docker run -p 8080:8080 \
-e TRANSPORT_MODE=http \
-e PUBLIC_URL=https://your-domain.com \
-e DCR_SERVER_SECRET=$(openssl rand -hex 32) \
n24q02m/better-email-mcp:latestUsers provide their own email credentials through the OAuth flow. No server-side EMAIL_CREDENTIALS needed.
Outlook, Hotmail, and Live accounts use OAuth2 automatically. On first use with an Outlook account:
~/.better-email-mcp/tokens.jsonNo App Password is needed for Outlook accounts.
| Variable | Required | Default | Description |
|---|---|---|---|
EMAIL_CREDENTIALS | Yes (stdio) | - | Email credentials ([email protected]:app-password, comma-separated for multi-account) |
TRANSPORT_MODE | No | stdio | Set to http for remote mode |
PUBLIC_URL | Yes (http) | - | Server's public URL for OAuth redirects |
DCR_SERVER_SECRET | Yes (http) | - | HMAC secret for stateless client registration |
PORT | No | 8080 | Server port |
OUTLOOK_CLIENT_ID | No | - | Custom Azure AD client ID for self-hosted Outlook OAuth2 |
[email protected]:pass1,[email protected]:pass2,[email protected]:pass3[email protected]:password:imap.custom.com| Query | Description |
|---|---|
UNREAD | Unread emails |
FLAGGED | Starred emails |
SINCE 2024-01-01 | Emails after date |
FROM [email protected] | Emails from sender |
SUBJECT meeting | Emails matching subject |
UNREAD SINCE 2024-06-01 | Compound filter |
| Provider | Auth | Save-to-Sent |
|---|---|---|
| Gmail | App Password | Auto (skipped) |
| Yahoo | App Password | Auto (skipped) |
| iCloud/Me.com | App-Specific Password | Auto (skipped) |
| Outlook/Hotmail/Live | OAuth2 (Device Code) | IMAP APPEND |
| Zoho | App Password | IMAP APPEND |
| ProtonMail | ProtonMail Bridge | IMAP APPEND |
| Custom | Via email:pass:imap.host | IMAP APPEND |
git clone https://github.com/n24q02m/better-email-mcp.git
cd better-email-mcp
bun install
bun run devMIT -- See LICENSE.
n24q02m/better-email-mcp
February 24, 2026
April 13, 2026
TypeScript