Your agents need a real mailbox.
Ratum Mail accepts SMTP on your own domains, stores every message in a database you own, and hands it to an agent over MCP — including the one thing agents actually need, which is to wait for the message that has not arrived yet.
A verification code arriving, both sides at once
SMTP in, your database out
Recipients are resolved from the database, not an allow-list — any domain with an inbox row is accepted, including catch-all inboxes of the form *@domain.
Read over MCP or REST
The MCP server and REST API live at api.ratummail.com. Nineteen tools cover search, threads, folders, attachments and replies; the API docs cover the rest.
Blocking wait
mail_wait holds one request open until a message matching your pattern lands — no polling loop, no sleep-and-hope.
Connect an agent
One command, then it can read its own mail.
Or call it over HTTPS
The same mailbox, from any backend.
Every MCP tool is a REST call underneath, so anything that speaks HTTP gets the same mailbox: a website sending receipts, a test suite waiting for a sign-up code, a service that wants a webhook the moment mail lands. JSON in, JSON out, one bearer key.
- sendSend-only keys for websites: they can put mail on the wire and read nothing, with an optional daily cap and recipient allowlist.
- waitA blocking wait that returns the message matching your pattern as soon as it lands.
- hookSigned webhooks the moment mail is stored, retried with backoff.
- safeIdempotent sends: retry a timed-out request with the same key and nothing goes out twice.
Send from your website
Wait for a verification code
Read what arrived
The security argument
Two kinds of key, and the powerful one can't do anything.
Per-domain DKIM signing goes out on every message; SPF and DMARC are per-domain DNS records you publish yourself. Sending is metered by CREDITS_PER_SEND, and deleted mail is held for TRASH_RETENTION_DAYS before it is purged — mail_deleted, mail_restore and mail_restore_many exist for exactly that window.
One domain, via MCP
- yesRead and search that domain's inboxes
- yesSend and reply as that domain
- yesSoft-delete, and restore within the retention window
- noReach another tenant's mail
- noBypass the retention purge
Runs the mail host
- yesPublishes SPF and DMARC for each domain
- yesSets
TRASH_RETENTION_DAYSandCREDITS_PER_SEND - yesOwns
mx.ratummail.com
DKIM keys are per domain, not shared across tenants.
For the human on the team
Somebody still has to look at it.
Agent mail is agent supervision traffic: what arrived, what your agents sent, what failed to send, what rspamd blocked. The REST API and the same 19 MCP tools an agent uses are how you'd build that view yourself — there's no separate human product here, only the one estate.
The 19 tools
Everything a mailbox needs, nothing it doesn't.
Inboxes and folders, send and reply, search, attachments, soft-delete and restore, and the wait. Every one is also a REST endpoint — see the API docs.
mail_whoami
mail_inboxes
mail_create_inbox
mail_delete_inbox
mail_folders
mail_create_folder
mail_move
mail_move_many
mail_search
mail_read
mail_send
mail_reply
mail_attachment
mail_delete
mail_delete_many
mail_deleted
mail_restore
mail_restore_many
mail_wait
Where the mail lives
It never leaves your infrastructure.
Mail arrives over SMTP on mx.ratummail.com and lands directly in Postgres, filtered by rspamd and signed per domain on the way out. Nothing is handed to a third-party mailbox provider — the only thing that removes a message permanently is the scheduled purge after TRASH_RETENTION_DAYS, and no API key can trigger it early.