Skip to main content
Glama
MailFlat

mailflat-mcp

Official

create_inbox

Open an email inbox and get a permanent address for signups or one-time codes. Reuse the same address across test runs; only messages expire based on retention.

Instructions

Open an email inbox and return its address. Use this when you need an address to sign up for a service or to receive a one-time code.

The address is permanent and stays until you delete it, so a test suite can reuse one address across runs instead of opening a new inbox each time. Only the messages inside expire, on the retention window you choose.

label needs a paid plan; on free it is reported back in ignored_fields. retention_hours is optional (0 = your plan's max); requests above your plan are capped. subdomain picks the part after the @ on mailflat.net (prefix@subdomain.mailflat.net); it needs a paid plan and is random when omitted. domain opens the inbox on a custom domain instead (prefix@acme.com). Pass it ONLY when the user named a domain they have already verified on this account; never guess one. Leave it empty and the address is created on mailflat.net. domain wins over subdomain.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
labelNo
domainNo
prefixNo
subdomainNo
retention_hoursNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.7.0
    • addedInput schema / properties / domain
      Added value: +{
      +  "default": "",
      +  "title": "Domain",
      +  "type": "string"
      +}
    • addedInput schema / properties / subdomain
      Added value: +{
      +  "default": "",
      +  "title": "Subdomain",
      +  "type": "string"
      +}
  2. First observedv0.9.0

TDQS

A5/5.0
Behavior5/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 and does so well: it discloses permanence ("stays until you delete it"), that only messages expire on the chosen retention window, plan-gating reported via `ignored_fields`, and capping of retention requests above plan limits.

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?

Front-loaded with purpose and usage in the first two sentences, then a per-parameter block. Every sentence adds operational value — no filler or restatement of the tool name.

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?

With no output schema and no annotations, the description supplies the missing pieces itself: the return value (the address), lifecycle behavior, plan constraints, and cross-parameter precedence. An agent has enough to call this correctly without guessing.

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

Parameters5/5

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

With 0% schema description coverage, the description compensates thoroughly: it explains `label` (paid-plan gated, reported in `ignored_fields`), `retention_hours` (0 = plan max, over-plan requests capped), `subdomain` (paid, random when omitted, with format example), and `domain` including its precedence over `subdomain`. Only `prefix` is left to inference from the address-format examples, a minor gap against otherwise strong coverage.

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?

States a specific verb and resource ("Open an email inbox") plus the return value ("return its address"). This clearly distinguishes it from siblings like list_inboxes, delete_inbox, and burn_inbox, which operate on existing inboxes rather than creating one.

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?

Gives explicit when-to-use criteria ("need an address to sign up for a service or to receive a one-time code") and adds a reuse rationale for test suites. It also carries an exclusion for `domain`: pass it ONLY when the user named an already-verified domain, never guess — precisely the kind of guardrail an agent needs.

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