# e2a — email for AI agents (MCP server)

> e2a — email for AI agents is an MCP server that adds messaging tools to AI assistants such as Claude Desktop, Claude Code and Cursor. Authenticated email gateway for AI agents — per-agent inboxes, HITL approval, SPF/DKIM verified. It has 192 GitHub stars, is released under the Apache-2.0 license and runs locally with npx -y @e2a/mcp-server.

Model Context Protocol server for e2a — gives any MCP-aware AI agent its own email inbox to send, receive, reply, and (optionally) review held outbound mail before it ships.

## Key facts

| Fact | Value |
|---|---|
| Repository | https://github.com/tokencanopy/e2a |
| GitHub stars | 192 |
| License | Apache-2.0 |
| Language | Go |
| Transport | stdio, streamable-http |
| Packages | npm: @e2a/mcp-server |
| Remote URL | https://mcp.e2a.dev/mcp |
| Needs API key | yes |
| Official | no |
| Works with | Claude Desktop, Claude Code, Cursor, VS Code, Claude.ai, ChatGPT |
| Category | Communication |
| Latest release | v1.15.2 (Sep 30, 2026) |
| Last commit | Oct 6, 2026 |
| MCP registry name | io.github.Mnexa-AI/mcp-server |

## Install

### Claude Desktop (claude_desktop_config.json)

```json
{
  "mcpServers": {
    "e2a-email-for-ai-agents": {
      "command": "npx",
      "args": [
        "-y",
        "@e2a/mcp-server"
      ],
      "env": {
        "E2A_API_KEY": "your-value"
      }
    }
  }
}
```

Settings > Developer > Edit Config. macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\. Restart Claude Desktop afterwards.

### Claude Code

```sh
claude mcp add --env E2A_API_KEY=your-value --transport stdio e2a-email-for-ai-agents -- npx -y @e2a/mcp-server
```

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

```json
{
  "mcpServers": {
    "e2a-email-for-ai-agents": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@e2a/mcp-server"
      ],
      "env": {
        "E2A_API_KEY": "your-value"
      }
    }
  }
}
```

Project file; use ~/.cursor/mcp.json to enable it in every project.

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

```json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "e2a_api_key",
      "description": "E2A_API_KEY",
      "password": true
    }
  ],
  "servers": {
    "e2a-email-for-ai-agents": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@e2a/mcp-server"
      ],
      "env": {
        "E2A_API_KEY": "${input:e2a_api_key}"
      }
    }
  }
}
```

### Claude Code (remote)

```sh
claude mcp add --transport http e2a-email-for-ai-agents "https://mcp.e2a.dev/mcp"
```

The same server is also hosted as a remote MCP endpoint, so nothing runs on your machine.

Config formats checked against the official docs on 2026-10-07.

## Environment variables

- `E2A_API_KEY` (secret) (required): e2a API key from https://e2a.dev
- `E2A_AGENT_EMAIL`: Default agent inbox (e.g. bot@your-domain.com). Optional — single-agent accounts auto-resolve.
- `E2A_BASE_URL`: Self-hosted e2a backend URL. Defaults to https://e2a.dev.

## Tools

