Disposable email inboxes for agents and tests: create an address, wait for the email. No signup.
Maintained byreceivemail.dev(verified)Also a maintainer?
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Create a disposable receivemail.dev email address that receives real mail. Returns address, expiresAt and secret; keep the secret to read the mailbox. Free without a key (up to 60 minutes); with a paid key on the MCP connection, up to 1440 minutes and an extracted otp field on messages.
Lifetime in minutes, default 15. Free tier caps at 60.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http receivemail https://receivemail.dev/mcp
Create a disposable receivemail.dev email address that receives real mail. Returns address, expiresAt and secret; keep the secret to read the mailbox. Free without a key (up to 60 minutes); with a paid key on the MCP connection, up to 1440 minutes and an extracted otp field on messages.
| Argument | Type | Description |
|---|---|---|
| ttlMinutes | integer | Lifetime in minutes, default 15. Free tier caps at 60. |
{
"type": "object",
"properties": {
"ttlMinutes": {
"type": "integer",
"maximum": 1440,
"minimum": 1,
"description": "Lifetime in minutes, default 15. Free tier caps at 60."
}
},
"additionalProperties": false
}List the last 50 emails received by a mailbox made with create_mailbox, newest first.
| Argument | Type | Description |
|---|---|---|
| secret* | string | Secret returned by create_mailbox. |
| address* | string | Address returned by create_mailbox. |
{
"type": "object",
"required": [
"address",
"secret"
],
"properties": {
"secret": {
"type": "string",
"description": "Secret returned by create_mailbox."
},
"address": {
"type": "string",
"description": "Address returned by create_mailbox."
}
},
"additionalProperties": false
}Wait up to 25 seconds for an email to a mailbox made with create_mailbox. Returns {timed_out:false, message:{from_address, subject, body_text, received_at}} or {timed_out:true}; call again on timeout. Pass `since` (ISO 8601) to ignore mail you've already seen.
| Argument | Type | Description |
|---|---|---|
| since | string | Optional ISO 8601 timestamp; only newer mail counts. |
| secret* | string | Secret returned by create_mailbox. |
| address* | string | Address returned by create_mailbox. |
| timeout | integer | Seconds to wait, default 25. |
{
"type": "object",
"required": [
"address",
"secret"
],
"properties": {
"since": {
"type": "string",
"description": "Optional ISO 8601 timestamp; only newer mail counts."
},
"secret": {
"type": "string",
"description": "Secret returned by create_mailbox."
},
"address": {
"type": "string",
"description": "Address returned by create_mailbox."
},
"timeout": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Seconds to wait, default 25."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 2, 2026.
Takes a password, API key or token as an argument, so the secret passes through the model's context and chat logs.
Fix: Read credentials from the server's own configuration (environment, OAuth) instead of a tool argument.