LaunchMail
Sole Developer & Architect
Agent-first email platform where AI agents get their own @launchmail.me inboxes via REST API, MCP protocol, or OpenClaw plugin. Full email lifecycle: AWS SES for outbound (SESv2Client + SendEmailCommand), SNS webhooks for inbound (MIME parsing, S3 storage), and delivery/bounce/complaint event tracking. Embeddable React SDK for host apps. Used by LaunchThatBot for agent email capabilities.
REST API, MCP server, OpenClaw plugin, embeddable React SDK
mailboxes, threads, messages, attachments, outbox, deliveryEvents, suppressionList, apiKeys, sessions
SES inbound, SES delivery events, mailbox provisioning
The Problem
AI agents need email accounts to sign up for services, receive verification codes, and communicate — but Gmail and other providers block automated signups. Building email infrastructure from scratch means handling SES configuration, MIME parsing, bounce management, and suppression lists.
The Solution
Built an email platform with a REST API (POST /api/v1/mailboxes/provision), an MCP server (@launchmail/mcp) for AI tool integration, and an OpenClaw plugin for LaunchThatBot. AWS SES handles outbound via SESv2Client. Inbound flows through SNS → Convex HTTP handlers → MIME parsing → thread/message storage. Reusable Agentmail Convex component owns the full mail data model.
Technical Decisions
Key architecture decisions and their outcomes
Agentmail as a reusable Convex component
Email data model (mailboxes, threads, messages, delivery events) is needed by multiple apps.
Extracted the full mail data model into a Convex component (packages/plugins/agentmail). Apps mount it and interact via component APIs.
LaunchMail, LaunchThatBot, and Portal all share the same email infrastructure without duplication.
MCP + REST API + OpenClaw plugin for maximum integration surface
Different AI agents use different integration patterns — some use MCP, some use REST, some use OpenClaw.
Built all three: @launchmail/mcp for MCP-native agents, REST API for HTTP integrations, OpenClaw plugin for LaunchThatBot agents.
Any AI agent framework can create and manage email inboxes through its preferred protocol.
Engineering Details
- Mailbox provisioning: API key auth → scope check (mail.admin) → entitlement/quota check → component provisionMailbox → domain assignment
- Inbound flow: SES → SNS → Convex HTTP /ses/inbound → parseMimeToInbound → thread matching → message storage
- Outbound flow: outbox mutation → dispatchOutboxMessage action → SESv2Client.SendEmailCommand → providerMessageId tracking
- Delivery events: SNS /ses/events → ingestSesDeliveryEvent → bounce/complaint handling + suppression list
- MCP server: @modelcontextprotocol/sdk with StdioServerTransport, tools split across inboxes, messages, drafts, contacts
Key Highlights
- REST API: POST /api/v1/mailboxes/provision with API key auth + mail.admin scope
- MCP server (@launchmail/mcp) with tools for list, send, drafts, contacts
- OpenClaw plugin adds launchmail_create_inbox/launchmail_delete_inbox
- AWS SES outbound: SESv2Client + SendEmailCommand with delivery tracking
- SNS inbound webhooks: SubscriptionConfirmation, MIME parsing, S3 storage
- Delivery, bounce, and complaint event tracking via sesEventsHandler
- Embeddable React SDK (embed-react) for host apps
- Agentmail Convex component: mailboxes, threads, messages, attachments, outbox, suppression list
Tech Stack
Skills & Technologies
Related Articles
AI in Production: Lessons From Shipping to Real Users
Our first AI feature hallucinated a refund policy that did not exist. A customer followed it. Here is what we learned about putting language models in front of real people.
Real-Time Everything: Why We Stopped Polling and Never Went Back
Our trading dashboard polled every 5 seconds and users complained about stale data. We rebuilt on Convex with real-time subscriptions and the difference was not incremental — it was a different product.