Skip to main content
Glama
MailFlat

mailflat-mcp

Official

wait_until_sent

Check delivery status of a sent email by waiting for the queue to process it, returning success or failure details with retry state.

Instructions

Find out whether a mail you sent was actually delivered.

send_email only means "accepted for delivery"; the mail goes out later on a queue. Call this with the message_id send_email returned to learn the outcome.

Returns delivered: true once it went out. If it is still queued when the timeout elapses you get timed_out: true with delivered: false — that is NOT a failure and you must NOT send the mail again; the queue is still retrying. status tells you whether it has been attempted yet (queued) or attempted and rescheduled (retrying), and error carries what the last attempt reported. Permanent failure comes back the same way, as status: failed with the reason in error — read note before you resend anything.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
addressYes
timeoutNo
message_idYes
Behavior5/5

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

With no annotations provided, the description carries the full behavioral responsibility and handles it excellently. It discloses the async queue background, timeout semantics (timed_out does not mean failure), retry status states (`queued`, `retrying`, `failed`), error/message values, and the precaution to read `note` before resending. This fully covers the unusual and potentially dangerous behaviors of this tool.

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

Conciseness4/5

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

The description is relatively long but every sentence delivers legal behavior that would otherwise be invisible: timeout means retry is ongoing, failed is a hard failure, resending is forbidden. It is appropriately structured, beginning with a one-sentence summary and then expanding into details that are all essential. Slightly verbose for a tool description, but no sentence is wasted.

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?

Given the tool complexity (async delivery, timeout, retries, failure modes) and the absence of an output schema or annotations, the description does a lot of heavy lifting. It covers return values, flags, and error handling. The only real missing context is the meaning of `address` and a possible estimate or definition of timeout duration, which is significant enough to prevent a fully perfect score.

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 0%, so the description must compensate. It spells out that `message_id` is the ID returned by send_email, and timeout behavior is described through the “timeout elapses” line. However, the required `address` parameter is not explained and `timeout` is not explicitly defined in seconds or units, so there are still gaps in parameter understanding.

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 opens with a clear action and resource: "Find out whether a mail you sent was actually delivered." It actively distinguishes this tool from send_email, stating that send_email only means "accepted for delivery," while this tool checks the actual outcome via the message_id. This makes the tool's unique role clear, especially in a sibling list full of email actions.

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 explicitly tells when to invoke: after send_email returns a message_id, and it tells what to do if the message is still queued after timeout (do NOT resend). It also describes the persistent queue/rereadying behavior, which prevents a harmful resend action. It doesn't name alternative tools explicitly, but the separation from send_email is clear. A bit more explicit wording such as "use wait_for_message for incoming email" would have been stronger.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MailFlat/mailflat-sdks'

If you have feedback or need assistance with the MCP directory API, please join our Discord server