The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Smails listing page.
Disposable email for humans and AI agents. An instant, anonymous throwaway inbox for sign-ups, one-time codes, and confirmations — with a REST API, a CLI, and an MCP server, so your AI agent can receive verification emails too. No signup, no password.
→ smails.dev · npx @smails/cli create
Give your agent its own inbox: plug the MCP server into Claude, Cursor, or any MCP client and it can create a mailbox and read incoming mail (verification codes, magic links) on its own.
Visit smails.dev — an inbox is created for you on first load.
Add the server to any MCP client (e.g. Claude Desktop, ~/.claude/mcp.json):
Tools: create_mailbox, list_messages, read_message, delete_message, get_address.
| Method | Path | Description |
|---|---|---|
POST | /api/mailbox | Create a mailbox → { address, token } |
GET | /api/mailbox/messages | List messages |
GET | /api/mailbox/messages/:id | Read a message (full parsed body) |
DELETE | /api/mailbox/messages/:id | Delete a message |
WS | /api/mailbox/connect?token= | Stream new-mail notifications |
Authenticate every request (except create) with Authorization: Bearer <token>.
{address}.{secret}; the Worker routes by address, the DO verifies the full token.Each package is independent (pnpm). Install per package.
There are two independent release tracks — pushing to main ships the service, but not the CLI.
Worker + frontend — auto-deployed by Cloudflare Workers Builds on every push to main (the frontend builds to static assets the Worker serves). No manual step. To deploy by hand instead:
CLI (@smails/cli) + MCP server — not auto-deployed; publishing is a separate, manual release:
cli/package.json (npm rejects re-publishing an existing version).main.gh release create cli-vX.Y.Z --target main — creating the GitHub Release triggers .github/workflows/publish-cli.yml, which publishes to npm and syncs the MCP registry listing from server.json.
server.json'sdescriptionmust be ≤ 100 characters or the MCP registry publish step 422s.
Receiving mail uses Cloudflare Email Routing (catch-all → the Worker's email handler). Configure receiving domains via the DOMAINS var and the route in worker/wrangler.jsonc.
MIT