MCPLow riskUnclaimed

mailoo

Mailoo — email MCP server for IMAP, SMTP, and ManageSieve. Multi-account, per-folder profiles.

Bitfloobitfloo/mailooUpdated Oct 7, 2026

server.json

{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "name": "io.github.Bitfloo/mailoo",
  "description": "Mailoo — email MCP server for IMAP, SMTP, and ManageSieve. Multi-account, per-folder profiles.",
  "repository": {
    "url": "https://github.com/Bitfloo/mailoo.git",
    "source": "github"
  },
  "version": "0.1.8",
  "packages": [
    {
      "registryType": "npm",
      "identifier": "@bitfloo/mailoo",
      "version": "0.1.8",
      "runtimeHint": "npx",
      "transport": {
        "type": "stdio"
      },
      "runtimeArguments": [
        {
          "description": "Accept the npm install without a prompt",
          "value": "-y",
          "type": "positional"
        }
      ],
      "environmentVariables": [
        {
          "description": "Email address. Required for the environment-variable account.",
          "isRequired": true,
          "name": "MCP_EMAIL_ADDRESS"
        },
        {
          "description": "Password or app password. Required unless MCP_EMAIL_OAUTH2_PROVIDER is set.",
          "isSecret": true,
          "name": "MCP_EMAIL_PASSWORD"
        },
        {
          "description": "IMAP server hostname.",
          "isRequired": true,
          "name": "MCP_EMAIL_IMAP_HOST"
        },
        {
          "description": "SMTP server hostname.",
          "isRequired": true,
          "name": "MCP_EMAIL_SMTP_HOST"
        },
        {
          "description": "Account name. Defaults to default.",
          "name": "MCP_EMAIL_ACCOUNT_NAME"
        },
        {
          "description": "Display name on sent mail.",
          "name": "MCP_EMAIL_FULL_NAME"
        },
        {
          "description": "Login username. Defaults to the email address.",
          "name": "MCP_EMAIL_USERNAME"
        },
        {
          "description": "IMAP port. Defaults to 993.",
          "name": "MCP_EMAIL_IMAP_PORT"
        },
        {
          "description": "Set to false to turn off implicit IMAP TLS. Defaults to true.",
          "name": "MCP_EMAIL_IMAP_TLS"
        },
        {
          "description": "Set to true to upgrade IMAP with STARTTLS. Defaults to false.",
          "name": "MCP_EMAIL_IMAP_STARTTLS"
        },
        {
          "description": "Set to false to skip IMAP certificate verification. Defaults to true.",
          "name": "MCP_EMAIL_IMAP_VERIFY_SSL"
        },
        {
          "description": "Set to true to force IMAP4rev1 SEARCH.",
          "name": "MCP_EMAIL_IMAP_DISABLE_IMAP4REV2"
        },
        {
          "description": "ManageSieve hostname. Defaults to the IMAP host.",
          "name": "MCP_EMAIL_SIEVE_HOST"
        },
        {
          "description": "ManageSieve port. Defaults to 4190.",
          "name": "MCP_EMAIL_SIEVE_PORT"
        },
        {
          "description": "SMTP port. Defaults to 465.",
          "name": "MCP_EMAIL_SMTP_PORT"
        },
        {
          "description": "Set to false to turn off implicit SMTP TLS. Defaults to true.",
          "name": "MCP_EMAIL_SMTP_TLS"
        },
        {
          "description": "Set to true to upgrade SMTP with STARTTLS. Defaults to false.",
          "name": "MCP_EMAIL_SMTP_STARTTLS"
        },
        {
          "description": "Set to false to skip SMTP certificate verification. Defaults to true.",
          "name": "MCP_EMAIL_SMTP_VERIFY_SSL"
        },
        {
          "description": "Set to false to disable SMTP connection pooling. Defaults to true.",
          "name": "MCP_EMAIL_SMTP_POOL_ENABLED"
        },
        {
          "description": "Maximum pooled SMTP connections. Defaults to 1.",
          "name": "MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS"
        },
        {
          "description": "Maximum messages per pooled SMTP connection. Defaults to 100.",
          "name": "MCP_EMAIL_SMTP_POOL_MAX_MESSAGES"
        },
        {
          "description": "OAuth2 provider: google, microsoft, or custom.",
          "name": "MCP_EMAIL_OAUTH2_PROVIDER"
        },
        {
          "description": "OAuth2 client id.",
          "name": "MCP_EMAIL_OAUTH2_CLIENT_ID"
        },
        {
          "description": "OAuth2 client secret.",
          "isSecret": true,
          "name": "MCP_EMAIL_OAUTH2_CLIENT_SECRET"
        },
        {
          "description": "OAuth2 refresh token.",
          "isSecret": true,
          "name": "MCP_EMAIL_OAUTH2_REFRESH_TOKEN"
        },
        {
          "description": "Maximum sends per minute. Defaults to 10.",
          "name": "MCP_EMAIL_RATE_LIMIT"
        },
        {
          "description": "Set to true to omit write tools and mailbox writers.",
          "name": "MCP_EMAIL_READ_ONLY"
        },
        {
          "description": "Set to false to skip the IMAP Sent copy after SMTP. Defaults to true.",
          "name": "MCP_EMAIL_SAVE_TO_SENT"
        },
        {
          "description": "Set to true to start the IMAP IDLE watcher.",
          "name": "MCP_EMAIL_WATCHER_ENABLED"
        },
        {
          "description": "Comma-separated folders to watch. Defaults to INBOX.",
          "name": "MCP_EMAIL_WATCHER_FOLDERS"
        },
        {
          "description": "IMAP IDLE timeout in seconds. Defaults to 1740.",
          "name": "MCP_EMAIL_WATCHER_IDLE_TIMEOUT"
        },
        {
          "description": "What to do on arrival: triage, notify, or none.",
          "name": "MCP_EMAIL_HOOK_ON_NEW_EMAIL"
        },
        {
          "description": "Hook preset: inbox-zero, gtd, priority-focus, notification-only, or custom.",
          "name": "MCP_EMAIL_HOOK_PRESET"
        },
        {
          "description": "Set to true to apply labels from hook triage.",
          "name": "MCP_EMAIL_HOOK_AUTO_LABEL"
        },
        {
          "description": "Set to true to flag mail from hook triage.",
          "name": "MCP_EMAIL_HOOK_AUTO_FLAG"
        },
        {
          "description": "Seconds to batch arrivals before hooks run. Defaults to 5.",
          "name": "MCP_EMAIL_HOOK_BATCH_DELAY"
        },
        {
          "description": "Extra instructions appended to the hook preset.",
          "name": "MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS"
        },
        {
          "description": "Set to true for desktop notifications.",
          "name": "MCP_EMAIL_ALERT_DESKTOP"
        },
        {
          "description": "Set to true to play a sound with desktop notifications.",
          "name": "MCP_EMAIL_ALERT_SOUND"
        },
        {
          "description": "Minimum urgency for an alert: urgent, high, normal, or low.",
          "name": "MCP_EMAIL_ALERT_URGENCY_THRESHOLD"
        },
        {
          "description": "HTTP or HTTPS URL that receives alert POSTs.",
          "isSecret": true,
          "name": "MCP_EMAIL_ALERT_WEBHOOK_URL"
        },
        {
          "description": "Set to true to allow webhook targets on a LAN, VPN, or tailnet.",
          "name": "MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE"
        },
        {
          "description": "Set to true to create calendar events from hook triage.",
          "name": "MCP_EMAIL_HOOK_AUTO_CALENDAR"
        },
        {
          "description": "Calendar name for automatic events.",
          "name": "MCP_EMAIL_HOOK_CALENDAR_NAME"
        },
        {
          "description": "Minutes before an automatic event to alarm. Defaults to 15.",
          "name": "MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES"
        },
        {
          "description": "Set to false to skip confirming automatic calendar events. Defaults to true.",
          "name": "MCP_EMAIL_HOOK_CALENDAR_CONFIRM"
        },
        {
          "description": "Set to true to classify residue mail with System One. Off by default.",
          "name": "MCP_EMAIL_SYSTEM_ONE_ENABLED"
        },
        {
          "description": "HTTP listen address. Defaults to loopback. The host argument wins.",
          "name": "MCP_EMAIL_HTTP_HOST"
        },
        {
          "description": "Bearer token. Required when the HTTP listen address is not loopback or MCP_EMAIL_HTTP_ALLOWED_HOSTS lists a non-loopback name.",
          "isSecret": true,
          "name": "MCP_EMAIL_HTTP_TOKEN"
        },
        {
          "description": "Comma-separated Host names. Required for 0.0.0.0 and ::.",
          "name": "MCP_EMAIL_HTTP_ALLOWED_HOSTS"
        }
      ]
    }
  ]
}

Permissions

DeclaredDetected
Runs code—node
Installs—npm:@bitfloo/mailoo@0.1.8
Runs install scripts—None
NetworkNoneNone
Needs credentialsMCP_EMAIL_ALERT_WEBHOOK_URLMCP_EMAIL_HTTP_TOKENMCP_EMAIL_OAUTH2_CLIENT_SECRETMCP_EMAIL_OAUTH2_REFRESH_TOKENMCP_EMAIL_PASSWORDMCP_EMAIL_ALERT_WEBHOOK_URLMCP_EMAIL_HTTP_TOKENMCP_EMAIL_OAUTH2_CLIENT_SECRETMCP_EMAIL_OAUTH2_REFRESH_TOKENMCP_EMAIL_PASSWORD
Outside the workspace—None
Agent tools—None

Checks

Low risk · Nothing worth a warning was found.

Not reviewed by a person · Checked by rules; the model review is not switched on yet.

Versions

  1. #20.1.8latestOct 7, 2026
  2. #10.1.7Oct 7, 2026