# MultiMail MCP server

> Provides AI agents with email addresses featuring graduated human oversight, cryptographic identity, and per-recipient sending controls.

- Repository: https://github.com/multimail-dev/mcp-server
- Page: https://hostedmcp.org/servers/multimail-dev/mcp-server
- Transport: stdio, remote
- Stars: 2
- License: MIT
- Latest version: 0.13.0

## Install

### Claude Code

```sh
claude mcp add --env MULTIMAIL_API_KEY=<YOUR_MULTIMAIL_API_KEY> mcp-server -- npx -y @multimail/mcp-server
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@multimail/mcp-server"
      ],
      "env": {
        "MULTIMAIL_API_KEY": "<YOUR_MULTIMAIL_API_KEY>"
      }
    }
  }
}
```

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@multimail/mcp-server"
      ],
      "env": {
        "MULTIMAIL_API_KEY": "<YOUR_MULTIMAIL_API_KEY>"
      }
    }
  }
}
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@multimail/mcp-server"
      ],
      "env": {
        "MULTIMAIL_API_KEY": "<YOUR_MULTIMAIL_API_KEY>"
      }
    }
  }
}
```

### Codex (`~/.codex/config.toml`)

```toml
[mcp_servers.mcp-server]
command = "npx"
args = ["-y", "@multimail/mcp-server"]

[mcp_servers.mcp-server.env]
MULTIMAIL_API_KEY = "<YOUR_MULTIMAIL_API_KEY>"
```

### Gemini CLI (`~/.gemini/settings.json`)

```json
{
  "mcpServers": {
    "mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@multimail/mcp-server"
      ],
      "env": {
        "MULTIMAIL_API_KEY": "<YOUR_MULTIMAIL_API_KEY>"
      }
    }
  }
}
```

## Environment variables

| Name | Required | Secret | Description |
|---|---|---|---|
| `MULTIMAIL_API_KEY` | no | yes | Your MultiMail API key (starts with mm_live_). Optional — run without it to create an account first. |
| `MULTIMAIL_MAILBOX_ID` | no | no | Default mailbox ID. If not set, pass mailbox_id to each tool or call list_mailboxes first. |

## Tools (50)

- `send_email`
- `check_inbox`
- `read_email`
- `reply_email`
- `get_thread`
- `download_attachment`
- `cancel_message`
- `edit_scheduled_email`
- `wait_for_email`
- `get_tags`
- `set_tags`
- `delete_tag`
- `list_pending`
- `decide_email`
- `manage_upgrade`
- `list_allowlist`
- `add_allowlist_entry`
- `remove_allowlist_entry`
- `list_mailboxes`
- `configure_mailbox`
- `update_mailbox`
- `create_mailbox`
- `delete_mailbox`
- `get_account`
- `update_account`
- `delete_account`
- `get_usage`
- `upgrade_plan`
- `cancel_subscription`
- `get_billing_portal`
- `request_challenge`
- `create_account`
- `resend_confirmation`
- `activate_account`
- `setup_multimail`
- `list_api_keys`
- `create_api_key`
- `revoke_api_key`
- `get_audit_log`
- `search_contacts`
- `add_contact`
- `delete_contact`
- `manage_spam_status`
- `list_spam`
- `list_suppression`
- `remove_suppression`
- `create_webhook`
- `list_webhooks`
- `delete_webhook`
- `report_issue`

## FAQ

### How does the trust ladder work?

Mailboxes use oversight modes ranging from read-only to fully autonomous, allowing users to graduate agent trust over time.

### Can I allow certain recipients to bypass email approval?

Yes, you can use a per-recipient allowlist for specific addresses or domain wildcards to bypass the approval queue in gated_send mode.

### How is email security and identity handled?

Outbound emails include a signed ECDSA P-256 header for cryptographic identity and a reputation header for privacy-preserving data.
