Skip to main content
Glama

Rescue emails from junk

not_junk
Destructive

Take messages back out of the junk folder and return them to the inbox - what "not spam" does in a mail client, and the reverse of mark_junk. THERE IS NO SOURCE FOLDER TO PASS: this always reads out of the junk folder, because that is the only place a message it can act on is. Get the uids from list_emails or search_emails against the junk folder first, and remember a uid only means something in the folder it came from. Pass to to send them somewhere other than the inbox - and refuses a to that is the junk folder itself, because that would put them straight back. REFUSES on a mailbox that has no junk folder rather than creating an empty one. Flags and the original dates are preserved, so a rescued message keeps the date it arrived rather than looking like it came in today. Pass every UID in one call rather than calling it once per message.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNoWhere to put them. Defaults to INBOX, which is what "not spam" means.
uidsYesThe UIDs to act on, from list_emails or search_emails. Pass EVERY message you want changed in ONE call - this tool acts on the whole set in a single operation, and doing it that way costs the user one call instead of one per message. Up to 500 at a time. A single message is simply a one-element array.

Schema Changelog

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

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations, it discloses important behavioral details: there is no source folder parameter because the tool always reads from the junk folder, it refuses a `to` pointing at the junk folder, it refuses mailboxes without a junk folder instead of creating one, and it preserves flags and original dates. This gives the agent a clear model of what will and will not happen.

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 longer than average but every sentence carries operational meaning, and the most important constraint (no source folder) is front-loaded. Some repetition exists in explaining that the tool only acts on the junk folder, but the emphasis is useful rather than pure padding.

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?

For a two-parameter action tool with no output schema and destructive annotations, this description is highly complete. It covers how to obtain IDs, the meaning of those IDs, destination behavior, error/refusal cases, preservation of message properties, and batching expectations. No critical operational detail needed to invoke the tool 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 schema already documents both parameters. The description adds meaningful extras: UIDs are folder-scoped and only meaningful in the folder they came from, `to` defaults to INBOX, and `to` cannot be the junk folder. It reinforces but does not merely repeat the schema's batching guidance.

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 uses a specific verb and resource: 'Take messages back out of the junk folder and return them to the inbox.' It also explicitly frames the tool as what 'not spam' does and the reverse of mark_junk, which distinguishes it clearly from the sibling tool that performs the inverse operation.

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?

It gives strong usage context: get UIDs from list_emails or search_emails against the junk folder, pass every UID in one call, and use `to` to redirect elsewhere. It names mark_junk as the inverse concept, but it does not explicitly name move_email as the alternative for moving from non-junk folders, so an explicit exclusion for a sibling tool is missing.

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.3/5.0
Disambiguation4/5

Most tools target clearly distinct actions and resource types, and the near-overlapping pairs (archive_email vs move_email, check_bounces vs check_receipts) are explicitly cross-referenced in their descriptions. However, the delivery-status pair genuinely overlaps — both scan inbound mail to answer "did my message get there?" — and archive_email is functionally a role-aware move_email, so an agent could still select the wrong one without careful reading.

Naming Consistency4/5

Virtually every tool follows a consistent verb_noun pattern with clear prefix families (check_*, create_*, draft_*, list_*, mark_*, read_*). The single outlier is not_junk, which breaks the mark_* symmetry of its counterpart mark_junk and is not a standard verb-noun construction, though it remains perfectly readable.

Tool Count3/5

31 tools is firmly in the heavy range, though email is a genuinely broad domain spanning send/reply/forward, three draft variants, folder management, flags, junk handling, and diagnostics. Real consolidation was possible — check_bounces and check_receipts could be one delivery-status tool, archive_email is a special case of move_email, and the read-state/flag pairs could take boolean parameters — but each tool has a defensible job.

Completeness4/5

The core email lifecycle is thoroughly covered: send/reply/forward, three draft types plus draft editing, read/search/list/thread, full folder CRUD, move/archive/delete, flags, read state, junk handling, and file-upload intake. Minor gaps exist — there is no permanent-deletion or purge tool, no filter/rules management, and identity/contact maintenance is deliberately out of scope — but real user workflows can be completed without dead ends.

Resources