← Back to directory
E

email-mcp

Community
Full-featured IMAP/SMTP email MCP server with multi-account, real-time watcher, and AI triage.
Category
Other
Stars
★ 127 Popular
Transport
stdio (local process)
Runtime
Node.js 22+ · Docker
Credentials
API key / credential required
License
LGPL-3.0
Last commit
Tools
47
49FMRS · D

A feature-rich email MCP server offering comprehensive IMAP/SMTP support, including multi-account, real-time watcher, AI triage, scheduling, and calendar integration. Easy to install and supports multiple clients. Be mindful of security and permissions; ensure proper configuration.

Strongest · Documentation 15/20 Weakest · Reliability 6/20

Reliability
6/20
Security and permissions
7/20
Maintenance
8/20
Documentation
15/20
Setup experience
13/20
Why each score
Reliability 6/20
Only the README and manifest were available; no CI workflow, tests, or runnable source were supplied, so startup, MCP init handshake, and actual tool behavior cannot be verified. The README contradicts itself: the architecture section says 42 tools while the API table and manifest say 47, and there is no evidence of error handling or edge cases. Deducted accordingly under static calibration.
Security and permissions 7/20
The README claims TLS, rate limiting, no password logging, a 5 MB attachment cap, and experimental OAuth2, but none of this is confirmed by source. The config example stores passwords and refresh tokens in plaintext TOML without file-permission guidance, and dangerous operations like permanent deletion lack an explicit confirmation flow in the docs. No red-line triggers (malware, real secrets, covert exfiltration) were evident.
Maintenance 8/20
The repository is not archived, has an LGPL-3.0 license, and shows an npm version 0.2.3, but no commit history, release dates, or security-response channel were provided. 30 open issues exist with no evidence of resolution, so sustained maintenance activity cannot be confirmed.
Documentation 15/20
The README is broad and layered: install, multiple client configs, CLI commands, configuration, scheduling, watcher, tool/prompt/resource tables, and architecture. Deductions were made for the internal 42-vs-47 tool contradiction, missing troubleshooting guidance, and undisclosed AI-triage cost/limits (only a rate limit is mentioned).
Setup experience 13/20
Clear install paths via npx/pnpm/Docker are given, along with client config examples for Claude, VS Code, Cursor, Windsurf, Zed, and Mistral Vibe, plus an env-var single-account option and a setup wizard. However, Node >=22 is required, config file creation is still manual in some paths, and no CI/tests verify the commands. Static calibration caps setup at 15 without executable evidence, so 13 is awarded.

Static review · not runListed 2026-08-07

Read the FMRS scoring method →

Fit and risk

What it can accessReads local filesWrites / deletes local filesUses the networkChanges third-party account data

Best for

  • Users who need multi-account email management
  • Users who need real-time email monitoring and AI triage
  • Users who need email scheduling and calendar features
  • Users who want integration with multiple MCP clients (Claude, Cursor, etc.)

Not for

  • Users who only need basic read/send email (may be overkill)
  • Email services that do not use IMAP/SMTP
  • Users who need production-grade stability and are concerned about experimental OAuth2

Required permissions

  • Read emails and mailbox information
  • Send emails
  • Manage emails (move, delete, flag)
  • Manage labels
  • Access local calendar (macOS/Linux)
  • Create OS-level scheduled tasks via scheduler install
  • Send desktop notifications and webhook requests

Risks and side effects

  • Requires storing email credentials (app passwords or OAuth2 tokens)
  • Broad access: can read, send, delete all emails
  • Experimental OAuth2 may be unstable
  • Scheduled emails depend on machine being online, otherwise may be missed
  • Desktop notifications may require extra permissions

Setup

Before you start

Runtime:Node.js 22+ · Docker

