MailAgent v1.0

June 19, 2026 · View on GitHub

Goal: full email API for agents (inbound + outbound + threads) plus advantages AgentMail does not have.

Positioning

AgentMailMailAgent v1.0
Inbound
Outbound / reply
Threads
Attachments
Realtime (SSE/webhooks)✅ + MCP progress
Custom domains✅ API
Semantic search
Document extraction
MCP✅ OAuth + 44 tools
SDK (TS/Python)✅ TS SDKs + Python + MCP
Enterprise / SOC 2✅ audit log + retention
Open source✅ MIT
Self-host (Cloudflare)
QA / E2E (@mailagent/qa)
Simulate without SMTP
Diagnose on timeout
Agent verify + primaryActionpartial
Multi-step run memorypartial✅ session API + MCP
Developer email relaynotifyEmail + delivery log + quota

Phases

Phase 1 — v0.17–0.18: Two-way mail ✅

TaskAPI / MCP
POST /v1/inboxes/:id/sendtext/html, to[], cc[]
POST …/messages/:id/replyIn-Reply-To / References
GET …/threads, GET …/threads/:id/messagesconversation view
MCP mailagent_send_message, mailagent_list_threadsagents
Inbound → thread_id (subject / headers)auto-grouping

Resend: verified send domain (OUTBOUND_FROM), Reply-To = inbox address.

Phase 2 — v0.19–0.20: Custom domains ✅

Task
POST /v1/domainsadd domain, DNS instructions
GET /v1/domains/:id/verifypoll MX/SPF status
POST /v1/inboxes { username, domainId }like AgentMail
Team-scoped domainsmulti-tenant
Task
Embedding at ingest (Workers AI / external)pgvector in Neon
GET /v1/inboxes/:id/search?q=semantic + keyword
MCP mailagent_search_messages

Phase 4 — v0.22: Structured extraction ✅

Task
POST /v1/messages/:id/extract { schema }JSON from body/attachments
Presets: invoice, receipt, 2FA
Keep OTP/links as todaybackward compatible

Phase 5 — v0.23–0.28: Hosted SaaS ✅ (API + console)

TaskStatus
Stripe checkout + portal (API)✅ code; live secrets optional
Web console (inboxes, threads, domains)
API keys UI, team invites
Codex Marketplace publishmanual

Phase 6 — v0.24+: Enterprise ✅ (foundation)

TaskStatus
Audit log + retention policies
SOC 2 narrative / SLAdraft — security.html · SOC2.md
Dedicated Resend (tenant isolation)✅ — DEDICATED-DOMAINS.md

Always-on (do not drop)

  • @mailagent/qa, simulate, diagnose, contract CI, Playwright simulate gate
  • Remote MCP + OAuth + DCR
  • Self-host docs (INTEGRATE.md)
  • Service presets + allowlist
  • Agent run session memory (GET/PATCH …/runs/:runId/session)

Metrics beyond AgentMail

  1. Time-to-first-OTP — MCP one-shot + simulate for CI
  2. Time-to-debug-failure — diagnose API (unique)
  3. Self-host TCO — $0 infra except Cloudflare + Neon
  4. QA adoption — Playwright fixture installs vs generic inbox API

Next step

v1.0 baseline complete — API, MCP, QA starters, @mailagent/mcp@0.2.16, @mailagent/agent@0.1.13, @mailagent/qa@0.1.17, PyPI mailagent-agent@0.1.0. Waiting on external: catalog PR merge · first external QA pilot feedback · Stripe · Codex Directory · SOC 2.
New repo work: product features from pilot feedback when issue #5 has data.
Discovery: GET /v1/agentpackages · distribution · DISTRIBUTION-STATUS.md.