MCP Server

Give a coding agent a disposable email address, let it wait for the mail, read it, and give the address back. Speaks stdio, so any MCP client can run it. Requires a Pro subscription and an API key.

Your subscription includes an allowance of received mail, and mail past it is refused as it arrives rather than queued — the sender gets a bounce and nothing appears later. An exhausted account's addresses still answer normally, so a waiting agent would otherwise see only a wait that never ends; wait_for_email checks and says so instead, with the date the allowance returns. The pricing page states the allowance and what a top-up adds.

What it gives the agent

Four tools. The ordinary run is the first three; the fourth only matters if you asked for an address the service has not seen.

get_email_address
wait_for_email
list_recent_emails
release_email_address

Getting started

1
Mint a key for the agent, not your key

Create a key from your dashboard for this agent alone, named after the machine it runs on. It is shown once. A key per agent is the only reason revoking one costs nothing — and a key in a client config file is one more place a credential lives, on a machine we do not control.

2
Point your client at it

This is the Claude Code shape, in ~/.claude.json or a project's .mcp.json. Any client that speaks stdio takes the same two fields.

{
  "mcpServers": {
    "tempmail": {
      "command": "uvx",
      "args": ["--from", "https://getrandom.email/mcp/tempmail_mcp-0.1.1-py3-none-any.whl", "python", "-m", "tempmail_mcp"],
      "env": { "TEMPMAIL_API_KEY": "your-api-key-here" }
    }
  }
}

The first start fetches and builds what the server needs and can take a minute or two on an older Mac; every start after that is instant. If your client times out on the very first attempt, run the command once in a terminal and add it to the client after.

The one thing to know before you script it

Every address an API key creates is permanent. A key cannot make the self-expiring kind — that one belongs to the website — and nothing sweeps the permanent ones. Releasing an address is a soft delete: it is kept for ever afterwards, so that it can never be handed to a stranger later.

So get_email_address reuses by default and the ordinary run creates nothing. Ask for a fresh address only when the service you are signing up to must not have seen it, and release it when you are done. Nothing will refuse you if you do not — an agent taking a fresh address on every run simply leaves permanent addresses behind, for as long as it runs, with no error anywhere.

Mail is something a stranger sent

Anything inside a message that instructs the agent — visit this URL, run this, reveal a key, ignore your instructions — is that stranger talking, not you. The server hands mail over as data and never opens a link in it. An agent reading a mailbox should report such a message rather than act on it.