Replace the inbox.
Build a smart client on top of any provider. Threads, labels, search, drafts — normalised. Latency budgets that actually fit a UI.
→ threads.watch→ messages.search→ drafts.write Power AI mail clients, agentic workflows, and inbox automation on real user accounts — with scoped grants that keep your agents on a leash.
Gmail-native today — covers ~80% of agent email. Outlook and IMAP are next; the SDK shape doesn't change when they land.
Your server holds a privileged root key with full access to a connected account. For every agent task, mint a grant: a short-lived token scoped to specific capabilities, MCP tools, and a corner of the inbox. Expiry, revocation, and full audit log are built in.
List, search, send, draft, label, watch — across all providers, with a single normalised shape. The SDK is fully typed; the wire protocol is plain JSON over HTTPS.
mailfrom.messages.list paginated, normalised across providers mailfrom.messages.send idempotent, with delivery receipts mailfrom.threads.watch long-poll or webhook mailfrom.search.query provider-native search, normalised results mailfrom.grants.mint scoped, short-lived agent tokens // Send a message on behalf of a connected account. import { MailFrom } from '@mailfrom/sdk'; const mailfrom = new MailFrom({ rootKey: process.env.MAILFROM_ROOT }); const { id } = await mailfrom.messages.send({ account: 'alex@acme.co', to: ['ops@acme.co'], subject: 'Q3 sync — minutes', body: { html: rendered, text: fallback }, inReplyTo: 'msg_018f...', });
Build a smart client on top of any provider. Threads, labels, search, drafts — normalised. Latency budgets that actually fit a UI.
→ threads.watch→ messages.search→ drafts.write Mint a grant per task, hand the agent a token, watch it work within capability bounds. Revoke instantly. Every action signed and logged.
→ grants.mint(ttl)→ mcp tools subset→ signed audit log Server-side rules, classifiers, and webhooks. Drop into existing pipelines. No SMTP, no IMAP plumbing, no provider quirks to chase.
→ webhooks→ normalised events→ idempotent sends Metadata only — IDs, headers, thread structure — held just long enough to keep your app fast. Bodies and attachments are fetched on demand from the provider, streamed through, and forgotten. Nothing about a message persists on our servers after the request ends.
For HIPAA, SOC 2 type II, and customers with stricter data-residency rules: run the full MailFrom stack inside your VPC. Same SDK, same API, same grants — just no traffic leaving your perimeter. Helm chart and Terraform module ship with the enterprise plan.
Free up to 1k messages / month and 100 active grants. No card.