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.
- Needs API key
- Communication
- Apache-2.0
- Actively maintained
Install e2a — email for AI agents
Generated from the server's MCP registry entry. Replace your-value with your own values.
Claude Desktop
{
"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-serverCursor
{
"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
{
"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.
| Name | Required | Description |
|---|---|---|
E2A_API_KEYsecret | Yes | e2a API key from https://e2a.dev |
E2A_AGENT_EMAIL | No | Default agent inbox (e.g. bot@your-domain.com). Optional — single-agent accounts auto-resolve. |
E2A_BASE_URL | No | Self-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.
whoamiGet the authenticated account's identity — user, scope, plan/limits; for an agent-scoped credential, also the bound…
list_agentsList agent inboxes; pass deleted:true to list the 30-day trash. (Admin/account-scoped.)
get_agentGet one agent inbox by its full email address.
create_agentRegister a new agent by its full email address — on a verified domain you own, or the deployment's shared domain.
restore_agentRestore a soft-deleted agent and its configuration. (Admin/account-scoped.)
send_messageSend a new email. Immediate queueing returns status: accepted; future sendat returns status: scheduled plus…
reply_to_messageReply to a message — one the agent received (replies to its sender) or one it sent (continues the thread to the…
forward_messageForward a message into a new thread, carrying its existing attachments by default.
list_messagesList mail; pass deleted:true to list trash. Filter by readstatus (unread / read / all) and sender with…
delete_messageMove a message to the trash (restorable for ~30 days). Requires confirm: true.
restore_messageRestore a soft-deleted message and resume its retention clock.
get_messageFetch full body, headers, and attachment metadata for one message.
get_attachmentGet one attachment's metadata + a short-lived downloadurl (fetch the bytes out of band); inline: true returns base64…
update_message_labelsAdd or remove labels on a message.
list_reviewsList inbound and outbound messages awaiting human review across the account, soonest-expiring first.
get_reviewGet the full held message (body, recipients, and screening context where applicable).
approve_reviewOutbound: send a held message, optionally with reviewer edits (subject / body / recipients).
reject_reviewOutbound: discard a held message. Inbound: drop the screening hold so it never reaches the agent.
register_domainRegister a custom sending domain; returns the MX + TXT DNS records to publish. (Admin/account-scoped.)
list_api_keysList the account's API keys — metadata only (secrets are shown once, at creation).
create_api_keyMint a new agent-scoped key bound to an inbox; returns the plaintext key ONCE — store it immediately.
delete_api_keyRevoke a key permanently (requires confirm: true).
import_contactsBulk-import contacts from rows, optionally enrolling them into an agent's outreach.
delete_contact_importReverse an import batch, removing untouched contacts and the enrolments it created.
set_outreach_contactEnroll a contact in an agent's outreach, or update the agent-owned fields (stage, next action).
delete_outreach_contactUn-enroll a contact from an agent's outreach; the contact and its suppressions survive.
list_suppressionsList the account-wide suppression list (address, source bounce/complaint/manual, reason, source message id).
delete_suppressionUn-suppress a recipient account-wide. Requires confirm: true; only use it for addresses known to be deliverable —…
list_agent_suppressionsList one agent's blocked recipients (unsubscribe/manual).
create_agent_suppressionIdempotently add a manual block for one agent; other agents can still mail the address.
delete_agent_suppressionRemove only the exact agent-scoped block. Requires confirm: true because the block may represent an unsubscribe.
create_templateCreate a template from literal source — or copy a starter verbatim with fromstarter.
validate_templateDry-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-api
- go
- hitl
- human-in-the-loop
- smtp
- webhook
- mail-gateway
- email-agent
Similar MCP servers
More communication MCP servers
Strata
Klavis-AI/klavis
MCP server for progressive tool usage at any scale (see https://klavis.ai).
OfficialCommunicationPythonVexa
Vexa-ai/vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom.
OfficialCommunicationPythonMCP Server for WinDbg Crash Analysis
svnscha/mcp-windbg
A Model Context Protocol server for Windows crash dump analysis using WinDbg/CDB.
CommunicationPythonRocketmq Rust
mxsm/rocketmq-rust
🚀 Apache RocketMQ built in Rust 🦀 — faster, safer, and more memory-efficient.
CommunicationRustWassette
microsoft/wassette
Wassette: A security-oriented runtime that runs WebAssembly Components via MCP.
OfficialCommunicationRustLine Bot MCP Server
line/line-bot-mcp-server
MCP server that integrates the LINE Messaging API to connect an AI Agent to the LINE Official Account.
OfficialCommunicationTypeScript
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.