# e2a

> Gives your agent its own two-way email inbox to send, receive and reply in-thread, with optional human approval before mail goes out.

e2a is an open-source email API for applications and AI agents, from TokenCanopy. Its hosted MCP server gives your agent its own two-way email address, on the shared agents.e2a.dev domain or on a domain you verify, so it can send, receive and reply in-thread. You can also hold its outgoing mail for a person to approve before it leaves.

What you can do with it
- Read the inbox, fetch full messages and attachments, and label, trash or restore mail (list_messages, get_message, get_attachment, update_message_labels, delete_message, restore_message).
- Send new email, reply in the same thread and forward messages, now or at a set time (send_message, reply_to_message, forward_message; scheduled sending is in beta).
- Review held mail: list what's waiting, then approve, edit or reject it (list_reviews, get_review, approve_review, reject_review). Only an account-level sign-in can approve, so an agent can't approve its own mail.
- Set up inboxes and domains: create agent inboxes, register a custom sending domain and get its DNS records, and mint agent-scoped API keys (create_agent, register_domain, create_api_key).
- Manage contacts, outreach, email templates and suppression lists (several of these are in beta).

How it connects
It's a hosted MCP server at https://api.e2a.dev/mcp. In an agent that supports OAuth connectors, add the address and sign in to e2a in your browser; there's no key to paste. For programmatic use, send an e2a API key from the dashboard as a Bearer token instead. e2a's docs show Claude Desktop, Cursor, Cline, Google ADK, LangChain and the OpenAI Agents SDK, and it also offers a Claude Code plugin.

Good to know
- The tools you get depend on the sign-in: an agent-scoped credential sees the inbox tools for its one agent, and an account-scoped one also sees the admin and review tools.
- Every inbound message carries SPF, DKIM and DMARC results, and optional screening can flag prompt injection and hold suspicious mail for review.
- Human approval is opt-in per agent. Held mail waits until a person approves it from the dashboard, the MCP tools, the API or an emailed link.
- On the hosted service, an account can mail its own verified address and its own agent inboxes straight away. Mailing anyone else from the shared domain needs a one-time approval from e2a, which you can request with request_sending_access.
- There's a free plan, and paid plans raise the limits. e2a is Apache-2.0 and can be self-hosted.

- Type: Plugin
- Made by: E2a
- Category: Communication
- Formats: Remote MCP
- Version: 1.0.0
- Website: https://e2a.dev/
- Source: https://github.com/tokencanopy/e2a/tree/HEAD/mcp
- Page: https://pluginboard.ai/plugins/e2a

## Works with

- ChatGPT
- Claude
- Muse
- Grok Bot
- Gemini
- Grok
- GitHub Copilot
- Cursor
- Claude Code
- Codex
- Antigravity
- Gemini CLI
- Replit
- OpenClaw
- OpenCode
- Hermes Agent

## Install

You'll need:

- `Authorization` (optional): OAuth 2.1 is the recommended connection (add the connector and authorize — no key to paste; auto-discovered via /.well-known/oauth-protected-resource). For programmatic / self-host use, a Bearer e2a API key (e2a_acct_… or e2a_agt_…) is also accepted.

Replace each `<NAME>` placeholder with your own value.

### ChatGPT

In ChatGPT on the web: Plugins → + → Add custom MCP server, then paste https://api.e2a.dev/mcp under Connection. Business and Enterprise plans; Pro can add read-only servers.

### Claude

In Claude (web or desktop): Customize → Connectors → Add custom connector, then paste https://api.e2a.dev/mcp

### Muse

In Muse: In a Muse chat, ask it to create a custom connector for the MCP server at https://api.e2a.dev/mcp. Then tap Connect on the card it shows and sign in, or add your key.

### Grok Bot

In Grok Bot: In a chat with your Bot, say "Add this MCP server: https://api.e2a.dev/mcp". It confirms the details with you and sets it up, and the tools are ready from your next message.

### Gemini

In Gemini: At gemini.google.com: Settings → Connected Apps → Add a custom app, then paste https://api.e2a.dev/mcp

### Grok

In Grok on the web: At grok.com/connectors: New Connector → Custom, then enter https://api.e2a.dev/mcp and sign in if it asks.

### GitHub Copilot

Add to VS Code: vscode:mcp/install?%7B%22name%22%3A%22e2a%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fapi.e2a.dev%2Fmcp%22%7D

Copilot CLI:

```shell
copilot mcp add --transport http e2a https://api.e2a.dev/mcp
```

### Cursor

Add to Cursor: cursor://anysphere.cursor-deeplink/mcp/install?name=e2a&config=eyJ1cmwiOiJodHRwczovL2FwaS5lMmEuZGV2L21jcCJ9

Add to .cursor/mcp.json:

```json
{
  "mcpServers": {
    "e2a": {
      "url": "https://api.e2a.dev/mcp"
    }
  }
}
```

### Claude Code

Run in your terminal:

```shell
claude mcp add --transport http e2a https://api.e2a.dev/mcp
```

### Codex

Run in your terminal:

```shell
codex mcp add e2a --url https://api.e2a.dev/mcp
```

### Antigravity

Add to ~/.gemini/config/mcp_config.json:

```json
{
  "mcpServers": {
    "e2a": {
      "url": "https://api.e2a.dev/mcp"
    }
  }
}
```

### Gemini CLI

Run in your terminal:

```shell
gemini mcp add --transport http e2a https://api.e2a.dev/mcp
```

### Replit

In Replit: At replit.com/integrations, open MCP Servers → + Add MCP server, paste https://api.e2a.dev/mcp (add any headers under Advanced settings), then click Test & save.

### OpenClaw

Run in your terminal:

```shell
openclaw mcp add e2a --url https://api.e2a.dev/mcp --transport streamable-http
```

If it needs a key or sign-in: For https://api.e2a.dev/mcp, add --header NAME=value for each header it needs, or --auth oauth and then run openclaw mcp login e2a.

### OpenCode

Run in your terminal:

```shell
opencode mcp add e2a --url https://api.e2a.dev/mcp
```

If it needs a key: For https://api.e2a.dev/mcp, add --header 'NAME=value' for each header it needs. Add --global to use it in every project.

### Hermes Agent

Run in your terminal:

```shell
hermes mcp add e2a --url https://api.e2a.dev/mcp
```

Add to ~/.hermes/config.yaml:

```json
{
  "mcp_servers": {
    "e2a": {
      "url": "https://api.e2a.dev/mcp"
    }
  }
}
```

If it signs in with OAuth: If https://api.e2a.dev/mcp asks you to sign in, add --auth oauth to the command, or auth: oauth to its entry.

---
From Pluginboard (https://pluginboard.ai).
