Skip to main content
Glama
CapyKkuing

naver-mail-mcp

update_draft

Updates a draft by overwriting only provided fields while keeping omitted ones. Re-provide attachments because they are not merged, and note that the draft ID changes.

Instructions

Updates a draft with merge semantics: given (non-empty) fields overwrite, omitted fields are kept. If only body is given the HTML body is cleared. WARNING: attachments are NOT merged; re-provide them or they are removed. The draft id changes (returned).

Input Schema

NameRequiredDescriptionDefault
ccNoCc recipients. Plain email addresses (e.g. "user@example.com"); "Name <user@example.com>" also works.
toNoPrimary recipients. Plain email addresses (e.g. "user@example.com"); "Name <user@example.com>" also works.
bccNoBcc recipients. Plain email addresses (e.g. "user@example.com"); "Name <user@example.com>" also works.
bodyNoPlain text body. Do NOT format with Markdown; use htmlBody for rich text. If htmlBody is also given, this is the plain-text alternative.
draftIdYes
subjectNo
htmlBodyNoHTML body (valid HTML tags).
attachmentsNoAttachments. Combined size must not exceed 25MB.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Discloses behavior far beyond the annotations: precise merge semantics, the body-only side effect that clears htmlBody, the warning that attachments are NOT merged and are removed if omitted, and the non-obvious fact that the draft id changes and is returned. These are exactly the traps an agent would otherwise hit.

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?

Three dense sentences, front-loaded with the merge rule before the edge cases, and the highest-risk warning (attachments deleted) is capitalized. No filler or restatement of the name.

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 non-idempotent mutation with no output schema, the description covers the destructive edge case, the identity change, and the update contract. An agent has everything needed to call it without silently destroying data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, but the description adds real semantics the schema cannot express: per-field overwrite-vs-keep behavior across all 8 parameters, the body/htmlBody interaction, and the attachment replacement rule. It meaningfully reduces ambiguity about how omitted vs. provided values are treated.

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 and resource ("Updates a draft") and immediately qualifies it with the operative semantics ("merge semantics"). This clearly separates it from create_draft, get_draft, delete_draft and list_drafts without needing the schemas.

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 conditions that govern correct use: non-empty fields overwrite, omitted fields are kept, body-only clears htmlBody, and attachments must be re-provided. It never explicitly routes the agent to a sibling (e.g. create_draft for a new draft, or send_message instead of updating), so it stops short of full when/when-not guidance.

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