# Mailoo - Email MCP Server MCP server

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

## At a glance

Mailoo - Email MCP Server is an MCP server in the Productivity category. It runs locally over stdio via `npx -y @bitfloo/mailoo`, and needs MCP_EMAIL_ADDRESS, MCP_EMAIL_IMAP_HOST, MCP_EMAIL_SMTP_HOST, MCP_EMAIL_PASSWORD and MCP_EMAIL_OAUTH2_CLIENT_SECRET. It exposes 66 tools, including osascript, notify-send and paplay. It scores A (80/100) on the MCP Skills Hub health score as of Oct 28, 2026.

## Install

### How to install Mailoo - Email MCP Server in Claude Code

1. Add the server

```bash
claude mcp add mailoo -e 'MCP_EMAIL_ADDRESS=<MCP_EMAIL_ADDRESS>' -e 'MCP_EMAIL_PASSWORD=<MCP_EMAIL_PASSWORD>' -e 'MCP_EMAIL_IMAP_HOST=<MCP_EMAIL_IMAP_HOST>' -e 'MCP_EMAIL_SMTP_HOST=<MCP_EMAIL_SMTP_HOST>' -e 'MCP_EMAIL_OAUTH2_CLIENT_SECRET=<MCP_EMAIL_OAUTH2_CLIENT_SECRET>' -- npx -y @bitfloo/mailoo
```

2. Fill in your credentials

   Replace <MCP_EMAIL_ADDRESS>, <MCP_EMAIL_PASSWORD>, <MCP_EMAIL_IMAP_HOST>, <MCP_EMAIL_SMTP_HOST>, <MCP_EMAIL_OAUTH2_CLIENT_SECRET> with your real values. Keep secrets out of any config file you commit.

3. Verify it's connected

```bash
claude mcp list
```

4. Sharing it with your team?

   Add `--scope project` to write it to .mcp.json in the repository root, which you can commit (with the secrets left as environment variables).

5. Use it in a session

   Ask Claude to use the tools this server exposes (e.g. osascript, notify-send, paplay). It discovers them automatically.

### How to install Mailoo - Email MCP Server in Claude Desktop

1. Open your MCP config

   macOS: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%\Claude\claude_desktop_config.json

2. Add this server

```json
{
  "mcpServers": {
    "mailoo": {
      "command": "npx",
      "args": [
        "-y",
        "@bitfloo/mailoo"
      ],
      "env": {
        "MCP_EMAIL_ADDRESS": "<MCP_EMAIL_ADDRESS>",
        "MCP_EMAIL_PASSWORD": "<MCP_EMAIL_PASSWORD>",
        "MCP_EMAIL_IMAP_HOST": "<MCP_EMAIL_IMAP_HOST>",
        "MCP_EMAIL_SMTP_HOST": "<MCP_EMAIL_SMTP_HOST>",
        "MCP_EMAIL_OAUTH2_CLIENT_SECRET": "<MCP_EMAIL_OAUTH2_CLIENT_SECRET>"
      }
    }
  }
}
```

3. Fill in your credentials

   Replace <MCP_EMAIL_ADDRESS>, <MCP_EMAIL_PASSWORD>, <MCP_EMAIL_IMAP_HOST>, <MCP_EMAIL_SMTP_HOST>, <MCP_EMAIL_OAUTH2_CLIENT_SECRET> with your real values. Keep secrets out of any config file you commit.

4. Restart Claude Desktop

   The tools appear under the 🔌 menu once the app reloads.

### How to install Mailoo - Email MCP Server in Cursor

1. Create / edit .cursor/mcp.json in your project

```json
{
  "mcpServers": {
    "mailoo": {
      "command": "npx",
      "args": [
        "-y",
        "@bitfloo/mailoo"
      ],
      "env": {
        "MCP_EMAIL_ADDRESS": "<MCP_EMAIL_ADDRESS>",
        "MCP_EMAIL_PASSWORD": "<MCP_EMAIL_PASSWORD>",
        "MCP_EMAIL_IMAP_HOST": "<MCP_EMAIL_IMAP_HOST>",
        "MCP_EMAIL_SMTP_HOST": "<MCP_EMAIL_SMTP_HOST>",
        "MCP_EMAIL_OAUTH2_CLIENT_SECRET": "<MCP_EMAIL_OAUTH2_CLIENT_SECRET>"
      }
    }
  }
}
```

2. Fill in your credentials

   Replace <MCP_EMAIL_ADDRESS>, <MCP_EMAIL_PASSWORD>, <MCP_EMAIL_IMAP_HOST>, <MCP_EMAIL_SMTP_HOST>, <MCP_EMAIL_OAUTH2_CLIENT_SECRET> with your real values. Keep secrets out of any config file you commit.

3. Enable it

   Cursor Settings → MCP → toggle the server on. Tools become available to the Composer/Agent.

### How to install Mailoo - Email MCP Server in Codex CLI

1. Add to ~/.codex/config.toml

