MCP SERVER

Email over MCP — give your AI agent a real inbox

e2a is an MCP server that gives an AI agent its own authenticated email address. Connect Claude Code, Codex, Cursor, or any Streamable HTTP MCP client in one command and the agent can send, receive, reply, and forward real mail — with SPF/DKIM-verified inbound and an optional approval hold before anything leaves. OAuth 2.1, no API key, free tier.

ENDPOINThttps://api.e2a.dev/mcpStreamable HTTP · OAuth 2.1

How do I connect my MCP client?

Point the client at https://api.e2a.dev/mcp over Streamable HTTP and authorize in the browser. e2a uses OAuth 2.1 with Dynamic Client Registration, so the client registers itself — there is no key to paste and no secret to store.

Claude Code

One command, then authorize in the browser.

claude mcp add --transport http --scope user e2a https://api.e2a.dev/mcp

Run /mcp in Claude Code and authorize e2a. --scope user makes it available in every project; omit it to configure only the current one.

OpenAI Codex

Add the server, then log in.

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

Cursor · Windsurf · Claude Desktop

Add the endpoint to the client's MCP configuration.

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

Complete the OAuth prompt when the client opens it.

VS Code with GitHub Copilot

Add .vscode/mcp.json with the servers key.

{
  "servers": {
    "e2a": {
      "type": "http",
      "url": "https://api.e2a.dev/mcp"
    }
  }
}

For Goose, Zed, and other MCP clients, use the same endpoint. Ready-to-paste configurations live in the client examples. For headless or CI runs where no browser is available, pass an account API key instead — see setup.md.

What can the agent do once it is connected?

The MCP server exposes the full mail surface as tools, so the agent works in its inbox the way a person works in theirs:

  • Send and reply. Compose new mail, reply in-thread, forward, and attach files.
  • Read inbound. List conversations and messages, and pull attachments.
  • Manage identity. Create agents, claim a slug, or register and verify a custom domain.
  • Route and screen. Suppressions, contacts, templates, and webhooks for downstream systems.

How is this different from a Gmail MCP server?

A Gmail integration lets an agent read a human’s mailbox. With e2a the inbox is the agent — it has its own verified sending identity, so recipients can tell agent mail from yours, and revoking it never touches your personal mail.

Every inbound message is checked for SPF, DKIM, and DMARC before the agent sees it, and the result is handed over as structured evidence rather than a header the agent has to parse and trust. Optional prompt-injection and phishing screening runs on the same path, and human-in-the-loop approval can hold any outbound send until you approve it from the dashboard, the CLI, or your own inbox.

Frequently asked questions

How do I give my AI agent an email address?

Add the e2a MCP server to your agent's client and authorize it in the browser. In Claude Code that is a single command: `claude mcp add --transport http --scope user e2a https://api.e2a.dev/mcp`, then `/mcp` to authorize. The agent gets its own address on agents.e2a.dev — or on a domain you own — and can send, receive, reply, and forward mail from that moment on.

Do I need an API key to use the e2a MCP server?

No. The hosted MCP server at https://api.e2a.dev/mcp uses OAuth 2.1 with Dynamic Client Registration (RFC 7591) and PKCE, so an interactive client registers itself and completes authorization in the browser with no secret to paste. API keys exist for headless and CI use, where a browser flow is not available.

Which MCP clients does e2a work with?

Any client that speaks Streamable HTTP MCP. e2a is tested with Claude Code, OpenAI Codex, Cursor, Windsurf, Claude Desktop, and VS Code with GitHub Copilot. All of them point at the same endpoint, https://api.e2a.dev/mcp; only the configuration syntax differs.

How is this different from connecting an agent to Gmail?

A Gmail integration lets an agent read a human's mailbox. With e2a the inbox belongs to the agent itself: it has its own verified sending identity, so recipients can tell agent mail apart from yours, and revoking it does not touch your personal mail. e2a also verifies SPF, DKIM, and DMARC on every inbound message and hands the agent that authentication evidence, which a mailbox integration does not.

Can I review what the agent sends before it goes out?

Yes. Human-in-the-loop approval can be enabled per agent. When it is on, an outbound send is held and you get an approve or reject prompt — in the dashboard, the CLI, or straight from your own inbox — and the message only leaves once you approve it.

Is e2a open source?

Yes. The core is Apache-2.0 at github.com/tokencanopy/e2a — Go backend, SMTP relay, TypeScript and Python SDKs, CLI, MCP server, and dashboard — and can be self-hosted against your own Postgres and outbound relay. e2a.dev is the hosted version of that same codebase.

Give your agent an inbox

Free tier, no card. Add the server, authorize, and send your first message in about a minute.

Start building