Skip to main content
Glama

Check for bounced emails

check_bounces
Read-onlyIdempotent

Find messages that came back undelivered. A send is reported successful when the mail RELAY accepts it, but delivery happens minutes later on the recipient's server and can still fail - the bounce arrives as a separate message in the INBOX long after the send tool has answered. USE THIS AFTER SENDING ANYTHING IMPORTANT, and whenever the user asks whether a message arrived. Scans INBOX and the Junk folder by default, because bounces are automated mail from an unfamiliar server and frequently land in spam. Each result says whether the failure is PERMANENT (the address is wrong; resending changes nothing) or TEMPORARY (the receiving server is busy and the sending server is STILL RETRYING - resending would deliver it twice). Always tell the user which it is before offering to resend. THIS ONLY FINDS FAILURES. If the user is asking whether a message ARRIVED rather than whether it failed, call check_receipts as well: no bounce is weak evidence of delivery, and a delivery or read confirmation is the positive half of the same question.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
daysNoHow far back to look, in days. Defaults to 7.
mailboxesNoFolders to scan. Defaults to INBOX and Junk.
recipientNoOnly report bounces involving this address or domain, e.g. "bob@acme.com" or "acme.com". Leave it out to see everything.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

The description goes well beyond the readOnlyHint/idempotentHint annotations by explaining the underlying email delivery model: relay acceptance is not delivery, bounces arrive later as separate messages, and bounces often land in Junk. It also discloses result semantics (PERMANENT vs TEMPORARY) and the default scan folders, which materially changes how the agent should interpret and act on results. No contradiction with annotations exists.

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?

Although the description is long, every sentence contributes substantive information about delivery timing, default folders, failure types, user guidance, or sibling-tool routing. The core purpose is front-loaded, and the additional context is dense rather than padded. This is appropriate length for a tool with nuanced result semantics.

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 description is complete for a read-only lookup tool with no output schema. It explains when to call it, what it scans, how to interpret PERMANENT vs TEMPORARY results, and how to handle the complementary check_receipts case. There are no obvious gaps that would prevent an agent from invoking it correctly.

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 input schema already documents all three parameters with clear descriptions and defaults, and schema_description_coverage is 100%. The tool description adds context about the default INBOX/Junk scan but largely mirrors the schema rather than introducing meaningfully new parameter-level semantics. Baseline 3 is appropriate because the schema carries the parameter documentation burden.

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 specific, action-oriented statement ('Find messages that came back undelivered') that clearly identifies the resource and the operation. It also explicitly distinguishes itself from sibling tools by noting this only finds failures, while check_receipts covers the positive delivery side. This makes the tool immediately recognizable and separable from related tools.

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 gives explicit when-to-use guidance: after sending anything important, and whenever the user asks whether a message arrived. It also provides a clear exclusion: if the user is asking whether a message arrived rather than failed, call check_receipts as well, because a missing bounce is only weak evidence of delivery. This is a model of usage guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4/5.0
Disambiguation4/5

Most tools target clearly distinct actions, but there are several close pairs that require careful reading: check_bounces vs check_receipts, list_emails vs search_emails, and the send/reply/forward vs draft_email/draft_reply/draft_forward families. The descriptions are strong enough that a careful agent can disambiguate, but the boundaries are not always obvious from the tool names alone.

Naming Consistency5/5

Every tool uses a consistent snake_case verb_noun convention, such as check_bounces, list_mailboxes, send_email, and update_draft. Related operations use parallel forms like mark_read/mark_unread and flag_email/unflag_email, making the naming predictable and coherent.

Tool Count2/5

With 28 tools, this exceeds the 25+ threshold where a tool set starts to feel too heavy. Email is a broad domain and many tools are individually justified, but the surface could be consolidated, especially the draft_forward/draft_reply/draft_email and send_email/reply_email/forward_email variants.

Completeness4/5

The core email lifecycle is thoroughly covered: send, read, search, move, delete, drafts, replies, forwards, folders, flags, attachments, upload links, contacts, identities, deliverability, bounces, and receipts. The main gap is that permanent deletion is referenced as a separate operation but no such tool is actually provided, and contact/identity management is effectively read-only.

Resources