Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Mailoo - Email MCP Server

by Bitflooversion 0.3.5i★ –iRuns on your computer
Registry nameio.github.Bitfloo/mailoo

Install

Overview

Description from the maker (original English)

Email MCP server for AI agents: IMAP/SMTP, Gmail, Outlook, calendar, ManageSieve, AI triage, OAuth2.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Chat & email
  • You need to fill in: MCP_EMAIL_ADDRESS, MCP_EMAIL_PASSWORD, MCP_EMAIL_IMAP_HOST, MCP_EMAIL_SMTP_HOST, MCP_EMAIL_OAUTH2_CLIENT_SECRET, MCP_EMAIL_OAUTH2_REFRESH_TOKEN, MCP_EMAIL_ALERT_WEBHOOK_URL, MCP_EMAIL_HTTP_TOKEN

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: MCP_EMAIL_ADDRESS, MCP_EMAIL_PASSWORD, MCP_EMAIL_IMAP_HOST, MCP_EMAIL_SMTP_HOST, MCP_EMAIL_ACCOUNT_NAME, MCP_EMAIL_FULL_NAME, MCP_EMAIL_USERNAME, MCP_EMAIL_IMAP_PORT, MCP_EMAIL_IMAP_TLS, MCP_EMAIL_IMAP_STARTTLS, MCP_EMAIL_IMAP_VERIFY_SSL, MCP_EMAIL_IMAP_DISABLE_IMAP4REV2, MCP_EMAIL_SIEVE_HOST, MCP_EMAIL_SIEVE_PORT, MCP_EMAIL_SMTP_PORT, MCP_EMAIL_SMTP_TLS, MCP_EMAIL_SMTP_STARTTLS, MCP_EMAIL_SMTP_VERIFY_SSL, MCP_EMAIL_SMTP_POOL_ENABLED, MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS, MCP_EMAIL_SMTP_POOL_MAX_MESSAGES, MCP_EMAIL_OAUTH2_PROVIDER, MCP_EMAIL_OAUTH2_CLIENT_ID, MCP_EMAIL_OAUTH2_CLIENT_SECRET, MCP_EMAIL_OAUTH2_REFRESH_TOKEN, MCP_EMAIL_RATE_LIMIT, MCP_EMAIL_READ_ONLY, MCP_EMAIL_SAVE_TO_SENT, MCP_EMAIL_WATCHER_ENABLED, MCP_EMAIL_WATCHER_FOLDERS, MCP_EMAIL_WATCHER_IDLE_TIMEOUT, MCP_EMAIL_HOOK_ON_NEW_EMAIL, MCP_EMAIL_HOOK_PRESET, MCP_EMAIL_HOOK_AUTO_LABEL, MCP_EMAIL_HOOK_AUTO_FLAG, MCP_EMAIL_HOOK_BATCH_DELAY, MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS, MCP_EMAIL_ALERT_DESKTOP, MCP_EMAIL_ALERT_SOUND, MCP_EMAIL_ALERT_URGENCY_THRESHOLD, MCP_EMAIL_ALERT_WEBHOOK_URL, MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE, MCP_EMAIL_HOOK_AUTO_CALENDAR, MCP_EMAIL_HOOK_CALENDAR_NAME, MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES, MCP_EMAIL_HOOK_CALENDAR_CONFIRM, MCP_EMAIL_SYSTEM_ONE_ENABLED, MCP_EMAIL_HTTP_HOST, MCP_EMAIL_HTTP_TOKEN, MCP_EMAIL_HTTP_ALLOWED_HOSTS, MCP_EMAIL_DEFAULT_ACCOUNT, MCP_EMAIL_TOOLSET

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "mailoo": {
      "command": "npx",
      "args": [
        "-y",
        "@bitfloo/mailoo"
      ],
      "env": {
        "MCP_EMAIL_ADDRESS": "your-value",
        "MCP_EMAIL_PASSWORD": "your-value",
        "MCP_EMAIL_IMAP_HOST": "your-value",
        "MCP_EMAIL_SMTP_HOST": "your-value",
        "MCP_EMAIL_ACCOUNT_NAME": "your-value",
        "MCP_EMAIL_FULL_NAME": "your-value",
        "MCP_EMAIL_USERNAME": "your-value",
        "MCP_EMAIL_IMAP_PORT": "your-value",
        "MCP_EMAIL_IMAP_TLS": "your-value",
        "MCP_EMAIL_IMAP_STARTTLS": "your-value",
        "MCP_EMAIL_IMAP_VERIFY_SSL": "your-value",
        "MCP_EMAIL_IMAP_DISABLE_IMAP4REV2": "your-value",
        "MCP_EMAIL_SIEVE_HOST": "your-value",
        "MCP_EMAIL_SIEVE_PORT": "your-value",
        "MCP_EMAIL_SMTP_PORT": "your-value",
        "MCP_EMAIL_SMTP_TLS": "your-value",
        "MCP_EMAIL_SMTP_STARTTLS": "your-value",
        "MCP_EMAIL_SMTP_VERIFY_SSL": "your-value",
        "MCP_EMAIL_SMTP_POOL_ENABLED": "your-value",
        "MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS": "your-value",
        "MCP_EMAIL_SMTP_POOL_MAX_MESSAGES": "your-value",
        "MCP_EMAIL_OAUTH2_PROVIDER": "your-value",
        "MCP_EMAIL_OAUTH2_CLIENT_ID": "your-value",
        "MCP_EMAIL_OAUTH2_CLIENT_SECRET": "your-value",
        "MCP_EMAIL_OAUTH2_REFRESH_TOKEN": "your-value",
        "MCP_EMAIL_RATE_LIMIT": "your-value",
        "MCP_EMAIL_READ_ONLY": "your-value",
        "MCP_EMAIL_SAVE_TO_SENT": "your-value",
        "MCP_EMAIL_WATCHER_ENABLED": "your-value",
        "MCP_EMAIL_WATCHER_FOLDERS": "your-value",
        "MCP_EMAIL_WATCHER_IDLE_TIMEOUT": "your-value",
        "MCP_EMAIL_HOOK_ON_NEW_EMAIL": "your-value",
        "MCP_EMAIL_HOOK_PRESET": "your-value",
        "MCP_EMAIL_HOOK_AUTO_LABEL": "your-value",
        "MCP_EMAIL_HOOK_AUTO_FLAG": "your-value",
        "MCP_EMAIL_HOOK_BATCH_DELAY": "your-value",
        "MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS": "your-value",
        "MCP_EMAIL_ALERT_DESKTOP": "your-value",
        "MCP_EMAIL_ALERT_SOUND": "your-value",
        "MCP_EMAIL_ALERT_URGENCY_THRESHOLD": "your-value",
        "MCP_EMAIL_ALERT_WEBHOOK_URL": "your-value",
        "MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE": "your-value",
        "MCP_EMAIL_HOOK_AUTO_CALENDAR": "your-value",
        "MCP_EMAIL_HOOK_CALENDAR_NAME": "your-value",
        "MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES": "your-value",
        "MCP_EMAIL_HOOK_CALENDAR_CONFIRM": "your-value",
        "MCP_EMAIL_SYSTEM_ONE_ENABLED": "your-value",
        "MCP_EMAIL_HTTP_HOST": "your-value",
        "MCP_EMAIL_HTTP_TOKEN": "your-value",
        "MCP_EMAIL_HTTP_ALLOWED_HOSTS": "your-value",
        "MCP_EMAIL_DEFAULT_ACCOUNT": "your-value",
        "MCP_EMAIL_TOOLSET": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add mailoo --env MCP_EMAIL_ADDRESS=your-value --env MCP_EMAIL_PASSWORD=your-value --env MCP_EMAIL_IMAP_HOST=your-value --env MCP_EMAIL_SMTP_HOST=your-value --env MCP_EMAIL_ACCOUNT_NAME=your-value --env MCP_EMAIL_FULL_NAME=your-value --env MCP_EMAIL_USERNAME=your-value --env MCP_EMAIL_IMAP_PORT=your-value --env MCP_EMAIL_IMAP_TLS=your-value --env MCP_EMAIL_IMAP_STARTTLS=your-value --env MCP_EMAIL_IMAP_VERIFY_SSL=your-value --env MCP_EMAIL_IMAP_DISABLE_IMAP4REV2=your-value --env MCP_EMAIL_SIEVE_HOST=your-value --env MCP_EMAIL_SIEVE_PORT=your-value --env MCP_EMAIL_SMTP_PORT=your-value --env MCP_EMAIL_SMTP_TLS=your-value --env MCP_EMAIL_SMTP_STARTTLS=your-value --env MCP_EMAIL_SMTP_VERIFY_SSL=your-value --env MCP_EMAIL_SMTP_POOL_ENABLED=your-value --env MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS=your-value --env MCP_EMAIL_SMTP_POOL_MAX_MESSAGES=your-value --env MCP_EMAIL_OAUTH2_PROVIDER=your-value --env MCP_EMAIL_OAUTH2_CLIENT_ID=your-value --env MCP_EMAIL_OAUTH2_CLIENT_SECRET=your-value --env MCP_EMAIL_OAUTH2_REFRESH_TOKEN=your-value --env MCP_EMAIL_RATE_LIMIT=your-value --env MCP_EMAIL_READ_ONLY=your-value --env MCP_EMAIL_SAVE_TO_SENT=your-value --env MCP_EMAIL_WATCHER_ENABLED=your-value --env MCP_EMAIL_WATCHER_FOLDERS=your-value --env MCP_EMAIL_WATCHER_IDLE_TIMEOUT=your-value --env MCP_EMAIL_HOOK_ON_NEW_EMAIL=your-value --env MCP_EMAIL_HOOK_PRESET=your-value --env MCP_EMAIL_HOOK_AUTO_LABEL=your-value --env MCP_EMAIL_HOOK_AUTO_FLAG=your-value --env MCP_EMAIL_HOOK_BATCH_DELAY=your-value --env MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS=your-value --env MCP_EMAIL_ALERT_DESKTOP=your-value --env MCP_EMAIL_ALERT_SOUND=your-value --env MCP_EMAIL_ALERT_URGENCY_THRESHOLD=your-value --env MCP_EMAIL_ALERT_WEBHOOK_URL=your-value --env MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE=your-value --env MCP_EMAIL_HOOK_AUTO_CALENDAR=your-value --env MCP_EMAIL_HOOK_CALENDAR_NAME=your-value --env MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES=your-value --env MCP_EMAIL_HOOK_CALENDAR_CONFIRM=your-value --env MCP_EMAIL_SYSTEM_ONE_ENABLED=your-value --env MCP_EMAIL_HTTP_HOST=your-value --env MCP_EMAIL_HTTP_TOKEN=your-value --env MCP_EMAIL_HTTP_ALLOWED_HOSTS=your-value --env MCP_EMAIL_DEFAULT_ACCOUNT=your-value --env MCP_EMAIL_TOOLSET=your-value -- npx -y @bitfloo/mailoo

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "mailoo": {
      "command": "npx",
      "args": [
        "-y",
        "@bitfloo/mailoo"
      ],
      "env": {
        "MCP_EMAIL_ADDRESS": "your-value",
        "MCP_EMAIL_PASSWORD": "your-value",
        "MCP_EMAIL_IMAP_HOST": "your-value",
        "MCP_EMAIL_SMTP_HOST": "your-value",
        "MCP_EMAIL_ACCOUNT_NAME": "your-value",
        "MCP_EMAIL_FULL_NAME": "your-value",
        "MCP_EMAIL_USERNAME": "your-value",
        "MCP_EMAIL_IMAP_PORT": "your-value",
        "MCP_EMAIL_IMAP_TLS": "your-value",
        "MCP_EMAIL_IMAP_STARTTLS": "your-value",
        "MCP_EMAIL_IMAP_VERIFY_SSL": "your-value",
        "MCP_EMAIL_IMAP_DISABLE_IMAP4REV2": "your-value",
        "MCP_EMAIL_SIEVE_HOST": "your-value",
        "MCP_EMAIL_SIEVE_PORT": "your-value",
        "MCP_EMAIL_SMTP_PORT": "your-value",
        "MCP_EMAIL_SMTP_TLS": "your-value",
        "MCP_EMAIL_SMTP_STARTTLS": "your-value",
        "MCP_EMAIL_SMTP_VERIFY_SSL": "your-value",
        "MCP_EMAIL_SMTP_POOL_ENABLED": "your-value",
        "MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS": "your-value",
        "MCP_EMAIL_SMTP_POOL_MAX_MESSAGES": "your-value",
        "MCP_EMAIL_OAUTH2_PROVIDER": "your-value",
        "MCP_EMAIL_OAUTH2_CLIENT_ID": "your-value",
        "MCP_EMAIL_OAUTH2_CLIENT_SECRET": "your-value",
        "MCP_EMAIL_OAUTH2_REFRESH_TOKEN": "your-value",
        "MCP_EMAIL_RATE_LIMIT": "your-value",
        "MCP_EMAIL_READ_ONLY": "your-value",
        "MCP_EMAIL_SAVE_TO_SENT": "your-value",
        "MCP_EMAIL_WATCHER_ENABLED": "your-value",
        "MCP_EMAIL_WATCHER_FOLDERS": "your-value",
        "MCP_EMAIL_WATCHER_IDLE_TIMEOUT": "your-value",
        "MCP_EMAIL_HOOK_ON_NEW_EMAIL": "your-value",
        "MCP_EMAIL_HOOK_PRESET": "your-value",
        "MCP_EMAIL_HOOK_AUTO_LABEL": "your-value",
        "MCP_EMAIL_HOOK_AUTO_FLAG": "your-value",
        "MCP_EMAIL_HOOK_BATCH_DELAY": "your-value",
        "MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS": "your-value",
        "MCP_EMAIL_ALERT_DESKTOP": "your-value",
        "MCP_EMAIL_ALERT_SOUND": "your-value",
        "MCP_EMAIL_ALERT_URGENCY_THRESHOLD": "your-value",
        "MCP_EMAIL_ALERT_WEBHOOK_URL": "your-value",
        "MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE": "your-value",
        "MCP_EMAIL_HOOK_AUTO_CALENDAR": "your-value",
        "MCP_EMAIL_HOOK_CALENDAR_NAME": "your-value",
        "MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES": "your-value",
        "MCP_EMAIL_HOOK_CALENDAR_CONFIRM": "your-value",
        "MCP_EMAIL_SYSTEM_ONE_ENABLED": "your-value",
        "MCP_EMAIL_HTTP_HOST": "your-value",
        "MCP_EMAIL_HTTP_TOKEN": "your-value",
        "MCP_EMAIL_HTTP_ALLOWED_HOSTS": "your-value",
        "MCP_EMAIL_DEFAULT_ACCOUNT": "your-value",
        "MCP_EMAIL_TOOLSET": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "mailoo": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@bitfloo/mailoo"
      ],
      "env": {
        "MCP_EMAIL_ADDRESS": "your-value",
        "MCP_EMAIL_PASSWORD": "your-value",
        "MCP_EMAIL_IMAP_HOST": "your-value",
        "MCP_EMAIL_SMTP_HOST": "your-value",
        "MCP_EMAIL_ACCOUNT_NAME": "your-value",
        "MCP_EMAIL_FULL_NAME": "your-value",
        "MCP_EMAIL_USERNAME": "your-value",
        "MCP_EMAIL_IMAP_PORT": "your-value",
        "MCP_EMAIL_IMAP_TLS": "your-value",
        "MCP_EMAIL_IMAP_STARTTLS": "your-value",
        "MCP_EMAIL_IMAP_VERIFY_SSL": "your-value",
        "MCP_EMAIL_IMAP_DISABLE_IMAP4REV2": "your-value",
        "MCP_EMAIL_SIEVE_HOST": "your-value",
        "MCP_EMAIL_SIEVE_PORT": "your-value",
        "MCP_EMAIL_SMTP_PORT": "your-value",
        "MCP_EMAIL_SMTP_TLS": "your-value",
        "MCP_EMAIL_SMTP_STARTTLS": "your-value",
        "MCP_EMAIL_SMTP_VERIFY_SSL": "your-value",
        "MCP_EMAIL_SMTP_POOL_ENABLED": "your-value",
        "MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS": "your-value",
        "MCP_EMAIL_SMTP_POOL_MAX_MESSAGES": "your-value",
        "MCP_EMAIL_OAUTH2_PROVIDER": "your-value",
        "MCP_EMAIL_OAUTH2_CLIENT_ID": "your-value",
        "MCP_EMAIL_OAUTH2_CLIENT_SECRET": "your-value",
        "MCP_EMAIL_OAUTH2_REFRESH_TOKEN": "your-value",
        "MCP_EMAIL_RATE_LIMIT": "your-value",
        "MCP_EMAIL_READ_ONLY": "your-value",
        "MCP_EMAIL_SAVE_TO_SENT": "your-value",
        "MCP_EMAIL_WATCHER_ENABLED": "your-value",
        "MCP_EMAIL_WATCHER_FOLDERS": "your-value",
        "MCP_EMAIL_WATCHER_IDLE_TIMEOUT": "your-value",
        "MCP_EMAIL_HOOK_ON_NEW_EMAIL": "your-value",
        "MCP_EMAIL_HOOK_PRESET": "your-value",
        "MCP_EMAIL_HOOK_AUTO_LABEL": "your-value",
        "MCP_EMAIL_HOOK_AUTO_FLAG": "your-value",
        "MCP_EMAIL_HOOK_BATCH_DELAY": "your-value",
        "MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS": "your-value",
        "MCP_EMAIL_ALERT_DESKTOP": "your-value",
        "MCP_EMAIL_ALERT_SOUND": "your-value",
        "MCP_EMAIL_ALERT_URGENCY_THRESHOLD": "your-value",
        "MCP_EMAIL_ALERT_WEBHOOK_URL": "your-value",
        "MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE": "your-value",
        "MCP_EMAIL_HOOK_AUTO_CALENDAR": "your-value",
        "MCP_EMAIL_HOOK_CALENDAR_NAME": "your-value",
        "MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES": "your-value",
        "MCP_EMAIL_HOOK_CALENDAR_CONFIRM": "your-value",
        "MCP_EMAIL_SYSTEM_ONE_ENABLED": "your-value",
        "MCP_EMAIL_HTTP_HOST": "your-value",
        "MCP_EMAIL_HTTP_TOKEN": "your-value",
        "MCP_EMAIL_HTTP_ALLOWED_HOSTS": "your-value",
        "MCP_EMAIL_DEFAULT_ACCOUNT": "your-value",
        "MCP_EMAIL_TOOLSET": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • MCP_EMAIL_ADDRESS required env
    Email address. Required for the environment-variable account.
  • MCP_EMAIL_PASSWORD secret env
    Password or app password. Required unless MCP_EMAIL_OAUTH2_PROVIDER is set.
  • MCP_EMAIL_IMAP_HOST required env
    IMAP server hostname.
  • MCP_EMAIL_SMTP_HOST required env
    SMTP server hostname.
  • MCP_EMAIL_ACCOUNT_NAME env
    Account name. Defaults to default.
  • MCP_EMAIL_FULL_NAME env
    Display name on sent mail.
  • MCP_EMAIL_USERNAME env
    Login username. Defaults to the email address.
  • MCP_EMAIL_IMAP_PORT env
    IMAP port. Defaults to 993.
  • MCP_EMAIL_IMAP_TLS env
    Set to false to turn off implicit IMAP TLS. Defaults to true.
  • MCP_EMAIL_IMAP_STARTTLS env
    Set to true to upgrade IMAP with STARTTLS. Defaults to false.
  • MCP_EMAIL_IMAP_VERIFY_SSL env
    Set to false to skip IMAP certificate verification. Defaults to true.
  • MCP_EMAIL_IMAP_DISABLE_IMAP4REV2 env
    Set to true to force IMAP4rev1 SEARCH.
  • MCP_EMAIL_SIEVE_HOST env
    ManageSieve hostname. Defaults to the IMAP host.
  • MCP_EMAIL_SIEVE_PORT env
    ManageSieve port. Defaults to 4190.
  • MCP_EMAIL_SMTP_PORT env
    SMTP port. Defaults to 465.
  • MCP_EMAIL_SMTP_TLS env
    Set to false to turn off implicit SMTP TLS. Defaults to true.
  • MCP_EMAIL_SMTP_STARTTLS env
    Set to true to upgrade SMTP with STARTTLS. Defaults to false.
  • MCP_EMAIL_SMTP_VERIFY_SSL env
    Set to false to skip SMTP certificate verification. Defaults to true.
  • MCP_EMAIL_SMTP_POOL_ENABLED env
    Set to false to disable SMTP connection pooling. Defaults to true.
  • MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS env
    Maximum pooled SMTP connections. Defaults to 1.
  • MCP_EMAIL_SMTP_POOL_MAX_MESSAGES env
    Maximum messages per pooled SMTP connection. Defaults to 100.
  • MCP_EMAIL_OAUTH2_PROVIDER env
    OAuth2 provider: google, microsoft, or custom. Configure custom in the config file: an account in the environment replaces the config file, so custom set here has no token_url or auth_url.
  • MCP_EMAIL_OAUTH2_CLIENT_ID env
    OAuth2 client id.
  • MCP_EMAIL_OAUTH2_CLIENT_SECRET secret env
    OAuth2 client secret.
  • MCP_EMAIL_OAUTH2_REFRESH_TOKEN secret env
    OAuth2 refresh token.
  • MCP_EMAIL_RATE_LIMIT env
    Maximum sends per minute. Defaults to 10.
  • MCP_EMAIL_READ_ONLY env
    Set to true to omit write tools and mailbox writers.
  • MCP_EMAIL_SAVE_TO_SENT env
    Set to false to skip the IMAP Sent copy after SMTP. Defaults to true.
  • MCP_EMAIL_WATCHER_ENABLED env
    Set to true to start the IMAP IDLE watcher.
  • MCP_EMAIL_WATCHER_FOLDERS env
    Comma-separated folders to watch. Defaults to INBOX.
  • MCP_EMAIL_WATCHER_IDLE_TIMEOUT env
    IMAP IDLE timeout in seconds. Defaults to 1740.
  • MCP_EMAIL_HOOK_ON_NEW_EMAIL env
    What to do on arrival: triage, notify, or none.
  • MCP_EMAIL_HOOK_PRESET env
    Hook preset: inbox-zero, gtd, priority-focus, notification-only, or custom.
  • MCP_EMAIL_HOOK_AUTO_LABEL env
    Set to true to apply labels from hook triage.
  • MCP_EMAIL_HOOK_AUTO_FLAG env
    Set to true to flag mail from hook triage.
  • MCP_EMAIL_HOOK_BATCH_DELAY env
    Seconds to batch arrivals before hooks run. Defaults to 5.
  • MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS env
    Extra instructions appended to the hook preset.
  • MCP_EMAIL_ALERT_DESKTOP env
    Set to true for desktop notifications.
  • MCP_EMAIL_ALERT_SOUND env
    Set to true to play a sound with desktop notifications.
  • MCP_EMAIL_ALERT_URGENCY_THRESHOLD env
    Minimum urgency for an alert: urgent, high, normal, or low.
  • MCP_EMAIL_ALERT_WEBHOOK_URL secret env
    HTTP or HTTPS URL that receives alert POSTs.
  • MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE env
    Set to true to allow webhook targets on a LAN, VPN, or tailnet.
  • MCP_EMAIL_HOOK_AUTO_CALENDAR env
    Set to true to create calendar events from hook triage.
  • MCP_EMAIL_HOOK_CALENDAR_NAME env
    Calendar name for automatic events.
  • MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES env
    Minutes before an automatic event to alarm. Defaults to 15.
  • MCP_EMAIL_HOOK_CALENDAR_CONFIRM env
    Set to false to skip confirming automatic calendar events. Defaults to true.
  • MCP_EMAIL_SYSTEM_ONE_ENABLED env
    Set to true to classify residue mail with System One. Off by default.
  • MCP_EMAIL_HTTP_HOST env
    HTTP listen address. Defaults to loopback. The host argument wins.
  • MCP_EMAIL_HTTP_TOKEN secret env
    Bearer token. Required when the HTTP listen address is not loopback or MCP_EMAIL_HTTP_ALLOWED_HOSTS lists a non-loopback name.
  • MCP_EMAIL_HTTP_ALLOWED_HOSTS env
    Comma-separated Host names. Required for 0.0.0.0 and ::.
  • MCP_EMAIL_DEFAULT_ACCOUNT env
    Default account name or email address when the account parameter is omitted.
  • MCP_EMAIL_TOOLSET env
    Toolset profile to register: full, core, or minimal. Defaults to full.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account Bitfloo, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Chat & emaili

  • More stars than 0% of the other 1766 servers in this category
  • Published to the registry more recently than 80% of the other 1766 servers in this category
  • Basic checks equal to or better than 100% of the other 1766 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Mailoo - Email MCP Server safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: MCP_EMAIL_ADDRESS, MCP_EMAIL_PASSWORD, MCP_EMAIL_IMAP_HOST, MCP_EMAIL_SMTP_HOST, MCP_EMAIL_OAUTH2_CLIENT_SECRET, MCP_EMAIL_OAUTH2_REFRESH_TOKEN, MCP_EMAIL_ALERT_WEBHOOK_URL, MCP_EMAIL_HTTP_TOKEN

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.3.5) reached the registry 6 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: Vexa, emailmd, MCP WhatsApp Cloud

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Vexa

by Vexa-ai

Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.

Runs in the cloud★ 2,949Apache-2.0Updated 2 months ago
Install

emailmd

by anypost

Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.

Computer or cloud★ 1,385MITUpdated 31 days ago
Install

MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API

Runs on your computer★ 277MITUpdated 5 months ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

Mailoo

Mailoo is an open-source MCP server you run yourself to connect AI assistants and agents to multiple email accounts over IMAP and SMTP.

  • Find what you need — search and read email, threads, and attachments across accounts.
  • Act on email — prepare drafts, reply, and schedule messages through your assistant or agent.
  • Choose your setup — guided setup for Claude Desktop or Cursor, or a standard MCP connection for your own agent.

Maintained by Bitfloo, forked from email-mcp. Licensed under LGPL-3.0-or-later; see NOTICE for attribution.

Quickstart for Claude Desktop or Cursor

Install Node.js 24 or newer and prepare your email account first, including an app password if your provider requires one. Then run these commands in a terminal:

npx -y @bitfloo/mailoo@latest account add

npx -y @bitfloo/mailoo@latest config edit npx -y @bitfloo/mailoo@latest install

In config edit, press Enter to keep the rate limit (10 for a new config), then choose Yes for Read-only mode? (disables all write operations). This saves read-only mode in TOML. Choose your client in the installer, restart it, and ask: “Summarize up to five unread emails. Include each sender, subject and any requested next step. Ask which account to use if needed.”

The wizard prints a read-only/core manual client entry; the installer does not apply those environment overrides. This guided path uses the read-only setting you saved in TOML. With untouched default settings, the installer's entry runs writable/full.

Follow the guided setup and check your first result →

Quickstart for agent builders

With Node.js 24 or newer and account credentials ready, create a local account using npx -y @bitfloo/mailoo@latest account add. Connect your MCP client over stdio:

{

"mcpServers": { "mailoo": { "command": "npx", "args": ["-y", "@bitfloo/mailoo@latest", "stdio"], "env": { "MCP_EMAIL_READ_ONLY": "true", "MCP_EMAIL_TOOLSET": "core" } } } }

Initialize the connection, list tools, then call list_accounts, list_emails, and get_email with the returned account name and message ID.

Follow the MCP request sequence and inspect its results →

Both quickstarts configure read-only access for the first read. The walkthrough also covers feature requirements and fallbacks, including AI triage, local calendars, ManageSieve, and experimental OAuth.

To enable writes later, run config edit, keep the rate limit, and choose No for read-only mode; for the builder entry, set MCP_EMAIL_READ_ONLY to "false". Restart the server after either change. Request sending or changes explicitly when you intend them. You can request a dryRun: true preview separately; Mailoo does not require a preview before sending.

Mailoo connects to the mail servers you configure. Your MCP client and its model provider receive the mail content you request. Optional TypeSafe classification and webhooks send data to their configured services when enabled. Usage reporting is off by default. See Capabilities & data flows for destinations and fields.

Highlights

Up to 57 tools across full, core, and minimal profiles, up to 7 prompts, and 6 resources. Includes calendar and reminders, scheduling, ManageSieve filters, and optional AI triage. See API for tools and docs/tools.md for behaviour and limits.

FeatureIn this tree
Multi-account IMAP/SMTP✅
Send / reply / forward (with dryRun preview)✅
Drafts & templates✅
Provider-aware labels & bulk ops✅
Schedule future emails✅
Real-time IMAP IDLE watcher✅
AI triage with presets✅
Desktop & webhook alerts✅
Calendar (ICS, Apple Calendar/Reminders)✅
Email analytics✅
OAuth2 (Gmail / M365)✅ _experimental_
Guided setup wizard✅
ManageSieve (server-side filters)✅
Sender auth headers (SPF/DKIM/DMARC)✅
Toolset profiles (full / core / minimal) & GBNF small-LLM ergonomics✅
MCP outputSchema & structuredContent✅

Table of Contents

  • Highlights
  • Quickstart for Claude Desktop or Cursor
  • Quickstart for agent builders
  • Security & Sandboxing Architecture
  • LLM Ergonomics & Toolset Profiles
  • Docs
  • Background
  • Install
  • Usage
  • Capabilities & data flows
  • API
  • Maintainers
  • Contributing
  • Attribution & License

Security & Sandboxing Architecture

Policy and how to report a vulnerability: [SECURITY.md](SECURITY.md).

Mailoo applies controls to specific network, filesystem, and tool operations. It also labels untrusted mail for the model. Those labels do not guarantee how an LLM will respond to instructions inside an email.

Enforced operation controls:

  • Zero Shell Execution (`execFile` only) — Native OS integrations (macOS osascript for Calendar/Reminders/notifications, Linux notify-send, Windows powershell, and crontab installation) invoke child_process.execFile with argument arrays (shell: false), avoiding shell parsing of arguments.
  • SSRF & DNS-Rebinding Protection (`net.BlockList`) — Outbound alert webhooks validate URLs against an IPv4/IPv6 net.BlockList covering loopback, RFC 1918 private ranges, link-local/cloud metadata (169.254.169.254, 100.100.100.200), CGNAT, NAT64, 6to4, and reserved prefixes both at configuration time and at socket connection time (createWebhookConnectLookup), preventing DNS-rebinding attacks (src/safety/validation.ts).
  • Symlink-Free Write Containment (`savePath`) — Attachment and .eml exports via savePath are strictly confined to the working directory, walk every path segment with lstat, refuse hidden dotfiles and OS persistence directories (Library/LaunchAgents, .ssh, .gnupg), and open targets with O_CREAT | O_EXCL | O_NOFOLLOW under a 50 MiB cap (5 MiB inline base64 cap). An .eml export is capped by its own size; an attachment by its encoded size in the message, which for base64 runs above the file size (details).
  • Strict Credential File Permissions (`0600`) — config.toml is written and verified with mode 0600 inside a 0700 config directory ($XDG_CONFIG_HOME/mailoo/config.toml). Passwords and message bodies are redacted from the JSONL write audit log (src/safety/audit.ts).
  • TLS & STARTTLS Verification — tls enforces implicit TLS with certificate verification (verify_ssl = true by default); starttls fails closed if the server does not advertise STARTTLS. Turning both off is accepted only for a loopback host. ManageSieve refuses AUTHENTICATE PLAIN over unencrypted sockets without STARTTLS.
  • Operational Guardrails (`MCP_EMAIL_READ_ONLY`, `MCP_EMAIL_TOOLSET`, `dryRun`) —
  • MCP_EMAIL_READ_ONLY=true disables all write tools, background watchers, hooks, and schedulers at startup, exposing only the 31 read-only tools.
  • MCP_EMAIL_TOOLSET=full|core|minimal scopes the registered tool surface to match the agent's capability tier and context budget.
  • dryRun: true on high-risk tools (send_email, reply_email, forward_email, send_draft, delete_email, bulk_action, delete_mailbox, sieve_put_script, sieve_delete_script) validates all parameters and account resolution and returns a [DRY RUN] preview without modifying server state.
  • Per-Account Rate Limiting — rate_limit (default 10 sends/minute) enforces an independent token bucket per account (src/safety/rate-limiter.ts). Buckets live in memory, so each server process and each mailoo scheduler check run counts on its own.

Untrusted-content labels: Email subjects, sender headers, bodies, previews, and authentication results are wrapped in << >> … << >> delimiters. Mailoo strips forged copies of these markers from the payload before wrapping it. This fencing identifies external content as data for the receiving model; it is not a sandbox for model behaviour or a guarantee against prompt injection.

LLM Ergonomics & Toolset Profiles

Mailoo is designed to work across both frontier models (Claude, GPT, Gemini) and local/small 3B–8B parameter models (llama.cpp GBNF grammars, Ollama, vLLM):

  • Toolset Profiles (`MCP_EMAIL_TOOLSET` / `settings.toolset`):
  • full *(default)* — All 57 tools (31 in read_only mode), including Calendar, Reminders, ManageSieve, Watcher, Scheduler, Templates, Contacts, and Analytics.
  • core — 19 tools (10 in read_only mode) covering core email workflows (accounts, mailboxes, emails, threads, send, drafts, manage, bulk, attachments, health).
  • minimal — 14 tools (8 in read_only mode) tailored for 3B–4B models with tight context budgets (accounts, mailboxes, emails, send, manage, health).
  • Optional `account` & Smart Account Resolution — When only a single account is configured or default_account (MCP_EMAIL_DEFAULT_ACCOUNT) is set, the account parameter is completely optional across tools. Account lookup also matches case-insensitively by profile name or email address (e.g., passing "you@example.com" resolves the matching account), and returns actionable error messages listing valid accounts (name (email) pairs) when ambiguous.
  • Lossless Parameter Normalization & GBNF Compatibility — Single-message tools accept emailId, id, or email_id as either string or integer (42 or "42"). Batch tools (get_emails, bulk_action) accept string or numeric ID arrays (["42", "43"] or [42, 43]). list_emails and search_emails accept both hasAttachment and has_attachment. All Zod schemas avoid regex lookaheads so llama.cpp GBNF grammar compilation succeeds without errors.
  • Context Window Protection — get_email and get_thread default to format="text" and enforce a default maxLength of 20000 characters (appending a clear truncation notice when exceeded) so large HTML newsletters never overflow small context windows.
  • MCP `outputSchema` & `structuredContent` — Tools declare structured outputSchema contracts and return machine-readable structuredContent alongside human-readable text blocks.
  • Outgoing attachment paths must be regular files under the working directory or home — Security considerations

Docs

TopicWhere
First account, Claude Desktop / Cursor, and an agent's first MCP callsdocs/getting-started.md

| IMAP credentials, Gmail / iCloud app passwords, and experimental Google

Only the beginning is shown; read the rest in the repo

Ask PopNx