Skip to main content
Glama
dvlop

tempmail-mcp

by dvlop

tempmail-mcp

MCP server for disposable email. Gives an assistant its own throwaway inbox, then hands back the confirmation code out of the message that arrives.

The problem it solves: an agent walking through a signup flow hits the point where a real email address is needed, and a human has to step in to read a code out of their inbox. At that moment the automation stops being automation.

Install

{
  "mcpServers": {
    "tempmail": {
      "command": "npx",
      "args": ["-y", "tempmail-mcp"],
      "env": {
        "TEMPMAIL_API_KEY": "tm_your_key_here"
      }
    }
  }
}

Get a key at tempmailgenerator.net/account. Free, no card, one key per account.

For Claude Code:

claude mcp add tempmail --env TEMPMAIL_API_KEY=tm_your_key -- npx -y tempmail-mcp

Related MCP server: useblip/email

Tools

Tool

What it does

create_mailbox

Take an address. Random name and domain unless you ask otherwise.

wait_for_code

Block until mail arrives, return the code and the activation link.

list_messages

What is in the inbox, newest first, with previews.

read_message

Full body of one message.

delete_mailbox

Clean up when done.

wait_for_code is the one that matters. It holds the connection until the message lands rather than polling, so the assistant does not burn turns checking an empty inbox, and it returns the digits already extracted instead of a wall of HTML for the model to squint at.

A typical run

  1. create_mailbox gives laura.ellis5427@...

  2. The agent submits that address to the signup form it is working through.

  3. wait_for_code returns 481902 and the confirmation link a second later.

  4. The agent finishes the flow.

Limits and manners

Mailboxes live 24 hours. One key allows 300 new mailboxes an hour and 100 alive at once, which is far past what an interactive agent needs and short of what a signup farm wants.

Addresses come from a pool reserved for automation and are recognisably disposable. Point this at systems you own or test. Pointed at somebody else's service to mass produce accounts, it becomes their incident and then ours.

Configuration

Variable

Default

Purpose

TEMPMAIL_API_KEY

required

Your key.

TEMPMAIL_BASE_URL

https://tempmailgenerator.net

Only for self-hosted installs.

API reference: https://tempmailgenerator.net/api/

License

MIT

Available Tools

5 tools
create_mailboxCreate a disposable mailboxA

Create a temporary email address. Returns the address to paste into a signup form and the id used by the other tools. Without arguments you get a random name on a random domain, which is what you usually want.

ParametersJSON Schema
NameRequiredDescriptionDefault
localPartNoName before the @, if a specific one is needed. Random when omitted.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of disclosing behavior. It discloses that the tool creates a mailbox, returns an address and id, and randomizes both name and domain when invoked without arguments. It does not mention lifecycle details like expiry, but the core side effect and return contract are transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences convey purpose, return value, default behavior, and integration with sibling tools. The most important information is front-loaded, and every sentence earns its place with no redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one optional parameter and no output schema, so the description's explanation of returned values ('address to paste into a signup form' and 'id used by the other tools') is enough for an agent to invoke it correctly and use its result. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents localPart well. The description adds value by stating that the domain is also random when no arguments are given, and by signaling that omitted arguments are the recommended default, not just a fallback.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb, resource, and outcome: 'Create a temporary email address.' It also clarifies the returned artifacts (address and id) and distinguishes the tool from its siblings, which all consume or manage mailboxes rather than create them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear guidance on the common default usage: 'Without arguments you get a random name on a random domain, which is what you usually want.' It does not explicitly name sibling alternatives or state exclusions, but the create-vs-consume distinction makes the intended use clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_mailboxDelete a mailboxA

Delete the mailbox and everything in it once you are done. Not required, since mailboxes expire on their own in 24 hours, but polite and it frees your quota.

ParametersJSON Schema
NameRequiredDescriptionDefault
mailboxIdYesMailbox id from create_mailbox

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly warns that the operation deletes the mailbox and everything in it, and it mentions the quota effect. It does not discuss irreversibility explicitly, but 'delete everything' strongly implies permanent destruction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the action and scope, then adds relevant usage context. Every phrase earns its place with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter destructive tool with no output schema, the description covers what it does, what it destroys, when to use it, and why it is optional. Nothing an agent needs to decide whether to call it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already explains that mailboxId is 'Mailbox id from create_mailbox'. The description adds no parameter-specific meaning beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Delete'), the resource ('the mailbox'), and the full scope ('and everything in it'). This clearly distinguishes it from sibling tools like create_mailbox, wait_for_code, list_messages, and read_message.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use it ('once you are done'), and provides the alternative of doing nothing because mailboxes expire in 24 hours. It also gives a reason to use it anyway ('polite and it frees your quota'), making the decision context clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_messagesList messages in a mailboxA

List what has arrived in a mailbox, newest first, with a short preview of each. Use it when the code extraction found nothing and you need to look at the mail yourself.

