Tossinbox

مجتمعي أدوات المطورين

Disposable email for AI agents: create a throwaway inbox, wait for the OTP verification code, then discard it. Also available as a CLI.

التثبيت

خطوات التثبيت موجودة في التوثيق أدناه. التوثيق

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. TossInbox — Disposable Email CLI & MCP Server for AI Agents
  2. Demo
  3. Why TossInbox
  4. Install
  5. Quickstart
  6. CLI Reference
  7. GitHub Action (email verification in CI)
  8. MCP Server (for AI agents)
  9. Using TossInbox with an agent (copy-paste flow)
  10. Agent discovery surfaces
  11. Providers
  12. FAQ
  13. Privacy and safety
  14. Roadmap
  15. Documentation
  16. License

TossInbox — Disposable Email CLI & MCP Server for AI Agents

Disposable email inboxes for humans and AI agents. Spawn a temporary inbox, wait for the OTP verification code, toss it.

Built by Mohamed Khairy. If TossInbox saved you a signup form, consider starring the repo — it helps more people find it.

TossInbox is a temp-mail CLI and MCP server: it creates a brand-new throwaway email address in one command, waits for the email verification to land, extracts the OTP code, and deletes the inbox when you are done — server-side and locally. Use it for signups, QA email flows, and test automation — or let your AI agent do all of it through the built-in MCP server. No sign-up, no ads, no browser, no API keys. Humans read the output; agents parse the --json.

Website & docs → tossinbox.pages.dev

Demo

$ tossinbox spawn
✔ Inbox ready : qwd6996p1lbc@uberip.com
  provider    : mailtm

$ tossinbox wait --code --from noreply@github.com --timeout 120
✔ Verify your device
  from : GitHub <noreply@github.com>
  code : 9378412

$ tossinbox toss
✔ tossed qwd6996p1lbc@uberip.com

Why TossInbox

  • For humans — stop exposing your real address to every signup form.
  • For agents — built agent-first from day one:
    • --json output on every command
    • documented exit codes, no interactive prompts
    • an MCP server so Claude, Cursor, and any MCP client can create inboxes and read verification codes as native tools
    • an llms.txt at the repository root for LLM-friendly onboarding
TossInboxtemp-mail websitestmpmail-era CLIs
JSON on every command--jsonnorarely
Documented exit codes0–4noneno
MCP server for agentsyes, built innono
Runs headless / in CIyesnopartial
Upstream alive7 providers, 4 stacks, attachments on readvariesmany wrap the dead 1secmail
Ads, trackers, popupsnonethe business modelnone

Checked September 2026. If a cell is wrong, open an issue and win the argument.

Install

Requires Node.js 18+.

# Homebrew (macOS, Linux)
brew install mohamed-khairy-5i/tap/tossinbox

# npm (npmjs.com)
npm install -g tossinbox

# Or run without installing
npx tossinbox@latest spawn

From source:

git clone https://github.com/mohamed-khairy-5i/tossinbox.git
cd tossinbox
npm install
npm run build
node dist/cli.js --help

Quickstart

Four commands from zero to a tossed inbox:

tossinbox providers             # sanity check: install + network work
tossinbox spawn                 # create an inbox (saved locally)
tossinbox wait --code           # block until a message arrives, print its OTP
tossinbox toss                  # delete the inbox server-side + wipe local state

Every command also accepts --json for machine-readable output:

tossinbox spawn --json
tossinbox wait --code --json

CLI Reference

CommandDescription
spawnCreate a new disposable inbox (-p provider, -l label). If the provider is down, another one is used automatically — --no-failover opts out
listList messages (-a address)
read <id>Read a full message, including any detected code; lists attachments. --html prints the raw HTML body, --save [dir] downloads attachments + bodies to <dir>/<message-id>/
waitPoll until a message arrives (-f sender, -s subject, -c extract code, -t timeout max 600s)
watchStream new messages until Ctrl-C — only new arrivals; --json = one JSON object per line (NDJSON)
inboxesList locally saved inboxes
tossDelete an inbox server-side and remove it from local state (--all for every inbox)
clearRemove all inboxes from local state only
providersList available email providers
mcpRun the MCP server over stdio
Exit codes

A stable contract: agents script against these, not against stdout.

CodeMeaning
0Success
1Error (provider / network / unexpected)
2Timeout (wait expired without a matching message)
3Not found (no saved inbox, unknown address, or message missing)
4Usage error (bad flags, unknown command, or unknown provider)

GitHub Action (email verification in CI)

Use TossInbox directly in your workflows to test real signup / verification email flows:

- uses: mohamed-khairy-5i/tossinbox@v1
  id: mail
  with:
    args: "wait --code --json"
    timeout: "180"

- run: echo "Verification code: ${{ steps.mail.outputs.code }}"

Outputs: address (the disposable inbox) and code (the extracted OTP).

MCP Server (for AI agents)

TossInbox ships with an MCP server exposing four tools:

