Skip to main content
Glama
voidly-ai

voidmail

voidmail_wait_for_email

Read-onlyIdempotent

Wait for a new email, like a sign-up verification, with optional sender, subject, or since filters. Returns message ID, sender, and subject without marking it read.

Instructions

Wait up to 25 seconds for a new email, such as a sign-up verification message. Optional filters: exact sender (from), subject contains (subject), received at or after an ISO UTC time (since). Without since, only mail that arrives after this call starts counts. Matching runs on this machine and encrypted mail is opened here. Returns the message id, sender and subject only, and marks nothing read; then use voidmail_extract_code or voidmail_read_email.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fromNoExact sender address (case-insensitive)
sinceNoOnly messages received at or after this ISO UTC time, for example 2026-10-16T12:00:00Z
subjectNoText the subject must contain (case-insensitive)
timeout_secondsNoMaximum wait, 1-25 seconds (default 25)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.1.1

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower, yet the description adds real value: it discloses that matching and decryption happen on this machine, that it returns only id/sender/subject, and that it marks nothing read. The subtle since-omission timing rule is also spelled out. It does not, however, address polling frequency or what happens on timeout (empty return vs error).

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?

Dense but front-loaded: the wait, the filters, the timing caveat, the local-processing note, and the return contract each earn their place. It is a single long paragraph, which slightly reduces scannability but wastes almost no words.

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, the description carries the full burden and does so: it defines the return shape (id, sender, subject only), the side-effect profile (nothing marked read), and the follow-up tools. Nothing needed to call this correctly 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 baseline is 3; the description nonetheless adds semantics beyond the schema for 'since' by explaining that without it only mail arriving after the call starts counts. The other filters (from, subject) largely restate schema text, keeping this just above baseline rather than exceptional.

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+resource+scope: 'Wait up to 25 seconds for a new email', with a concrete example use case (sign-up verification). It is clearly distinguishable from sibling list/read tools because it blocks and waits rather than enumerating existing mail.

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?

Gives clear context for use (waiting for a verification message) and explicitly routes the agent to the next-step alternatives (voidmail_extract_code, voidmail_read_email). It does not state when NOT to use it (e.g. vs voidmail_list_inbox for already-arrived mail), so it falls short of a full when/when-not guide.

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