Email Server

by ai-zerolab

91 stars
15.9k downloads
Not rated
GitHub

About

Integrates with email providers to enable sending and receiving emails, automating workflows and managing communications via IMAP and SMTP functionality.

Details

Author
ai-zerolab
Repository
Wh1isper/mcp-email-server
GitHub stars
91
Downloads
15,865
License
BSD 3-Clause "New" or "Revised" License
Categories
Communication, Automation, Productivity, Design, Developer Tools, AI, Frontend, Infrastructure

- IMAP mailbox listing, read, and search operations
- SMTP email sending with optional save to Sent folder
- Read-only mode when SMTP configuration is omitted
- Attachment download (disabled by default for security)
- Recipient and sender allowlists for access control
- HTTP transport support with DNS rebinding protection

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Email Server
    Command (node, npx, python, etc.) uvx
    Arguments
    • Argument 1 mcp-email-server@latest
    • Argument 2 stdio

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

An @latest release that includes Local Email App V2 offers a preview-first
CLI migration:

uvx mcp-email-server@latest config init \
  --database ~/.config/mcp-email-server/managed.sqlite3
uvx mcp-email-server@latest config import-legacy
uvx mcp-email-server@latest config import-legacy --apply
uvx mcp-email-server@latest config doctor

The apply step displays the plan again and asks for IMPORT confirmation. A
complete import selects managed mode; otherwise the existing legacy settings
remain selected. The source TOML file and its legacy keyring entries are left
untouched. You can also run uvx mcp-email-server@latest ui and choose Import
existing settings
. After a successful import, restart running MCP clients. See
the detailed upgrade guidance
and import troubleshooting.

From this source checkout, run the configuration UI with
uv:

uv sync
uv run mcp-email-server ui

For a published release whose notes state that it includes Local Email App V2,
uvx mcp-email-server@latest ui is the equivalent temporary invocation.

Keep the foreground command running. On a truly empty installation, the
authenticated browser session prepares private account storage at the safe local
default; existing TOML or environment configuration instead offers an explicit
import review while the previous settings keep running. The account-first UI has
only Email accounts and Settings & help as primary destinations. Start
with the email address and password; the UI fills common connection settings from
the email domain and keeps them editable, while outgoing mail remains optional.
A saved complete account is ready without a separate activation step. Use
Password & test on the saved account if desired, then restart the MCP client
to apply the selected settings.

Use the same V2-capable distribution for stdio as for the UI. For a published
V2 release, add the following server definition to the MCP client:

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

Restart the MCP client after updating its configuration. When testing this
source checkout before publication, invoke uv run --directory
/absolute/path/to/mcp-email-server mcp-email-server stdio
instead of pairing a
managed catalog with PyPI @latest.

For the SQLite-backed managed CLI workflow, Windows and POSIX storage boundaries,
headless environments, containers, multiple accounts, custom TLS settings, and
environment-variable configuration, see the
documentation.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "email server": {
            "cwd": "",
            "env": {},
            "args": [
                "mcp-email-server@latest",
                "stdio"
            ],
            "shell": false,
            "command": "uvx"
        }
    }
}

Linux

{
    "cwd": "",
    "env": [],
    "args": [
        "mcp-email-server@latest",
        "stdio"
    ],
    "shell": false,
    "command": "uvx"
}

Macos

{
    "cwd": "",
    "env": [],
    "args": [
        "mcp-email-server@latest",
        "stdio"
    ],
    "shell": false,
    "command": "uvx"
}

Windows

{
    "cwd": "",
    "env": [],
    "args": [
        "mcp-email-server@latest",
        "stdio"
    ],
    "shell": false,
    "command": "uvx"
}

mcp-email-server

Release
Build status
codecov
License

An MCP server for reading, searching, organizing, and sending email through
IMAP and SMTP.

> [!NOTE]
> Version 1.0.0 introduces Local Email App V2. Updating the package does not
> automatically import existing settings created with PyPI 0.16.0 and earlier:
> they remain active in backward-compatible legacy mode, so there is no required
> migration. If you
> would like to use the new managed storage, you can review and import those
> settings whenever it is convenient.

mcp-email-server supports Windows, macOS, and Linux. See
Security for platform-specific filesystem and credential
storage details.

Optional migration for existing installations

An @latest release that includes Local Email App V2 offers a preview-first
CLI migration:

uvx mcp-email-server@latest config init \
  --database ~/.config/mcp-email-server/managed.sqlite3
uvx mcp-email-server@latest config import-legacy
uvx mcp-email-server@latest config import-legacy --apply
uvx mcp-email-server@latest config doctor

The apply step displays the plan again and asks for IMPORT confirmation. A
complete import selects managed mode; otherwise the existing legacy settings
remain selected. The source TOML file and its legacy keyring entries are left
untouched. You can also run uvx mcp-email-server@latest ui and choose Import
existing settings
. After a successful import, restart running MCP clients. See
the detailed upgrade guidance
and import troubleshooting.

Quick start

1. Configure an email account

From this source checkout, run the configuration UI with
uv:

uv sync
uv run mcp-email-server ui

For a published release whose notes state that it includes Local Email App V2,
uvx mcp-email-server@latest ui is the equivalent temporary invocation.

Keep the foreground command running. On a truly empty installation, the
authenticated browser session prepares private account storage at the safe local
default; existing TOML or environment configuration instead offers an explicit
import review while the previous settings keep running. The account-first UI has
only Email accounts and Settings & help as primary destinations. Start
with the email address and password; the UI fills common connection settings from
the email domain and keeps them editable, while outgoing mail remains optional.
A saved complete account is ready without a separate activation step. Use
Password & test on the saved account if desired, then restart the MCP client
to apply the selected settings.

2. Configure the MCP client

Use the same V2-capable distribution for stdio as for the UI. For a published
V2 release, add the following server definition to the MCP client:

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

Restart the MCP client after updating its configuration. When testing this
source checkout before publication, invoke uv run --directory
/absolute/path/to/mcp-email-server mcp-email-server stdio
instead of pairing a
managed catalog with PyPI @latest.

3. Verify the connection

Ask the client to list the configured email accounts or recent messages.

Other configuration methods

For the SQLite-backed managed CLI workflow, Windows and POSIX storage boundaries,
headless environments, containers, multiple accounts, custom TLS settings, and
environment-variable configuration, see the
documentation.

Documentation

- Getting Started
- Configuration
- MCP Tools
- Transports
- Security
- Troubleshooting

Development

See CONTRIBUTING.md.

License

This project is licensed under the terms of the LICENSE.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.