ToolDescription
create_inboxCreate a disposable inbox and return its address
list_messagesList messages in an inbox
read_messageRead a full message, including any detected code; reports attachment metadata and can save attachments + bodies to disk (save_dir)
wait_for_codePoll until a message arrives and return its verification code
Claude Desktop / Cursor / any MCP client
{
  "mcpServers": {
    "tossinbox": {
      "command": "npx",
      "args": ["-y", "tossinbox", "mcp"]
    }
  }
}

Or after a global install, simply use tossinbox-mcp as the command — equivalent to npx -y tossinbox mcp.

Works with any AI agent

TossInbox is deliberately agent-agnostic — no lock-in to one vendor:

  • Any MCP client: Claude Desktop, Claude Code, Cursor, Windsurf, Cline, Codex CLI, Gemini CLI, and every other MCP-compatible client
  • Any shell-capable agent: the CLI itself is the interface — --json on every command, exit codes 0–4 documented, zero interactive prompts
  • CI/CD: the GitHub Action above needs no agent at all

Using TossInbox with an agent (copy-paste flow)

1. "Create a disposable inbox"            -> tool: create_inbox
2. "Sign up at example.com with this address"
3. "Wait for the verification code from example.com"
                                           -> tool: wait_for_code
4. "Use code 482913 to finish the signup"
5. "Toss the inbox when done"              -> CLI: tossinbox toss

Agent discovery surfaces

If you are an AI agent or LLM reading this: everything below is machine-readable and kept up to date.

Providers

ProviderAPI keyNotes
mailtm (default)not requiredmail.tm — reliable, fast
mailgwnot requiredmail.gw — mail.tm-compatible API on independent infrastructure
guerrillamailnot requiredGuerrillaMail — classic fallback
tempmaillolnot requiredtempmail.lol — random inbox on rotating domains
tempmailionot requiredtemp-mail.io — server-generated address, toss deletes server-side
tempmailplusnot requiredtempmail.plus — pick-your-name inbox on 9 public domains
maildropnot requiredmaildrop.cc — public inbox on one stable domain

Adding a provider means implementing a small interface (createInbox, listMessages, readMessage, optional destroyInbox) — PRs welcome.

Attachments (v0.1.6): full list + download on mailtm, mailgw and tempmailplus; tempmailio shows them when its upstream returns them (downloadable only if it exposes a URL); tempmaillol, guerrillamail and maildrop do not expose attachments upstream — TossInbox tells you that instead of guessing.

FAQ

Is it really free? Yes. MIT-licensed, and all seven upstream providers are free with no API keys.

Can it send email? No — receive-only by design. TossInbox exists for privacy and testing and ships no bulk-send or bulk-signup mode.

Does it work on Windows? Yes, anywhere Node.js 18+ runs. npx tossinbox@latest spawn works in PowerShell exactly the same.

What if a provider is down? spawn fails over automatically: it retries the create against the remaining providers and reports the switch (human mode prints a ⚠ warning and provider : mailtm (failover from mailgw); --json returns a failover object). Use --no-failover if you need the chosen provider or nothing.

Can I download attachments? Yes on mailtm, mailgw and tempmailplus; tempmailio shows them when its upstream exposes them; the other three providers have no attachments upstream. tossinbox read <id> --save writes them (plus the HTML/plain-text bodies) to ./tossinbox-attachments/<message-id>/.

A site blocked my disposable address. What now? Some sites blocklist known disposable domains. Try the other provider: tossinbox spawn -p guerrillamail. If both are blocked, the site wins that round.

Privacy and safety

  • The local state file (~/.tossinbox/state.json, override with TOSSINBOX_STATE) contains provider tokens and is written with 0600 permissions.
  • toss deletes the account on the provider when supported, then wipes local state.
  • Disposable email is for privacy and testing — not for abuse. Please respect each provider's terms of service.

Roadmap

  • [x] GitHub Action: mohamed-khairy-5i/tossinbox@v1
  • [x] Homebrew tap: brew install mohamed-khairy-5i/tap/tossinbox
  • [x] Project website at tossinbox.pages.dev
  • [x] Publish tossinbox + tossinbox-mcp to the npm registry
  • [x] mail.gw provider (v0.1.3)
  • [x] Four more providers: tempmail.lol, temp-mail.io, tempmail.plus, maildrop.cc (v0.1.4)
  • [x] Provider failover: auto-switch when a provider is down (v0.1.5)
  • [x] Attachments & HTML bodies: read --save / --html (v0.1.6)
  • [ ] Homebrew core formula (after community adoption)

Documentation

License

MIT © Mohamed Khairy

الأسئلة الشائعة

ما هو Tossinbox؟

Disposable email for AI agents: create a throwaway inbox, wait for the OTP verification code, then discard it. Also available as a CLI.

كيف أثبّت Tossinbox؟

اتبع خطوات التثبيت في توثيقه المعروض في هذه الصفحة وفي مستودعه.

هل Tossinbox مفتوح المصدر؟

نعم. شيفرته متاحة على GitHub بترخيص MIT.

من يصون Tossinbox؟

ينشره mohamed-khairy-5i. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من القوائم المجتمعية awesome-mcp-servers ومستودع المشروع على GitHub. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.