{"skill":{"slug":"mailinator","displayName":"Mailinator - Free, Disposable, Email","summary":"Access public or private Mailinator inboxes to list, retrieve, and analyze disposable emails with support for multiple formats, wildcards, and caching.","description":"# Mailinator CLI & MCP Server\n\nMailinator is a free, public, disposable email service. Every email address at @mailinator.com (and private custom domains) automatically exists—no signup required. Simply choose any inbox name (up to 50 characters) and receive emails instantly. Perfect for testing, automation, and workflows requiring temporary email addresses.\n\nAll emails @mailinator.com are public and free to use (with rate limits).  Subscribers to the Mailinator service may provide their API token (via Auth header or token= query parameter) and access their private domains.\nBoth Public and Private emails may be accessed via the MCP or API servers.\n\n## Capabilities\n\n### Core Features\n\n- **Inbox Listing**: Retrieve all emails in any Mailinator inbox with metadata (sender, subject, timestamp)\n- **Email Retrieval**: Fetch individual emails in 10+ formats (text, HTML, JSON, headers, SMTP logs, links)\n- **Wildcard Search**: Query multiple inboxes at once with pattern matching (requires authentication)\n- **Public & Private Domains**: Access public @mailinator.com or private custom domains\n- **Smart Caching**: Local inbox cache for fast email retrieval by reference number\n- **Multiple Output Formats**: Tailored views for different use cases (testing, debugging, content extraction)\n\n### Use Cases\n\n1. **Automated Testing**: Verify email delivery in CI/CD pipelines\n2. **Workflow Validation**: Confirm notification systems are working correctly\n3. **Link Extraction**: Pull verification links, password reset URLs, or confirmation codes\n4. **SMTP Debugging**: View complete delivery logs and headers for troubleshooting\n5. **Content Analysis**: Extract and analyze email content programmatically\n6. **AI-Assisted Workflows**: Enable AI assistants to check emails and extract information\n\n## MCP Server Integration\n\nThe MCP server can be accessed at:\n\nhttps://www.mailinator.com/mcp\n\nThis server exposes two tools for active operations:\n\n#### `list_inbox`\nLists all emails in a Mailinator inbox.\n\n**Parameters:**\n- `inbox_name` (required): Inbox to query (max 50 chars, alphanumeric with dots)\n  - Supports wildcards: `*` (all inboxes) or `prefix*` (pattern match) with API token\n- `domain` (optional): \"public\", \"private\", or custom domain (auto-detected if omitted)\n\n**Returns:**\n```json\n{\n  \"inbox_name\": \"testuser\",\n  \"domain\": \"public\",\n  \"messages\": [\n    {\n      \"number\": 1,\n      \"id\": \"testuser-1234567890-abc\",\n      \"from\": \"noreply@example.com\",\n      \"subject\": \"Welcome!\",\n      \"time\": 1770915725000,\n      \"seconds_ago\": 120\n    }\n  ],\n  \"count\": 1\n}\n```\n\n#### `get_email`\nRetrieves a specific email with optional formatting.\n\n**Parameters:**\n- `message_id` (required): Message ID from `list_inbox` results\n- `domain` (optional): Domain (auto-detected from cache if omitted)\n- `format` (optional): Output format (default: \"text\")\n  - `summary`: Key fields only (from, to, subject, time, ID)\n  - `text`: Formatted text with headers (default)\n  - `textplain`: Plain text body only\n  - `texthtml`: HTML body only\n  - `full`: Complete email as JSON\n  - `raw`: Raw MIME content\n  - `headers`: SMTP headers as structured data\n  - `smtplog`: Delivery timeline with SMTP transaction log\n  - `links`: Array of URLs found in email\n  - `linksfull`: URLs with anchor text\n\n**Returns:** Email content in requested format (structure varies by format)\n\n### MCP Resources\n\nRead-only URI-based access for passive context:\n\n- `mailinator://inbox/{domain}/{inbox_name}` - Inbox listing\n- `mailinator://email/{domain}/{message_id}` - Email content\n\n**Use Case:** AI assistants can reference these URIs as context without explicit tool calls.\n\n### API Server\n\nMailinator inboxes and emails may be accessed via the api. Again, public inboxes and emails do not require an API key, private inboxes/email do.\n\nFetching an inbox:\nGET https://api.mailinator.com/api/v3/domains/<domain>/inboxes/<inboxname>\n\nwhere <domain> may be public, private, or a custom subscriber domain\n<inboxname> must be alphanumeric from 1-50 characters, it may also be blank or contain wildcards for private domains\n\nFetching an email:\nGET https://api.mailinator.com/api/v3/domains/<domain>/messages/<message-id>/<format>\n\n<message-id> - this can be a valid message id found in a previous inbox listing\n<format> can be\n  \"text\" - (default) a best guess of the text within a email\n  \"textplain\" - the exact text/plain part of the email, if present\n  \"texthtml\" - the exact text/html part of the email, if present\n  \"smtplog\" - the log of the smtp transaction\n  \"attachments\" - (private domains only)\n  \"headers\" - the smtp headers of the email\n  \"full\" - the full json representation of the email (this can be large)\n  \"links\" - just the parsed links from the email\n  \"raw\" - the raw email data (this could be large)\n\n\n**Claude Desktop Integration:**\n\nAdd to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"mailinator\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/mailinator-cli/bin/index.js\", \"--start-mcp-server\"],\n      \"env\": {\n        \"MAILINATOR_API_KEY\": \"your_token_here\"\n      }\n    }\n  }\n}\n```\n\nOr connect to a running server:\n\n```json\n{\n  \"mcpServers\": {\n    \"mailinator\": {\n      \"url\": \"http://127.0.0.1:8080/mcp\"\n    }\n  }\n}\n```\n\n**Health Check Endpoint:** `GET http://127.0.0.1:8080/health`\n\n## CLI Usage\n\n### Installation\n\n```bash\n# Global installation\nnpm install -g mailinator-cli\n\n# Or use with npx (no install)\nnpx mailinator-cli inbox test public\n```\n\n### Commands\n\n**List Inbox:**\n```bash\n# Public domain (no authentication)\nmailinator-cli inbox testuser public\n\n# Private domain (requires API token)\nmailinator-cli inbox myinbox private\n\n# Wildcard search (requires API token)\nmailinator-cli inbox test* private\n```\n\n**Retrieve Email:**\n```bash\n# By reference number (from inbox listing)\nmailinator-cli email 1\n\n# With specific format\nmailinator-cli email 1 summary\nmailinator-cli email 1 links\nmailinator-cli email 2 smtplog\n\n# By message ID directly\nmailinator-cli email testuser-1234567890-abc text\n```\n\n**Verbose Mode:**\n```bash\n# Show HTTP requests/responses\nmailinator-cli --verbose inbox testuser public\nmailinator-cli -v email 1 full\n```\n\n## Authentication\n\n### Optional API Token\n\nPublic domain (@mailinator.com) requires no authentication. For private/custom domains and advanced features (wildcards, SMTP logs), configure an API token:\n\n**Get Token:** https://www.mailinator.com/v4/private/team_settings.jsp\n\n**Configuration Options:**\n\n1. **Environment Variable** (highest priority):\n   ```bash\n   export MAILINATOR_API_KEY=your_token_here\n   ```\n\n2. **Config File** (`~/.config/mailinator/config.json`):\n   ```json\n   {\n     \"apiKey\": \"your_token_here\"\n   }\n   ```\n\n3. **Environment File** (`.env`):\n   ```\n   MAILINATOR_API_KEY=your_token_here\n   ```\n\n## Example AI Prompts\n\nWhen configured as an MCP server in Claude Desktop:\n\n- \"Check the testuser inbox for any emails\"\n- \"What emails arrived in the last hour in joe@mailinator.com?\"\n- \"Show me the first email in summary format\"\n- \"Extract all links from that verification email\"\n- \"Get the SMTP log for message ID xyz-123\"\n- \"Are there any password reset emails for admin?\"\n- \"Pull the confirmation code from the latest email\"\n\n## Requirements\n\n- **Runtime:** Node.js ≥ 18.0.0\n- **Internet Access:** Required for Mailinator API\n- **API Token:** Optional (required for private domains and wildcards)\n\n## Validation Rules\n\n- **Inbox Names:** Max 50 chars, alphanumeric + dots, no leading/trailing dots\n- **Wildcards:** Only `*` or `prefix*`, only in private domains, requires API token\n- **Domains:** \"public\", \"private\", or valid custom domain names\n\n## Error Handling\n\nThe tool provides clear error messages with exit codes:\n\n- **Exit 0:** Success or non-fatal config warning\n- **Exit 1:** Validation error (invalid input)\n- **Exit 2:** API error (authentication, network, server)\n- **Exit 3:** Cache error (run inbox command first)\n\n## Performance & Caching\n\n- **Inbox Cache:** Results stored at `~/.config/mailinator/inbox-cache.json`\n- **Numbered References:** After listing an inbox, retrieve emails by number (1, 2, 3...)\n- **Domain Auto-Detection:** No need to specify domain for cached emails\n- **Cache Persistence:** Survives across CLI invocations until next inbox query\n\n## API Endpoints\n\nUses Mailinator CLI API v3:\n\n- **Base URL:** `https://api.mailinator.com/cli/v3`\n- **Inbox:** `GET /domains/{domain}/inboxes/{inbox_name}`\n- **Email:** `GET /domains/{domain}/messages/{message_id}?format={format}`\n- **SMTP Log:** `GET /domains/{domain}/messages/{message_id}/smtplog`\n\n## Tags\n\n`email`, `testing`, `disposable-email`, `automation`, `cli`, `mcp`, `model-context-protocol`, `ai-integration`, `workflow`, `verification`, `smtp`, `debugging`, `mailinator`, `nodejs`\n\n## Support\n\n- **CLI Issues:** Open issue in repository\n- **Mailinator API:** https://www.mailinator.com/support\n- **API Documentation:** https://www.mailinator.com/documentation/docs/category/getting-started/index.html\n\n## Links\n\n- **Mailinator Service:** https://www.mailinator.com/\n- **Model Context Protocol:** https://modelcontextprotocol.io/\n- **Claude Desktop:** https://claude.ai/download\n","tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":289,"installsAllTime":11,"installsCurrent":0,"stars":0,"versions":1},"createdAt":1772057938750,"updatedAt":1778491644319},"latestVersion":{"version":"1.0.0","createdAt":1772057938750,"changelog":"Mailinator CLI & MCP Server v1.0.0\n\n- Initial release of the Mailinator CLI and MCP server.\n- Features inbox listing, email retrieval in multiple formats, and wildcard inbox search.\n- Supports both public (@mailinator.com) and private/custom domains.\n- Includes smart local caching for fast access, multiple output formats, and full integration with Claude Desktop.\n- Optional API key for enhanced features (private domains, wildcards, SMTP logs).\n- Clear error handling and flexible authentication via environment, config file, or .env.","license":null},"metadata":null,"owner":{"handle":"manybrain","userId":"s1704f7fe4c4hyb99kv9n4n34h884zfy","displayName":"Manybrain, LLC","image":"https://avatars.githubusercontent.com/u/15472769?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780089732163}}