Agent-first email infrastructure

Give your agent
its own inbox

Provision mailboxes, send and receive as your domain, parse attachments, wait for replies. All via MCP tools. No SMTP. No IMAP. No UI.

How it works

Three tool calls to a working inbox

Provision a mailbox

Call mailbox.create with an address. The mailbox is live in seconds.

mailbox.create({
  address: "ops@your-company.com",
  display_name: "Operations",
  approval_mode: "all"
})

Verify your domain

Add three DKIM CNAMEs and one SPF include. Your agent sends as your domain.

domain.verify({ domain: "your-company.com" })
// Returns SPF, DKIM, DMARC records

Send, receive, wait

Send email, receive replies, block on mail.wait until a reply arrives.

await mail.send({
  to: "vendor@acme.com",
  subject: "PO #4821",
  body: po_body
})
const reply = await mail.wait({
  from: "vendor@acme.com",
  timeout: "48h"
})
Capabilities

Built for what agents actually need

No labels, no folders, no UI. Just send, receive, wait, parse, and act.

Send as your domain

Full SPF, DKIM, DMARC alignment. Recipients see your domain, not ours.

mail.wait

Block until a matching reply arrives. Email becomes synchronous.

Approval queue

Outbound held for human review. Auto-approve trusted patterns over time.

📎

Attachment parsing

PDFs become text, CSVs become data. Agents read attachments as structured data.

🔗

Thread tracking

Automatic threading across replies. No header management needed.

Webhooks

Real-time events for messages, bounces, approvals. Or just use mail.wait.

Approval queue

Humans approve.
Agents execute.

Every outbound message is held for review by default. Humans check recipient, subject, body, attachments — then approve, edit, or reject.

Configure auto-approval: approve replies to threads, messages to verified vendors, internal domains. The agent earns autonomy gradually.

mailbox.update({
  id: "mbx_ops",
  approval_mode: "smart",
  auto_approve_rules: [
    { type: "reply" },
    { type: "domain",
      match: "*.internal.co" },
    { type: "contact_list",
      list: "approved_vendors" }
  ]
})
const pending = await queue.list({ status: "pending" })
await queue.approve({
  message_id: "msg_9xK2..."
})
Use cases

Email is the universal protocol

SMTP is the one protocol every company, system, and person speaks.

Procurement

Send RFQs, wait for quotes, parse PDF attachments, compare pricing.

Accounts payable

Invoices arrive at billing@. Parse PDFs, match POs, flag discrepancies.

Inbound leads

Inquiries at hello@. Enrich sender, score, draft response, create CRM record.

Support intake

Classify, match to tickets, draft with KB context. L1 automated, L2 escalated.

Compliance

File reports, receive confirmations, track deadlines. Government still runs on email.

Agent-to-agent

Your agent emails theirs. POs, confirmations, negotiations over SMTP.

Integration

Connect in one line

Standard MCP server. Works with Claude Desktop, Claude.ai, Cursor, or any MCP client.

{
  "mcpServers": {
    "mcpmail": {
      "url": "https://mcpmail.app/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
Pricing

Infrastructure pricing

Per mailbox. Per message. No seats. No bundled AI credits.

$0
Dev — 1 mailbox, 100/day
$9/mo
Per mailbox, 1k/day
$0.10
Per 1,000 overage

Full pricing →

Your agent needs an email address

Provision a mailbox, verify your domain, start sending.