MCP_EMAIL_PASSWORD optionalsecret Email password or app-specific password (e.g. Gmail app password), generated in your provider's security settings; treat as a secret.
EMAIL_ACCOUNTS optionalsecret Accounts JSON (contains passwords) passed via client env for Mistral Vibe instead of a config file; treat as a secret.
Other optional settings (16)
MCP_EMAIL_ADDRESS optional Your email address for single-account (no config file) mode.
MCP_EMAIL_IMAP_HOST optional IMAP server hostname, e.g. imap.gmail.com, from your email provider.
MCP_EMAIL_SMTP_HOST optional SMTP server hostname, e.g. smtp.gmail.com, from your email provider.
MCP_EMAIL_ACCOUNT_NAME optional Display account name, defaults to 'default'.
MCP_EMAIL_FULL_NAME optional Display name used when sending, optional.
MCP_EMAIL_USERNAME optional Login username, defaults to the email address.
MCP_EMAIL_IMAP_PORT optional IMAP port, defaults to 993.
MCP_EMAIL_IMAP_TLS optional Enable IMAP TLS, defaults to true.
MCP_EMAIL_SMTP_PORT optional SMTP port, defaults to 465.
MCP_EMAIL_SMTP_TLS optional Enable SMTP TLS, defaults to true.
MCP_EMAIL_SMTP_STARTTLS optional Use STARTTLS, defaults to false.
MCP_EMAIL_SMTP_VERIFY_SSL optional Verify SSL certificates, defaults to true.
MCP_EMAIL_SMTP_POOL_ENABLED optional Enable SMTP connection pooling, defaults to true.
MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS optional Max pooled SMTP connections, defaults to 1.
MCP_EMAIL_SMTP_POOL_MAX_MESSAGES optional Max messages per pooled connection, defaults to 100.
MCP_EMAIL_RATE_LIMIT optional Max sends per minute, defaults to 10.
  1. Ensure Node.js ≥ 22.\n2. Run npx @codefuturist/email-mcp setup or email-mcp account add to add an account interactively.\n3. Run email-mcp install to auto-register with supported MCP clients (Claude Desktop, VS Code, Cursor, Windsurf, Zed).\n4. Or manually add a config snippet (see README).
