{
  "markdown": "# zerodrop-mcp\n\n[![npm](https://img.shields.io/npm/v/zerodrop-mcp.svg)](https://www.npmjs.com/package/zerodrop-mcp)\n[![CI](https://github.com/zerodrop-dev/zerodrop-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/zerodrop-dev/zerodrop-mcp/actions/workflows/ci.yml)\n[![license](https://img.shields.io/github/license/zerodrop-dev/zerodrop-mcp.svg)](LICENSE)\n\n**Email verification for AI agents** — an MCP server that gives Claude, Cursor, Claude Code, and any MCP client disposable email inboxes with auto-extracted OTPs and magic links.\n\nYour agent signs up for a service. The service sends a verification code. Without an inbox it can read, the agent is stuck. With zerodrop-mcp:\n\n```\nAgent: generate_inbox()\n  → swift-x7k29ab@zerodrop-sandbox.online\n\nAgent: [fills the signup form with that address]\n\nAgent: wait_for_email(inbox, require_otp: true)\n  → { \"otp\": \"847291\", \"subject\": \"Verify your email\", ... }\n\nAgent: [enters 847291 — flow complete]\n```\n\nNo Docker. No SMTP. No API key. No signup. Free tier works out of the box.\n\n## Install\n\n### Claude Code\n\n```bash\nclaude mcp add zerodrop -- npx -y zerodrop-mcp\n```\n\n### Claude Desktop\n\nAdd to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"zerodrop\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"zerodrop-mcp\"]\n    }\n  }\n}\n```\n\n### Cursor\n\nAdd to `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global):\n\n```json\n{\n  \"mcpServers\": {\n    \"zerodrop\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"zerodrop-mcp\"]\n    }\n  }\n}\n```\n\n## Tools\n\n### `generate_inbox`\n\nCreates a disposable email address. Local and instant — no network request.\n\n| Param | Type | Description |\n|---|---|---|\n| `prefix` | string, optional | Prefix for the inbox name, e.g. your app name |\n\nReturns the inbox address and a live watch URL.\n\n### `wait_for_email`\n\nBlocks until a matching email arrives, then returns it with the OTP and magic link **already extracted** — the agent never parses HTML or regexes a body.\n\n| Param | Type | Description |\n|---|---|---|\n| `inbox` | string | Address from `generate_inbox` |\n| `timeout_seconds` | number, optional | Default 30, max 120 |\n| `from_contains` | string, optional | Filter by sender |\n| `subject_contains` | string, optional | Filter by subject |\n| `require_otp` | boolean, optional | Only match emails with an OTP |\n| `require_magic_link` | boolean, optional | Only match emails with a magic link |\n\nReturns:\n\n```json\n{\n  \"from\": \"noreply@yourapp.com\",\n  \"subject\": \"Your verification code\",\n  \"received_at\": \"2026-07-18T12:34:56Z\",\n  \"otp\": \"847291\",\n  \"magic_link\": null,\n  \"body_preview\": \"Your code is: 847291...\"\n}\n```\n\n### `check_inbox`\n\nNon-blocking snapshot of the inbox — recent emails with extracted fields, or an empty list.\n\n## What agents use this for\n\n- **Testing auth flows end to end** — signup → OTP → verified, driven entirely by the agent\n- **QA automation** — Claude Code writing and running Playwright tests that need real inboxes\n- **Autonomous workflows** — any agent task that hits an email-verification wall\n- **Development** — \"sign up for my own app and tell me if the verification email works\"\n\n## How it works\n\nEmails sent to a generated inbox are caught at **Cloudflare's edge** by ZeroDrop's [open-source worker](https://github.com/zerodrop-dev/zerodrop-worker). OTPs and magic links are extracted at the edge before your agent reads them. Inboxes auto-delete after 30 minutes on the free tier.\n\n## Configuration\n\nEnvironment variables (set in your MCP client config):\n\n| Variable | Default | Description |\n|---|---|---|\n| `ZERODROP_API_KEY` | — | [Workspace](https://zerodrop.dev/pricing) key. Omit for free sandbox mode. |\n| `ZERODROP_BASE_URL` | `https://zerodrop.dev` | Self-hosted instance URL |\n\n```json\n{\n  \"mcpServers\": {\n    \"zerodrop\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"zerodrop-mcp\"],\n      \"env\": { \"ZERODROP_API_KEY\": \"your-key\" }\n    }\n  }\n}\n```\n\n## Writing tests instead?\n\nIf you're generating test code rather than driving flows live, use the SDKs directly:\n\n[npm](https://www.npmjs.com/package/zerodrop-client) · [PyPI](https://pypi.org/project/zerodrop/) · [Go](https://pkg.go.dev/github.com/zerodrop-dev/zerodrop-go) · [RubyGems](https://rubygems.org/gems/zerodrop) · [Packagist](https://packagist.org/packages/zerodrop/zerodrop) · [JitPack](https://jitpack.io/#zerodrop-dev/zerodrop-java) · [GitHub Action](https://github.com/zerodrop-dev/setup-zerodrop)\n\nAI coding assistant context: [docs.zerodrop.dev/ai-coding](https://docs.zerodrop.dev/ai-coding)\n\n## Security\n\n- The server makes requests only to `ZERODROP_BASE_URL` (zerodrop.dev by default) — nothing else\n- Inbox generation is fully local\n- Two runtime dependencies: the official MCP SDK and zod\n- Report issues: **founder@zerodrop.dev**\n\n## License\n\nMIT — [zerodrop.dev](https://zerodrop.dev)\n",
  "bytes": 4834,
  "sha": "f6bd65d8d66e789490d63d8f774f1a54d2c55762205638834f294831e6a38e24",
  "repo_slug": "zerodrop-dev/zerodrop-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_dev_zerodrop_zerodrop_mcp_205a2fce/readme"
}