Skip to main content
Glama
proton-mcp

proton-mcp

by RndmJoker

Change a draft

update_draft

Replaces an existing draft's recipients, subject, or body while keeping its message ID and attached files; omit text and HTML to retain the stored body.

Instructions

Replaces a draft with a changed version, keeping the same id. Fields that are not given are carried over, including the blind copies, which drafts written here keep. Files stored with the draft, a forwarded original among them, stay with it whatever happens to the body, and giving neither text nor html keeps the stored body exactly as it is. Only messages in the Drafts mailbox that carry the draft flag can be changed this way. The body is plain text and markup is not interpreted. HTML written here is delivered as visible characters, so the recipient would read the tags rather than see formatting. Give a message its shape with line breaks, blank lines, indentation and plain lists, and write a link as the bare address so that what is read is what is followed. A message may instead be written as markup, in the html field, which is delivered as formatting rather than as visible tags. Give one or the other, not both: a message that carries markup has its plain text half dropped, so the half that was confirmed would never arrive. Permitted are headings, paragraphs, line breaks, rules, quotes, emphasis, lists, tables, links and images, with colour, font, alignment, spacing and borders. Anything else is refused rather than quietly removed, and the answer names what and why. Note that the preview page linked from the confirmation lists every address in the message in full, including the ones behind links and images, and every alt text, because those are what a recipient reads. The question in the client stays short and carries counts instead. Text is UTF-8 everywhere: subject, body and addresses. Write characters as the language actually spells them, including umlauts, accents, sharp s, quotation marks and any other non-ASCII character. Do not transliterate them away (no "ae" for "ä", no "ss" for "ß"): the subject is encoded for transport and decoded again on arrival, and the body carries its character set, both verified against the Bridge. A transliterated message is simply a message with the wrong words in it.

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": {
      "messageId": "<messageId>"
    },
    "name": "update_draft"
  }
}

Input Schema

NameRequiredDescriptionDefault
ccNoReplaces the copies. Each entry is an address, optionally as "Display Name <name@example.com>".
toNoReplaces the main recipients. Each entry is an address, optionally as "Display Name <name@example.com>".
bccNoReplaces the blind copies. Each entry is an address, optionally as "Display Name <name@example.com>".
htmlNoReplaces the body with markup. Give this or text, not both. Permitted are headings, paragraphs, line breaks, rules, quotes, emphasis, lists, tables, links and images, with colour, font, alignment, spacing and borders. Images may point at a full address; anything outside the permitted set is refused with a reason rather than removed.
textNoReplaces the body.
subjectNoReplaces the subject.
messageIdYesThe message id from a listing or a search, with or without angle brackets.
markupLevelNoHow much markup is permitted. "standard" covers ordinary formatted mail. "extended" permits every CSS property, including ones that can hide content, and makes the confirmation carry a warning telling the person to open the preview. Prefer "standard"; reach for "extended" only when asked for something that needs it, such as a button, which requires display:inline-block.standard

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.11

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations, the description discloses important side effects and constraints: omitted fields are preserved, attachments remain, draft-flag eligibility is required, unsupported markup is refused with a reason, html-only updates drop the plain-text half, and UTF-8 characters must not be transliterated. This is exactly the kind of behavioral context an agent needs for a mutation tool.

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 core replacement behavior is front-loaded, and the body-format, preview, and UTF-8 constraints are relevant to correct invocation. The description is long and dense for an eight-parameter tool, but the content is generally purposeful rather than filler.

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?

Given the mutation semantics, draft eligibility constraint, html markup complexity, and absence of an output schema, the description covers what an agent needs to call the tool correctly. It explains preservation behavior, refusal behavior, confirmation/preview implications, and encoding expectations.

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 already 100%, so the baseline is 3, but the description adds meaningful meaning around the html/text relationship, markup restrictions, markupLevel tradeoffs, and character encoding. It reinforces and contextualizes the schema rather than merely repeating field names.

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 opens with a specific verb and resource: it replaces a draft with a changed version while keeping the same id. It also scopes eligible messages to the Drafts mailbox and the draft flag, so the agent can distinguish updating an existing draft from creating or sending one.

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?

The description gives clear operational conditions: fields not supplied are carried over, text and html are mutually exclusive, and markupLevel should default to standard unless extended markup is specifically needed. It does not explicitly route the agent away from creation or sending siblings, but the usage context is otherwise well defined.

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