Skip to main content
Glama

Mail: Update draft

mail_update_draft
Destructive

Rewrite a saved draft — its recipients, subject, body or files. Take draft_id from mail_list_drafts. Only the fields you pass change; 'attachments' ADDS files, 'remove_attachment_ids' takes stored ones off (ids from mail_list_drafts). Nothing is sent. CONFIRMATION: this tool is PROPOSED, never performed directly. You get status='confirmation_required' with an action_id and a plan_token, and the write happens only after confirm_action.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "draft_id": "<draft_id>"
    },
    "name": "mail_update_draft"
  }
}

Input Schema

NameRequiredDescriptionDefault
ccNo
toNo
bodyNo
subjectNo
draft_idYes
attachmentsNoFiles to attach, at most 10 and 25 MB in total. Each item is EITHER {from_message_id, part} — an attachment of a message (id from mail_list_messages, part from mail_get_message) — OR {document_id} — one of the caller's own Documents. To attach a file you generated, store it with upload_document_base64 and pass the document_id it returns; raw file content is not accepted here.
remove_attachment_idsNoStored files to take off the draft — their attachment_id from mail_list_drafts.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Goes well past the annotations: it discloses partial-update semantics, the asymmetric add-versus-remove attachment behavior, that nothing is sent, and the full propose-then-confirm protocol returning status='confirmation_required' with action_id and plan_token. The destructiveHint=true annotation is consistent with an in-place rewrite of an existing draft.

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?

Dense and front-loaded: purpose first, then id sourcing, then mutation semantics, then the confirmation constraint. The capitalized CONFIRMATION block is emphatic but earns its space given the two-step write flow; a few clauses are telegraphic but nothing is redundant.

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?

For a 7-parameter mutation tool with no output schema, it covers the critical unknowns: id provenance, partial-update behavior, attachment add/remove direction, and the confirmation handshake. It does not clarify whether to/cc replace the existing lists entirely or merge, a minor but real omission.

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 only 29%, so the description carries real weight — it explains that 'attachments' ADDS files while 'remove_attachment_ids' removes stored ones, and where each id comes from. to/cc/subject/body get no semantics (presumably replacement), which is the remaining gap against low schema coverage.

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 ('Rewrite') and resource ('a saved draft') and enumerates the mutable fields (recipients, subject, body, files). Combined with 'Only the fields you pass change' it is clearly a partial-update tool, distinguishably different from mail_save_draft or mail_delete_draft without opening a schema.

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 routing: draft_id comes from mail_list_drafts, remove_attachment_ids ids also come from mail_list_drafts, and the write only completes via confirm_action. It lacks an explicit 'use X instead when...' contrast against mail_save_draft or mail_delete_draft, so it stops short of full exclusion guidance.

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.

Resources