Skip to content
appsgit

e2a — email for AI agents

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.

github.com/tokencanopy/e2a (opens in a new tab)

Install e2a — email for AI agents

Generated from the server's MCP registry entry. Replace your-value with your own values.

Claude Desktop

claude_desktop_config.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

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
{
  "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
{
  "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)

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 Oct 7, 2026: modelcontextprotocol.io (opens in a new tab), code.claude.com (opens in a new tab), cursor.com (opens in a new tab), code.visualstudio.com (opens in a new tab).

Environment variables

Variables the server reads at startup.

NameRequiredDescription
E2A_API_KEYsecretYese2a API key from https://e2a.dev
E2A_AGENT_EMAILNoDefault agent inbox (e.g. bot@your-domain.com). Optional — single-agent accounts auto-resolve.
E2A_BASE_URLNoSelf-hosted e2a backend URL. Defaults to https://e2a.dev.

Tools (33)

Parsed from the Tools section of the README; check the repository for the current list.

  • 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.

About e2a — email for AI agents

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.

  • ai-agents
  • email
  • email-api
  • go
  • hitl
  • human-in-the-loop
  • smtp
  • webhook
  • mail-gateway
  • email-agent

FAQ

e2a — email for AI agents FAQ

Still curious? Email info@appsgit.com.

What is e2a — email for AI agents?

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. The source code is at github.com/tokencanopy/e2a.

How do I install the e2a — email for AI agents MCP server?

Add the command npx -y @e2a/mcp-server to your MCP client: put it in claude_desktop_config.json for Claude Desktop, run claude mcp add for Claude Code, or add it to .cursor/mcp.json (Cursor) or .vscode/mcp.json (VS Code). The snippets on this page are ready to paste.

Is e2a — email for AI agents free?

The server is open source under the Apache-2.0 license, so running it is free. It needs credentials (E2A_API_KEY) for the service it connects to, which may require a paid account.

Is e2a — email for AI agents actively maintained?

The most recent commit was on Oct 6, 2026. The latest release is v1.15.2, published Sep 30, 2026. appsgit only lists MCP servers with a commit in the last six months and re-checks every server daily.