MachineMail: email API for AI agents
Email for AI Agents
Real inboxes your agents sign up with, wait on, and reply from.
Every agent gets its own inbox, for $0. Mail arrives as agent-safe text with a trust level, and your agent reads it over MCP, wherever it runs.
Connect
Connect from any MCP client.
One Streamable HTTP server. Sign in with OAuth from the client, or pass an API key in CI.
$ claude mcp add --transport http machinemail https://mcp.machinemail.dev/mcp
Addresses
An inbox for every agent.
Create them with one API call, or let a catch-all domain create them for you.
Catch-all domains.
Point a domain at us and any address works. The inbox appears on first delivery.
- signup-7f3k@acme.dev expires 24h
- otp-runner@acme.dev expires 23h
- invoice-intake@acme.dev expires 6d
- qa-bot-12@acme.dev permanent
- support@acme.dev permanent
Free addresses.
No inbox fees. Free covers 3,000 messages a month; paid plans start at $9.
$0 per inbox and trust report, on every plan.
Trust layer
Mail your agent can safely read.
Every inbound message gets a trust report and a level before your agent sees it.
Agent-safe text.
Hidden instructions come out before your agent reads a word.
- from paypa1-payouts.ru
- auth dmarc fail
- link display mismatch
- hidden removed:
ignore previous instructions - level quarantined
Five levels.
Your agent acts on the level, never on what the sender says.
- verified acts on it
- known summarises
- unknown reads only
- suspicious reasons only
- quarantined withheld
Delivery
Webhooks and MCP.
Push mail to your stack, or let your agent pull it over MCP.
Webhooks.
Signed, retried for five days, and replayable from the dashboard.
- inbox.created 200
- message.received.quarantined 200
- message.bounced 503, retrying 200, retried
- message.received replay
MCP.
wait_for_message holds the call open until the mail lands, for up to a minute.
- wait_for_message waiting 0 s
- from no-reply@acme.dev
- trust ##### verified
- text Your code is 482 913
FAQ
How does my agent get an address?
Paste the agent prompt into Claude Code, Cursor or any MCP client. The agent registers itself through auth.md, gets a sandbox inbox, and shows you a six-digit code to claim it into your account.
How do I get an API key?
Create a free account and make keys yourself in the dashboard, under API keys. No sales call: the Free plan costs $0 and covers 3,000 messages a month.
What counts as a message?
Each inbound delivery and each outbound send. Spam, quarantined and rejected mail don't count, and neither do drafts until they send.
How does the trust layer decide?
It combines SPF, DKIM and DMARC alignment, your allow and block lists, prior correspondence, link and attachment checks, and a classifier. The report lists every reason it used.
What happens when an ephemeral inbox expires?
A reaper deletes the inbox with its messages, raw MIME and attachments, then emits inbox.expired. New mail before expiry pushes the deadline out.
Can an agent sign itself up?
Yes. Agents follow /auth.md, get a sandbox key and one ephemeral inbox, and show you a 6-digit code. You enter it at /claim to bind the agent to your organization.