Skip to main content
Glama
resend

Email Sending MCP

by resend

Set Inbox Thread Labels

set-inbox-thread-labels

Replace every label on a Resend inbox thread with the exact label IDs provided in one atomic change. Unlisted labels are removed, and an empty array clears all labels.

Instructions

Purpose: Replace every label on one thread in a Resend inbox with exactly the labels given, in one atomic change. Labels on the thread that are not listed are taken off. Pass an empty array to take every label off.

NOT for: Adding a label while keeping the others (use add-inbox-thread-labels), or taking one label off (use remove-inbox-thread-label).

Returns: Every label the thread carries after the change.

When to use: User states the full set of labels a thread should have, like "label this only as Billing". If any label ID is not found, nothing changes. The labels themselves are kept, and stay on every other thread that carries them. Get the thread ID from list-inbox-threads and the label IDs from list-inbox-labels.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
inboxIdYesInbox ID, or the inbox email address (e.g. "support@example.com"). Not the Resend receiving address.
labelIdsYesIDs of every label the thread should carry, up to 100. An empty array takes every label off. Use list-inbox-labels to find label IDs.
threadIdYesThread ID

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.27.1

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare the safety profile (readOnlyHint=false, destructiveHint=false); the description adds substantive behavior: the operation is atomic, unlisted labels are removed, an empty array clears all labels, and if any label ID is not found nothing changes. It also clarifies that label objects themselves are preserved and remain on other threads, which is exactly the kind of side-effect disclosure a mutation tool needs.

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?

Bold front-loaded headers (Purpose, NOT for, Returns, When to use) make it scannable, and each block carries distinct information — semantics, routing, return value, trigger. No filler sentences.

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 3-param mutation tool with no output schema, the description covers the mutation semantics, failure mode, return value, and discovery path for required IDs (list-inbox-threads, list-inbox-labels). An agent has everything needed to call 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?

Schema description coverage is 100%, so the schema already documents inboxId, threadId and labelIds including the empty-array and 100-item semantics. The description largely restates this, adding only the 'labels stay on other threads' clarification rather than new parameter syntax or format detail. Baseline 3 is appropriate when the schema does the heavy lifting.

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+semantics: replace every label on one thread with exactly the given set, atomically. It distinguishes itself from siblings by naming add-inbox-thread-labels and remove-inbox-thread-label explicitly, so an agent can route correctly without opening either schema.

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?

Provides an explicit 'When to use' trigger (user states the full label set, e.g. 'label this only as Billing') plus a 'NOT for' section naming the two alternative tools and the conditions that select them. Nothing about tool selection is left to inference.

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

Deploy Server

Other Tools