```toml
[mcp_servers.mailoo]
command = "npx"
args = ["-y", "@bitfloo/mailoo"]
env = { MCP_EMAIL_ADDRESS = "<MCP_EMAIL_ADDRESS>", MCP_EMAIL_PASSWORD = "<MCP_EMAIL_PASSWORD>", MCP_EMAIL_IMAP_HOST = "<MCP_EMAIL_IMAP_HOST>", MCP_EMAIL_SMTP_HOST = "<MCP_EMAIL_SMTP_HOST>", MCP_EMAIL_OAUTH2_CLIENT_SECRET = "<MCP_EMAIL_OAUTH2_CLIENT_SECRET>" }
```

2. Fill in your credentials

   Replace <MCP_EMAIL_ADDRESS>, <MCP_EMAIL_PASSWORD>, <MCP_EMAIL_IMAP_HOST>, <MCP_EMAIL_SMTP_HOST>, <MCP_EMAIL_OAUTH2_CLIENT_SECRET> with your real values. Keep secrets out of any config file you commit.

3. Run Codex

   Codex loads MCP servers from config.toml on startup and exposes their tools to the agent.

### How to install Mailoo - Email MCP Server in Windsurf

1. Edit ~/.codeium/windsurf/mcp_config.json

```json
{
  "mcpServers": {
    "mailoo": {
      "command": "npx",
      "args": [
        "-y",
        "@bitfloo/mailoo"
      ],
      "env": {
        "MCP_EMAIL_ADDRESS": "<MCP_EMAIL_ADDRESS>",
        "MCP_EMAIL_PASSWORD": "<MCP_EMAIL_PASSWORD>",
        "MCP_EMAIL_IMAP_HOST": "<MCP_EMAIL_IMAP_HOST>",
        "MCP_EMAIL_SMTP_HOST": "<MCP_EMAIL_SMTP_HOST>",
        "MCP_EMAIL_OAUTH2_CLIENT_SECRET": "<MCP_EMAIL_OAUTH2_CLIENT_SECRET>"
      }
    }
  }
}
```

2. Fill in your credentials

   Replace <MCP_EMAIL_ADDRESS>, <MCP_EMAIL_PASSWORD>, <MCP_EMAIL_IMAP_HOST>, <MCP_EMAIL_SMTP_HOST>, <MCP_EMAIL_OAUTH2_CLIENT_SECRET> with your real values. Keep secrets out of any config file you commit.

3. Reload

   Windsurf → Cascade → refresh MCP servers. Cascade can now call the tools.

### How to install Mailoo - Email MCP Server in Cline

1. Open Cline → MCP Servers → Configure

   Adds to cline_mcp_settings.json.

2. Add the server

```json
{
  "mcpServers": {
    "mailoo": {
      "command": "npx",
      "args": [
        "-y",
        "@bitfloo/mailoo"
      ],
      "env": {
        "MCP_EMAIL_ADDRESS": "<MCP_EMAIL_ADDRESS>",
        "MCP_EMAIL_PASSWORD": "<MCP_EMAIL_PASSWORD>",
        "MCP_EMAIL_IMAP_HOST": "<MCP_EMAIL_IMAP_HOST>",
        "MCP_EMAIL_SMTP_HOST": "<MCP_EMAIL_SMTP_HOST>",
        "MCP_EMAIL_OAUTH2_CLIENT_SECRET": "<MCP_EMAIL_OAUTH2_CLIENT_SECRET>"
      }
    }
  }
}
```

3. Fill in your credentials

   Replace <MCP_EMAIL_ADDRESS>, <MCP_EMAIL_PASSWORD>, <MCP_EMAIL_IMAP_HOST>, <MCP_EMAIL_SMTP_HOST>, <MCP_EMAIL_OAUTH2_CLIENT_SECRET> with your real values. Keep secrets out of any config file you commit.

### How to install Mailoo - Email MCP Server in VS Code

1. Create .vscode/mcp.json

```json
{
  "servers": {
    "mailoo": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@bitfloo/mailoo"
      ],
      "env": {
        "MCP_EMAIL_ADDRESS": "<MCP_EMAIL_ADDRESS>",
        "MCP_EMAIL_PASSWORD": "<MCP_EMAIL_PASSWORD>",
        "MCP_EMAIL_IMAP_HOST": "<MCP_EMAIL_IMAP_HOST>",
        "MCP_EMAIL_SMTP_HOST": "<MCP_EMAIL_SMTP_HOST>",
        "MCP_EMAIL_OAUTH2_CLIENT_SECRET": "<MCP_EMAIL_OAUTH2_CLIENT_SECRET>"
      }
    }
  }
}
```

2. Fill in your credentials

   Replace <MCP_EMAIL_ADDRESS>, <MCP_EMAIL_PASSWORD>, <MCP_EMAIL_IMAP_HOST>, <MCP_EMAIL_SMTP_HOST>, <MCP_EMAIL_OAUTH2_CLIENT_SECRET> with your real values. Keep secrets out of any config file you commit.