claude_desktop_config.json
{
  "mcpServers": {
    "email": {
      "command": "npx",
      "args": [
        "-y",
        "@codefuturist/email-mcp",
        "stdio"
      ]
    }
  }
}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "email": {
      "command": "npx",
      "args": [
        "-y",
        "@codefuturist/email-mcp",
        "stdio"
      ]
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add email -- npx -y @codefuturist/email-mcp stdio

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After running `npx @codefuturist/email-mcp setup` and restarting your client, the tool list should show 47 tools (e.g. list_emails, search_emails, send_email); calling check_health and getting connection status with IMAP capabilities confirms the setup works.

Troubleshooting

  1. Ensure Node.js ≥ 22
  2. Check connection with `email-mcp test`
  3. Check config file path with `email-mcp config path`
  4. Verify IMAP/SMTP host and port (e.g., Gmail: imap.gmail.com:993, smtp.gmail.com:465)
  5. For Gmail, use an app password, not your regular password
  6. Ensure the scheduler daemon is installed (`email-mcp scheduler install`)
  7. Check logs or run `email-mcp config show` to verify configuration

Things to try

Once connected, you can ask your AI assistant things like:

  • Search all emails from github.com in the last week and list senders and subjects.
  • Reply to the latest email from [email protected] in my personal account and send it.
  • Triage my 20 most recent unread emails and label the newsletters with Newsletter.
  • Check if this email contains a calendar invite and add it to my local calendar if so.

Tools 47

list_accounts read-only
List all configured email accounts.
list_mailboxes read-only
List folders with unread counts and special-use flags.
list_emails read-only
Paginated email listing with date, sender, subject, and flag filters.
get_email read-only
Read full email content with attachment metadata.
get_emails read-only
Fetch full content of multiple emails in a single call (max 20).
get_email_status read-only
Get read/flag/label state of an email without fetching the body.
search_emails read-only
Search by keyword across subject, sender, and body.
download_attachment read-only
Download an email attachment by filename.
Show 39 more tools
find_email_folder read-only
Discover the real folder(s) an email resides in (resolves virtual folders).
extract_contacts read-only
Extract unique contacts from recent email headers.
get_thread read-only
Reconstruct a conversation thread via References/In-Reply-To.
list_templates read-only
List available email templates.
get_email_stats read-only
Email analytics — volume, top senders, daily trends.
check_health read-only
Connection health, latency, quota, and IMAP capabilities.
send_email writes
Send a new email (plain text or HTML, CC/BCC).
reply_email writes
Reply with proper threading (In-Reply-To, References).
forward_email writes
Forward with original content quoted.
save_draft writes
Save an email draft to the Drafts folder.
send_draft writes
Send an existing draft and remove from Drafts.
apply_template writes
Apply a template with variable substitution.
schedule_email writes
Schedule an email for future delivery.
list_scheduled read-only
List scheduled emails by status.
cancel_scheduled destructive
Cancel a pending scheduled email.
move_email writes
Move email between folders.
delete_email destructive
Move to Trash or permanently delete.
mark_email writes
Mark as read/unread, flag/unflag.
bulk_action writes
Batch operation on up to 100 emails.
create_mailbox writes
Create a new mailbox folder.
rename_mailbox writes
Rename an existing mailbox folder.
delete_mailbox destructive
Permanently delete a mailbox and contents.
list_labels read-only
Discover available labels (auto-detects provider strategy).
add_label writes
Add a label to an email (ProtonMail folders, Gmail X-GM-LABELS, or IMAP keywords).
remove_label writes
Remove a label from an email.
create_label writes
Create a new label.
delete_label destructive
Delete a label.
get_watcher_status read-only
Show IMAP IDLE connections, folders being monitored, and last-seen UIDs.
list_presets read-only
List available AI triage presets with descriptions and suggested labels.
get_hooks_config read-only
Show current hooks configuration — preset, rules, and custom instructions.
configure_alerts writes
Update alert/notification settings at runtime.
check_notification_setup read-only
Diagnose desktop notification support and provide setup instructions.
test_notification writes
Send a test notification to verify OS permissions are configured.
extract_calendar read-only
Extract ICS/iCalendar events from an email.
analyze_email_for_scheduling read-only
Analyze an email to detect events and reminder-worthy content.
add_to_calendar writes
Add an email event to the local calendar (macOS/Linux).
create_reminder writes
Create a reminder in macOS Reminders.app from an email.
list_calendars read-only
List all available local calendars.
check_calendar_permissions read-only
Check whether the local calendar is accessible.

Use cases

Enable AI assistants to read, search, and send email
Automatically triage and prioritize inbox with AI
Schedule emails for future delivery
Extract calendar events and create reminders
Real-time notifications via static rules and IMAP IDLE watcher

Supported clients

Claude Desktop
VS Code
Cursor
Windsurf
Zed
Mistral Vibe

Listed from the project's documentation, not tested by this site.

Overview

email-mcp is an MCP server that provides comprehensive email capabilities via IMAP and SMTP. It enables AI assistants to read, search, send, manage, schedule, and analyze emails across multiple accounts, exposing 47 tools, 7 prompts, and 6 resources over the MCP protocol, with OAuth2 support (experimental), email scheduling, calendar extraction, analytics, provider-aware label management, real-time IMAP IDLE watcher with AI-powered triage, customizable presets and static rules, and a guided setup wizard.

Similar servers

Telegram MCP server powered by Telethon to let MCP clients read chats, manage groups, and send/modify messages, media, contacts, and settings.

★ 1.8k · Tools 76 Compare with this →

Source revision 99ce431aa81d Data synced 2026-10-11 Read the FMRS scoring method