Track MCP LogoTrack MCP
Track MCP LogoTrack MCP

The world's largest repository of Model Context Protocol servers. Discover, explore, and submit MCP tools.

Product

  • Categories
  • Top MCP
  • New & Updated
  • Submit MCP

Company

  • About

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy

© 2026 TrackMCP. All rights reserved.

Built with ❤️ by Krishna Goyal

    Mcp Email Server

    IMAP and SMTP via MCP Server

    96 stars
    Python
    Updated Oct 19, 2025

    Table of Contents

    • Installation
    • Manual Installation
    • Environment Variable Configuration
    • Available Environment Variables
    • Enabling Attachment Downloads
    • Saving Sent Emails to IMAP Sent Folder
    • Installing via Smithery
    • Usage
    • Replying to Emails
    • Development
    • Releasing a new version

    Table of Contents

    • Installation
    • Manual Installation
    • Environment Variable Configuration
    • Available Environment Variables
    • Enabling Attachment Downloads
    • Saving Sent Emails to IMAP Sent Folder
    • Installing via Smithery
    • Usage
    • Replying to Emails
    • Development
    • Releasing a new version

    Documentation

    mcp-email-server

    Release

    Build status

    codecov

    Commit activity

    License

    smithery badge

    IMAP and SMTP via MCP Server

    • Github repository:
    • Documentation

    Installation

    Manual Installation

    We recommend using uv to manage your environment.

    Try uvx mcp-email-server@latest ui to config, and use following configuration for mcp client:

    json
    {
      "mcpServers": {
        "zerolib-email": {
          "command": "uvx",
          "args": ["mcp-email-server@latest", "stdio"]
        }
      }
    }

    This package is available on PyPI, so you can install it using pip install mcp-email-server

    After that, configure your email server using the ui: mcp-email-server ui

    Environment Variable Configuration

    You can also configure the email server using environment variables, which is particularly useful for CI/CD environments like Jenkins. zerolib-email supports both UI configuration (via TOML file) and environment variables, with environment variables taking precedence.

    json
    {
      "mcpServers": {
        "zerolib-email": {
          "command": "uvx",
          "args": ["mcp-email-server@latest", "stdio"],
          "env": {
            "MCP_EMAIL_SERVER_ACCOUNT_NAME": "work",
            "MCP_EMAIL_SERVER_FULL_NAME": "John Doe",
            "MCP_EMAIL_SERVER_EMAIL_ADDRESS": "john@example.com",
            "MCP_EMAIL_SERVER_USER_NAME": "john@example.com",
            "MCP_EMAIL_SERVER_PASSWORD": "your_password",
            "MCP_EMAIL_SERVER_IMAP_HOST": "imap.gmail.com",
            "MCP_EMAIL_SERVER_IMAP_PORT": "993",
            "MCP_EMAIL_SERVER_SMTP_HOST": "smtp.gmail.com",
            "MCP_EMAIL_SERVER_SMTP_PORT": "465"
          }
        }
      }
    }

    Available Environment Variables

    VariableDescriptionDefaultRequired
    MCP_EMAIL_SERVER_ACCOUNT_NAMEAccount identifier"default"No
    MCP_EMAIL_SERVER_FULL_NAMEDisplay nameEmail prefixNo
    MCP_EMAIL_SERVER_EMAIL_ADDRESSEmail address-Yes
    MCP_EMAIL_SERVER_USER_NAMELogin usernameSame as emailNo
    MCP_EMAIL_SERVER_PASSWORDEmail password-Yes
    MCP_EMAIL_SERVER_IMAP_HOSTIMAP server host-Yes
    MCP_EMAIL_SERVER_IMAP_PORTIMAP server port993No
    MCP_EMAIL_SERVER_IMAP_SSLEnable IMAP SSLtrueNo
    MCP_EMAIL_SERVER_SMTP_HOSTSMTP server host-Yes
    MCP_EMAIL_SERVER_SMTP_PORTSMTP server port465No
    MCP_EMAIL_SERVER_SMTP_SSLEnable SMTP SSLtrueNo
    MCP_EMAIL_SERVER_SMTP_START_SSLEnable STARTTLSfalseNo
    MCP_EMAIL_SERVER_ENABLE_ATTACHMENT_DOWNLOADEnable attachment downloadfalseNo
    MCP_EMAIL_SERVER_SAVE_TO_SENTSave sent emails to IMAP Sent foldertrueNo
    MCP_EMAIL_SERVER_SENT_FOLDER_NAMECustom Sent folder name (auto-detect if not set)-No

    Enabling Attachment Downloads

    By default, downloading email attachments is disabled for security reasons. To enable this feature, you can either:

    Option 1: Environment Variable

    json
    {
      "mcpServers": {
        "zerolib-email": {
          "command": "uvx",
          "args": ["mcp-email-server@latest", "stdio"],
          "env": {
            "MCP_EMAIL_SERVER_ENABLE_ATTACHMENT_DOWNLOAD": "true"
          }
        }
      }
    }

    Option 2: TOML Configuration

    Add enable_attachment_download = true to your TOML configuration file (~/.config/zerolib/mcp_email_server/config.toml):

    toml
    enable_attachment_download = true
    
    [[emails]]
    # ... your email configuration

    Once enabled, you can use the download_attachment tool to save email attachments to a specified path.

    Saving Sent Emails to IMAP Sent Folder

    By default, sent emails are automatically saved to your IMAP Sent folder. This ensures that emails sent via the MCP server appear in your email client (Thunderbird, webmail, etc.).

    The server auto-detects common Sent folder names: Sent, INBOX.Sent, Sent Items, Sent Mail, [Gmail]/Sent Mail.

    To specify a custom Sent folder name (useful for providers with non-standard folder names):

    Option 1: Environment Variable

    json
    {
      "mcpServers": {
        "zerolib-email": {
          "command": "uvx",
          "args": ["mcp-email-server@latest", "stdio"],
          "env": {
            "MCP_EMAIL_SERVER_SENT_FOLDER_NAME": "INBOX.Sent"
          }
        }
      }
    }

    Option 2: TOML Configuration

    toml
    [[emails]]
    account_name = "work"
    save_to_sent = true
    sent_folder_name = "INBOX.Sent"
    # ... rest of your email configuration

    To disable saving to Sent folder, set MCP_EMAIL_SERVER_SAVE_TO_SENT=false or save_to_sent = false in your TOML config.

    For separate IMAP/SMTP credentials, you can also use:

    • MCP_EMAIL_SERVER_IMAP_USER_NAME / MCP_EMAIL_SERVER_IMAP_PASSWORD
    • MCP_EMAIL_SERVER_SMTP_USER_NAME / MCP_EMAIL_SERVER_SMTP_PASSWORD

    Then you can try it in Claude Desktop. If you want to intergrate it with other mcp client, run $which mcp-email-server for the path and configure it in your client like:

    json
    {
      "mcpServers": {
        "zerolib-email": {
          "command": "{{ ENTRYPOINT }}",
          "args": ["stdio"]
        }
      }
    }

    If docker is avaliable, you can try use docker image, but you may need to config it in your client using tools via MCP. The default config path is ~/.config/zerolib/mcp_email_server/config.toml

    json
    {
      "mcpServers": {
        "zerolib-email": {
          "command": "docker",
          "args": ["run", "-it", "ghcr.io/ai-zerolab/mcp-email-server:latest"]
        }
      }
    }

    Installing via Smithery

    To install Email Server for Claude Desktop automatically via Smithery:

    bash
    npx -y @smithery/cli install @ai-zerolab/mcp-email-server --client claude

    Usage

    Replying to Emails

    To reply to an email with proper threading (so it appears in the same conversation in email clients):

    1. First, fetch the original email to get its message_id:

    python
    emails = await get_emails_content(account_name="work", email_ids=["123"])
    original = emails.emails[0]

    2. Send your reply using in_reply_to and references:

    python
    await send_email(
        account_name="work",
        recipients=[original.sender],
        subject=f"Re: {original.subject}",
        body="Thank you for your email...",
        in_reply_to=original.message_id,
        references=original.message_id,
    )

    The in_reply_to parameter sets the In-Reply-To header, and references sets the References header. Both are used by email clients to thread conversations properly.

    Development

    This project is managed using uv.

    Try make install to install the virtual environment and install the pre-commit hooks.

    Use uv run mcp-email-server for local development.

    Releasing a new version

    • Create an API Token on PyPI.
    • Add the API Token to your projects secrets with the name PYPI_TOKEN by visiting this page.
    • Create a new release on Github.
    • Create a new tag in the form *.*.*.

    For more details, see here.

    Similar MCP

    Based on tags & features

    • AS

      Aseprite Mcp

      Python·
      92
    • IS

      Isaac Sim Mcp

      Python·
      83
    • FH

      Fhir Mcp Server

      Python·
      55
    • PL

      Playwright Plus Python Mcp

      Python·
      154

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k
    View All MCP Servers

    Similar MCP

    Based on tags & features

    • AS

      Aseprite Mcp

      Python·
      92
    • IS

      Isaac Sim Mcp

      Python·
      83
    • FH

      Fhir Mcp Server

      Python·
      55
    • PL

      Playwright Plus Python Mcp

      Python·
      154

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k