3. Start it

   VS Code shows a ▶ Start action above the server entry. Agent mode (Copilot Chat) can then use the tools.

## Tools

- `osascript` — macOS notifications, calendar events, reminders
- `notify-send` — Linux desktop notifications
- `paplay` — Linux notification sound
- `powershell` — Windows balloon notifications
- `which` — Checks that `osascript`, `afplay`, `notify-send`, `paplay`, or `powershell` exists. `afplay` is only probed; macOS sound goes through `osascript`
- `xdg-open` — Opens a temporary calendar file on Linux
- `launchctl` — Installs, removes or checks (`scheduler status`) the macOS scheduler agent
- `crontab` — Installs, removes or checks (`scheduler status`) the Linux scheduler line
- `savePath` — `download_attachment` or `export_email` when that argument is set
- `list_accounts` — List all configured email accounts
- `list_mailboxes` — List folders with unread counts and special-use flags
- `list_emails` — Paginated email listing with date, sender, subject, and flag filters
- `get_email` — Read full email content with attachment metadata
- `get_emails` — Fetch full content of multiple emails in a single call (max 20)
- `get_email_status` — Get read/flag/label state of an email without fetching the body
- `search_emails` — Search by keyword; `since`/`before` (aliases `start_date`/`end_date`)
- `download_attachment` — Download an attachment (base64, or `savePath` to disk — not a read-only write)
- `export_email` — Export one message as its raw RFC 822 `.eml` source (base64, or `savePath` to disk); flags unchanged
- `find_email_folder` — Discover the real folder(s) an email resides in (resolves virtual folders)
- `extract_contacts` — Extract unique contacts from recent email headers
- `get_thread` — Reconstruct a conversation thread via References/In-Reply-To
- `list_templates` — List available email templates
- `get_email_stats` — Email analytics — volume, top senders, daily trends
- `check_health` — Connection health, latency, quota, and IMAP capabilities
- `get_email_security` — Read-only SPF/DKIM/DMARC and From/Reply-To/Return-Path domains
- `sieve_status` — Whether ManageSieve is reachable (default port 4190)
- `sieve_list_scripts` — List ManageSieve scripts
- `sieve_get_script` — Download a ManageSieve script
- `send_email` — Send a new email (plain text or HTML, CC/BCC, attachments)
- `reply_email` — Reply with proper threading (In-Reply-To, References)
- `forward_email` — Forward with original content quoted
- `save_draft` — Save a draft (RFC 2047 subjects; optional attachments)
- `send_draft` — Send an existing draft and remove from Drafts
- `apply_template` — Apply a template with variable substitution
- `schedule_email` — Schedule an email for future delivery
- `list_scheduled` — List scheduled emails by status
- `cancel_scheduled` — Cancel a pending scheduled email
- `sieve_put_script` — Create or replace a ManageSieve script (does not activate)
- `sieve_delete_script` — Delete a ManageSieve script
- `sieve_activate_script` — Activate a script (empty name deactivates all)
- `move_email` — Move email between folders
- `delete_email` — Move to Trash or permanently delete
- `mark_email` — Mark as read/unread, flag/unflag
- `bulk_action` — Batch operation on up to 100 emails
- `create_mailbox` — Create a new mailbox folder
- `rename_mailbox` — Rename an existing mailbox folder (not INBOX or a special-use folder)
- `delete_mailbox` — Permanently delete a mailbox and contents (not INBOX or a special-use folder)
- `list_labels` — Discover available labels (auto-detects provider strategy)
- `add_label` — Add a label to an email (ProtonMail folders, Gmail X-GM-LABELS, or IMAP keywords)
- `remove_label` — Remove a label from an email
- `create_label` — Create a new label
- `delete_label` — Delete a label (on Gmail, not INBOX or a special-use folder)
- `get_watcher_status` — Show IMAP IDLE connections, folders being monitored, and last-seen UIDs
- `list_presets` — List available AI triage presets with descriptions and suggested labels
- `get_hooks_config` — Show current hooks configuration — preset, rules, and custom instructions
- `configure_alerts` — Update alert/notification settings at runtime
- `check_notification_setup` — Diagnose desktop notification support and provide setup instructions
- `test_notification` — Send a test notification to verify OS permissions are configured
- `extract_calendar` — Extract ICS/iCalendar events from an email
- `analyze_email_for_scheduling` — Analyze an email to detect events and reminder-worthy content
- `add_to_calendar` — Add an email event to the local calendar (macOS/Linux)
- `create_reminder` — Create a reminder in macOS Reminders.app from an email
- `list_calendars` — List all available local calendars
- `list_events` — List local calendar events with optional title, date, and calendar filters
- `list_reminders` — List Reminders.app items with optional title and list filters
- `check_calendar_permissions` — Check whether the local calendar is accessible

Source repository: https://github.com/Bitfloo/mailoo.git

---

Source: https://mcp-skills-hub.vercel.app/mcps/io-github-bitfloo-mailoo · MCP Skills Hub · data as of 2026-10-28T12:31:05Z