ParametersJSON Schema
NameRequiredDescriptionDefault
mailboxIdYesMailbox id from create_mailbox

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosing side effects, permissions, or read-only nature. The description only implies a read-only list operation but does not explicitly state that it has no side effects or whether it requires special permissions. This lack of transparency is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of two sentences that front-load the primary action and then provide usage context. There is no unnecessary verbosity or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives a clear trigger scenario for use and describes the output format at a high level (newest first, short previews). It does not detail error conditions or pagination, but for a simple list tool this is acceptable and does not impede correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter 'mailboxId' is described as 'Mailbox id from create_mailbox', which provides cross-tool context and clarifies the expected value. The schema coverage is 100% for the single parameter, and the description adds meaningful information beyond the type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: listing messages in a mailbox, with explicit details about ordering ('newest first') and content ('short preview of each'). It also provides a concrete use case ('when the code extraction found nothing'), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance on when to use the tool ('Use it when the code extraction found nothing and you need to look at the mail yourself'), which is helpful. However, it does not explicitly mention when not to use it or contrast it with sibling tools like read_message, but the context is sufficient for most scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_messageRead a messageA

Return the full body of one message, plain text where available. Use it when the preview is not enough or when the code sits in an unusual place.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdYesMessage id from list_messages or wait_for_code

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of explaining behavior. It discloses that plain text is returned where available, but it does not describe edge cases, error behavior, or whether HTML is ever included.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences with no filler. The core behavior is front-loaded, followed by a directly relevant usage condition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read tool, the description covers the action, the return style, and typical usage. No output schema exists, so the return behavior described is sufficient, though error handling and response format could be more explicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single required parameter is fully documented in the schema: 'Message id from list_messages or wait_for_code'. The description adds no parameter-specific information beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the full body of one message and mentions plain text availability. It distinguishes from preview-oriented listing, though it does not explicitly name sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use it when the preview is not enough" gives clear context for when this tool is appropriate versus lighter alternatives. It does not explicitly name those alternatives, but the guidance is actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wait_for_codeWait for the confirmation codeA

Wait for an email to arrive and return the confirmation code and activation link extracted from it. Call this right after triggering the signup. It blocks until the message lands, so there is no need to poll or to sleep between calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromNoOnly accept messages whose sender contains this text
waitNoSeconds to wait, default 30, maximum 120
sinceNoISO timestamp: ignore messages older than this, to skip leftovers
mailboxIdYesMailbox id from create_mailbox

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses meaningful blocking behavior: 'It blocks until the message lands, so there is no need to poll or to sleep between calls.' It also states the extracted outputs. However, it does not disclose timeout behavior, what happens if no matching email arrives, or any side effects on the mailbox message.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. The main action and result are front-loaded, followed by usage timing and a behavioral note that eliminates unnecessary polling patterns.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers when to call, what it returns, and the blocking behavior, which is sufficient for basic use. With no output schema, it appropriately mentions the return content. It does not cover timeout/error outcomes or how the 'from' and 'since' filters interact, but these are secondary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all four parameters. The description adds some context around the wait behavior but does not add parameter-specific meaning beyond what the schema already provides, matching the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'wait' and resource 'email', and specifies the exact outputs: confirmation code and activation link. It is distinct from sibling tools like list_messages or read_message because it implies extraction rather than raw message retrieval, but it does not explicitly name or contrast any sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit timing guidance: 'Call this right after triggering the signup.' It also advises against polling or sleeping between calls, which implies when not to use manual alternatives. However, it does not explicitly mention when to choose list_messages or read_message instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv0.1.0
    • First observedcreate_mailbox
    • First observeddelete_mailbox
    • First observedlist_messages
    • First observedread_message
    • First observedwait_for_code

TDQS

A4.3/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct role: create_mailbox sets up the address, wait_for_code extracts codes, list_messages and read_message offer progressively deeper inspection, and delete_mailbox cleans up. There is no overlap or ambiguity between the operations.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case: create_mailbox, wait_for_code, list_messages, read_message, delete_mailbox. The naming style is uniform and predictable throughout the set.

Tool Count5/5

Five tools is a well-scoped size for a temporary email server. Each tool covers an essential step in the workflow without redundancy or unnecessary additions.

Completeness5/5

The tools cover the full temporary email lifecycle: create a mailbox, wait for and extract a code, list and read messages for manual inspection, and optionally delete the mailbox. There are no obvious dead ends or missing operations for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Disposable email MCP server for autonomous AI agents. Create labeled temporary inboxes, wait for verification emails, extract OTP codes and confirmation links — zero human intervention required.
    6
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for disposable email — create inboxes, receive emails, and extract OTP codes. Let your AI agent sign up for services, wait for verification emails, and extract codes autonomously.
    7
    37 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Gives AI agents a real email identity, OTP reading, autonomous signup, and MCP server registry via a single stdio MCP connection.
    9 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for the Guerrilla Mail temporary/disposable email API. Spin up throwaway inboxes, poll for mail, and read messages from any MCP client.
    6
    9 npm
    1
    MIT