Disposable email inboxes for humans and AI agents. Spawn an inbox, wait for the OTP, toss it.
TossInbox has 8 tools with basic descriptions and input schemas, but significant gaps in parameter documentation and output schema clarity. Tool names are action-oriented (spawn, list, read, wait, remove, clear) which is good. However, most parameter descriptions are minimal (10-30 chars), falling well below the 72-char baseline. No output schemas are documented. Error handling guidance is absent. The 'spawn' tool has a confusing 'failover' parameter default (true) that contradicts the description ('fail if chosen provider is down'). Parameter relationships (e.g., 'save' directory structure) are undocumented. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Overall, definitions are skeletal, functional but not LLM-optimized.
Clear all saved inboxes
List messages in an inbox
List available email providers
Read a full message by id (list attachments, optionally save them and the HTML body)
Remove a saved inbox
List saved inboxes
Create a new disposable inbox (automatically falls back to another provider when the chosen one is down)
Wait for a message to arrive (optionally extract the OTP code)
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., what does 'spawn' return? inbox address? token? expiry?). Baseline: 100% of A+ tools document return types.
Parameter descriptions are too brief (10-30 chars vs 72-char baseline). 'inbox address (defaults to the most recent inbox)' is 50 chars but lacks format guidance. 'optional label to identify this inbox' (38 chars) doesn't explain how labels are used or retrieved. Descriptions must be LLM-actionable.
Confusing 'failover' parameter in spawn: description says 'fail if the chosen provider is down instead of falling back', but default=true suggests it WILL fail by default. This violates the principle that defaults must not cause unintended side effects. Clarify: does true mean 'fail' or 'enable failover'?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. 'remove' and 'clear' are DESTRUCTIVE but unmarked. 'list', 'read', 'wait', 'providers', 'saved' are READ_ONLY but unmarked. Annotations enable safer agent planning.
No error handling guidance. What happens if a provider is down? If an inbox expires? If a message is not found? Errors must tell LLMs what to do next (retry, try another provider, ask user). Baseline: pattern:recovery-guide.