Claim an address
Pick a name and get a working inbox on agents.emailforagents.ai. Your own
domain comes later, on a paid plan.
One free live inbox, no card
Email for Agents is an email API and MCP server that gives an AI agent a real, persistent inbox it can read and reply from — with a console where a human approves what goes out.
Connect over remote MCP with OAuth, or over the REST API.
Can you send the Q3 invoice to ap@…
Received, thank you — routing for payment.
Three candidates confirmed for Thursday.
Q3 invoice for Northwind
finance@northwind.example → ada@agents.emailforagents.ai
Can you send the Q3 invoice to ap@example.com? Split by department if that's easy.
Attaching the Q3 invoice, split by department. Let me know if you need the PO reference added.
Mail arrives
Attachments scanned, raw MIME held backAgent drafts
With only the access you grantedYou approve
Or let that inbox send directlySent and logged
Queued, accepted, delivered, failedHow it works
No DNS, no mail server, no glue code.
Pick a name and get a working inbox on agents.emailforagents.ai. Your own
domain comes later, on a paid plan.
Paste one MCP URL into the client you already use, or take a scoped API key. You choose read, read and draft, or send.
Every message, draft and delivery event in one timeline. Approve, edit or pause without leaving it.
Two ways in
Same inbox, same permissions, either route.
One URL in your client's MCP settings. Sign in, pick the inbox, pick the permission. The grant expires after 30 days and you can revoke it sooner.
https://mcp.emailforagents.ai/mcp Needs remote MCP and OAuth. Testing: Claude Desktop · Claude Code · Cursor — not certified yet. An API key is rejected at the MCP endpoint by design.
How the MCP email server works →Project-scoped keys, idempotent sends, inbound events and signed webhooks. No SDK is published yet, so these are plain HTTP.
curl -X POST \
"https://api.emailforagents.ai/v1/projects/$PROJECT_ID/inboxes/$INBOX_ID/messages" \
-H "Authorization: Bearer $EFA_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"to": [{ "email": "ap@example.com" }],
"subject": "Q3 invoice",
"text": "Attached."
}'await fetch(
`${api}/v1/projects/${projectId}/inboxes/${inboxId}/messages`,
{
method: "POST",
headers: {
Authorization: `Bearer ${process.env.EFA_API_KEY}`,
"Idempotency-Key": crypto.randomUUID(),
"Content-Type": "application/json",
},
body: JSON.stringify({
to: [{ email: "ap@example.com" }],
subject: "Q3 invoice",
text: "Attached.",
}),
},
);requests.post(
f"{api}/v1/projects/{project_id}/inboxes/{inbox_id}/messages",
headers={
"Authorization": f"Bearer {os.environ['EFA_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"to": [{"email": "ap@example.com"}],
"subject": "Q3 invoice",
"text": "Attached.",
},
) What's included
Read the documentation →Replies land back on the same conversation.
Send and receive files, scanned on arrival.
Received, queued, accepted, delivered, failed.
Hold a draft until a human releases it.
Subjects, senders and previews across an inbox.
Three DNS records, existing mail untouched.
Up to 3 simulated inboxes, free, nothing sent.
Same key, same body — one message, not two.
Every message you can read, as JSON.
More detail on live and test agent inboxes, the email API and its events, and approvals and permission controls.
Control
Let an inbox send directly, or hold every message for one approval. The switch lives in the inbox and you can change it at any time.
Approve before send. The queue shows the exact recipients, the exact draft version and why it was held.
Recipient rules. Allow a domain, block an address, cap live recipients per day.
One switch off. Pause outgoing mail for the project, or revoke an agent's grant.
Sending
Holds every message for approvalAllowed recipients
Safety
So attachments are scanned before they are reachable, the original message stays in restricted custody, and nothing written in an email can widen what the agent may do.
Files stay unavailable until they come back clean. Infected ones never become downloadable.
Permissions come from your grant and are re-derived on every request. We do not claim to be prompt-injection proof — we claim that a message cannot change a scope.
Agents read a normalized version. The original MIME stays in restricted custody for you.
Use cases
All four recipes in full →Can I move my seat to annual billing before renewal?
Agent
Yes — three steps in your billing page, takes a minute.
Invoice attached — please confirm the PO reference.
Agent
Confirmed, PO 4412. Payment runs Friday.
Does Thursday afternoon work for you both?
Agent
Thursday 3pm works — invite is on its way.
Sure — send the docs over and I'll sign today.
Agent
Sending now, signature link included.
Guides
Every guide →No. ChatGPT has no address of its own, but it can act inside your Gmail or Outlook. What OpenAI documents today, and what owning an inbox takes.
Two AI agents emailing each other rarely stop on their own: why courtesy keeps the thread alive, how threading works, when to hand off, how to test it.
AI agent identity starts with an email address. What a mailbox proves, what DKIM and DMARC never check, and what A2A, OAuth and AP2 still leave to email.
Pricing
How usage is counted →$0
$19 /mo
Not available to buy yet
$79 /mo
Not available to buy yet
* Builder and Team are proposed paid plans at proposed launch prices. Stripe checkout is disabled, so they are not available to buy yet, and final terms will appear before any charge. Free is one complimentary live inbox and 100 email units a month per verified owner identity, claimed by that identity's first eligible workspace; creating another workspace does not renew it. One email unit is one incoming message, or one recipient a provider accepts. Provider acceptance is not proof of delivery.
It is a mailbox that belongs to the agent rather than to a person. The agent gets its own address, reads what arrives through an API or an MCP tool call, and replies on the same thread. You keep a console view of every message and can require your approval before anything is sent.
No. You create a new inbox for the agent instead of wiring it into a personal mailbox. Connecting an existing Gmail or Microsoft 365 account is not what this product does.
No. You bring the agent, in whatever application you already run it. Email for Agents supplies the address, the threads, the API, the MCP server and the approval queue.
Yes. Early access includes one complimentary live inbox and 100 email units a month per verified owner identity, claimed by that identity's first eligible workspace. Test inboxes use non-routable addresses and never send internet mail.
Add https://mcp.emailforagents.ai/mcp as a remote MCP server in a client that supports remote MCP and OAuth. You sign in, choose the project, the inboxes and the permission level, and the client receives a grant that expires after 30 days. An API key is rejected at the MCP endpoint by design.
Every send needs an Idempotency-Key. Replaying the same key with the same body inside the 30-day window returns the original result instead of sending again; replaying it with a different body is rejected as a conflict.
One live inbox, free, no card. You can connect the agent afterwards.
Create an inbox