- `whoami`: Get the authenticated account's identity — user, scope, plan/limits; for an agent-scoped credential, also the bound…
- `list_agents`: List agent inboxes; pass deleted:true to list the 30-day trash. (Admin/account-scoped.)
- `get_agent`: Get one agent inbox by its full email address.
- `create_agent`: Register a new agent by its full email address — on a verified domain you own, or the deployment's shared domain.
- `restore_agent`: Restore a soft-deleted agent and its configuration. (Admin/account-scoped.)
- `send_message`: Send a new email. Immediate queueing returns status: accepted; future sendat returns status: scheduled plus…
- `reply_to_message`: Reply to a message — one the agent received (replies to its sender) or one it sent (continues the thread to the…
- `forward_message`: Forward a message into a new thread, carrying its existing attachments by default.
- `list_messages`: List mail; pass deleted:true to list trash. Filter by readstatus (unread / read / all) and sender with…
- `delete_message`: Move a message to the trash (restorable for ~30 days). Requires confirm: true.
- `restore_message`: Restore a soft-deleted message and resume its retention clock.
- `get_message`: Fetch full body, headers, and attachment metadata for one message.
- `get_attachment`: Get one attachment's metadata + a short-lived downloadurl (fetch the bytes out of band); inline: true returns base64…
- `update_message_labels`: Add or remove labels on a message.
- `list_reviews`: List inbound and outbound messages awaiting human review across the account, soonest-expiring first.
- `get_review`: Get the full held message (body, recipients, and screening context where applicable).
- `approve_review`: Outbound: send a held message, optionally with reviewer edits (subject / body / recipients).
- `reject_review`: Outbound: discard a held message. Inbound: drop the screening hold so it never reaches the agent.
- `register_domain`: Register a custom sending domain; returns the MX + TXT DNS records to publish. (Admin/account-scoped.)
- `list_api_keys`: List the account's API keys — metadata only (secrets are shown once, at creation).
- `create_api_key`: Mint a new agent-scoped key bound to an inbox; returns the plaintext key ONCE — store it immediately.
- `delete_api_key`: Revoke a key permanently (requires confirm: true).
- `import_contacts`: Bulk-import contacts from rows, optionally enrolling them into an agent's outreach.
- `delete_contact_import`: Reverse an import batch, removing untouched contacts and the enrolments it created.
- `set_outreach_contact`: Enroll a contact in an agent's outreach, or update the agent-owned fields (stage, next action).
- `delete_outreach_contact`: Un-enroll a contact from an agent's outreach; the contact and its suppressions survive.
- `list_suppressions`: List the account-wide suppression list (address, source bounce/complaint/manual, reason, source message id).
- `delete_suppression`: Un-suppress a recipient account-wide. Requires confirm: true; only use it for addresses known to be deliverable —…
- `list_agent_suppressions`: List one agent's blocked recipients (unsubscribe/manual).
- `create_agent_suppression`: Idempotently add a manual block for one agent; other agents can still mail the address.
- `delete_agent_suppression`: Remove only the exact agent-scoped block. Requires confirm: true because the block may represent an unsubscribe.
- `create_template`: Create a template from literal source — or copy a starter verbatim with fromstarter.
- `validate_template`: Dry-run source: parse errors, a rendered preview against testdata, and suggestedData placeholders.

## Similar MCP servers

- [Strata](https://appsgit.com/mcp-servers/strata): MCP server for progressive tool usage at any scale (see https://klavis.ai). (5,807 stars, Apache-2.0, official)
- [Vexa](https://appsgit.com/mcp-servers/vexa): Meeting bot and transcripts for Google Meet, Teams and Zoom. (2,856 stars, Apache-2.0, official, needs API key)
- [MCP Server for WinDbg Crash Analysis](https://appsgit.com/mcp-servers/mcp-server-for-windbg-crash-analysis): A Model Context Protocol server for Windows crash dump analysis using WinDbg/CDB. (1,607 stars, MIT)
- [Rocketmq Rust](https://appsgit.com/mcp-servers/rocketmq-rust): 🚀 Apache RocketMQ built in Rust 🦀 — faster, safer, and more memory-efficient. (1,524 stars, Apache-2.0)
- [Wassette](https://appsgit.com/mcp-servers/wassette): Wassette: A security-oriented runtime that runs WebAssembly Components via MCP. (957 stars, MIT, official)
- [Line Bot MCP Server](https://appsgit.com/mcp-servers/line-bot-mcp-server): MCP server that integrates the LINE Messaging API to connect an AI Agent to the LINE Official Account. (783 stars, Apache-2.0, official, needs API key)

---

Canonical page: https://appsgit.com/mcp-servers/e2a-email-for-ai-agents
Source: appsgit (https://appsgit.com), the app store for github. Data from the GitHub API, refreshed nightly.
Machine access: JSON API https://appsgit.com/api/v1/apps (OpenAPI: https://appsgit.com/openapi.json), MCP server https://mcp.appsgit.com/mcp, full index https://appsgit.com/llms-full.txt.
