Skip to main content
Glama
Thunderbird MCP

Thunderbird MCP

by U-C4N

Update a saved draft

mail_draft_update

Updates a saved email draft only when its reviewed revision is still current, allowing partial edits to recipients, subject, body, and attachments while preventing stale or duplicate changes.

Instructions

Update the saved draft only if its reviewed revision is still current.

Omitted fields stay unchanged; an empty recipient list clears that field. Body replaces the complete body, including any signature, in its existing format. Sender identity cannot change. If the user's composer is open, return DRAFT_BUSY and leave the window for the user to save or close. Reuse request_key to retrieve an operation without applying it twice. changes accepts subject, body, to, cc, bcc, add_attachments and remove_attachment_refs. Separate fields are aliases; use one form only.

Input Schema

NameRequiredDescriptionDefault
ccNo
toNo
bccNo
bodyNo
changesNo
subjectNo
draft_refYes
request_keyYes
add_attachmentsNo
expected_revisionYes
remove_attachment_refsNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.4.0

TDQS

A4.2/5.0
Behavior5/5

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

Goes far beyond the annotations: it discloses optimistic concurrency failure (expected_revision), that omitted fields stay unchanged while empty lists clear, that body replacement wipes the signature, that sender identity is immutable, the DRAFT_BUSY composer conflict, and how request_key deduplicates. That last point actually explains how the call achieves safe retry despite idempotentHint=false, which is exactly the kind of nuance the annotation cannot convey.

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?

Every sentence carries non-obvious information and the concurrency constraint is front-loaded before any field discussion. It is dense to the point of being a block of semicolon-separated rules on mixed topics, which costs some scannability but not correctness.

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 values need not be explained, and the annotations cover the safety profile; the description fills in the failure modes that matter. What it leaves out is where draft_ref comes from and how attachment refs are obtained, which an agent needs before it can construct a fully valid mutation.

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 description coverage is 0% across 11 params, so the description has to carry the load, and it does for the tricky ones: expected_revision, request_key, the null/omitted distinction, list-clearing semantics, and the shape of the untyped `changes` object including the alias duplication. Gaps remain on draft_ref provenance, the format of add_attachments, and what remove_attachment_refs actually references.

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 (update a saved draft) plus the defining precondition that the reviewed revision must still be current. It never names the adjacent save/send draft tools, so an agent must infer from the title alone why this differs from mail_draft_save or mail_draft_send.

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 concrete invocation rules: proceed only if the reviewed revision is current, use one alias form only, reuse request_key, and bail out with DRAFT_BUSY when the composer is open. However, it never names an alternative tool or a when-not-to-use condition relative to the sibling draft tools.

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