Skip to main content
Glama
Timbre

Timbre

move_mail

Destructive

Move messages to archive, trash, inbox, junk, or a named mailbox without permanent deletion, and get an undo token to reverse the move. Use it to file or restore mail across accounts safely.

Instructions

Move messages to archive, trash, inbox, junk or a named mailbox. Never deletes permanently; returns an undo_token. For an account without an archive mailbox, Mail is asked to make one; if it will not, the result says how. Gmail: Mail can only move messages to the trash or junk by script (and out of them, to All Mail); other Gmail moves are refused with what to do instead.

Input Schema

NameRequiredDescriptionDefault
toYesDestination: archive, trash, inbox or junk (each message's own account), or a mailbox name or path from list_mailboxes.
idsYesMessage ids (1-200).
accountNoAccount of the destination mailbox, when its name exists in several accounts.

Output Schema

NameRequiredDescriptionDefault
doneYes
noteNo
failedNo
undo_tokenNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.5

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the safety profile is structured data. The description does add valuable context beyond that: the operation is never a permanent delete and yields an undo_token, and provider-specific (Gmail) behavior is disclosed. However, the tension between destructiveHint=true and "never deletes permanently" is left unqualified, and the non-idempotent nature (what happens on repeat moves) is not described.

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?

Front-loaded with the action and destinations, then constraints; every clause carries information. The Gmail sentence is dense and reads almost telegraphically ("refused with what to do instead"), which slightly hurts scannability but does not waste space.

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?

An output schema exists so return shape needn't be explained, yet the description still usefully flags the undo_token. Combined with the Gmail and no-archive-mailbox edge cases, the definition covers the risky paths an agent needs before invoking a destructive move.

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 100%, so all three parameters are already documented in the schema, and the description adds only the notion of a named mailbox as a destination. It adds nothing about the 1-200 id cap or when the account parameter is needed beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Move messages") and enumerates the valid destinations (archive, trash, inbox, junk, named mailbox), so the action is unambiguous. It does not contrast itself with siblings such as mark_mail or undo_move, so an agent must infer the boundary from names alone.

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?

Encodes real when-not conditions: Gmail moves are refused except to trash/junk (and out to All Mail), with a pointer to what to do instead, plus the archive-mailbox creation fallback. What is missing is a forward pointer to undo_move for reversing the returned undo_token, and no explicit statement of when to prefer mark_mail over move.

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