Skip to main content
Glama
mattias242

protonmail-mcp-server

by mattias242

Skapa vidarebefordringsutkast

create_forward_draft

Create a forward draft in ProtonMail Drafts instead of sending it. Include original message, attachments, and inline images for review before sending.

Instructions

Skapa en vidarebefordran som utkast i Drafts i stället för att skicka den.

Byggs exakt som forward_email: "Fwd: "-ämne, originalet inline under ett rubrikblock (text och HTML) och alla bilagor och inbäddade bilder med. Ingenting skickas; granska i Proton eller skicka med send_draft.

Args: uid: UID för mejlet att vidarebefordra mailbox: Mappen som UID:t kom från (obligatorisk). UID:n gäller per mapp. to: Mottagaradress(er) body: Valfri text ovanför det vidarebefordrade meddelandet cc: Kopia-adress(er) bcc: Hemlig kopia-adress(er) (sparas i utkastet)

Returns: {"uid", "mailbox": "Drafts", "message_id"} för utkastet.

Raises: ValueError: originalet finns inte, ogiltig adress, eller om Bridge vägrar spara utkastet.

Input Schema

NameRequiredDescriptionDefault
ccNo
toYes
bccNo
uidYes
bodyNo
mailboxYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare a non-destructive, non-idempotent write, so the safety baseline is covered. The description adds real behavioral context beyond that: nothing is dispatched, the draft lands in Drafts, the message is built exactly like forward_email with the original inline and all attachments/embedded images preserved, and it documents the ValueError conditions.

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?

Front-loads the core purpose, then detail, then structured Args/Returns/Raises sections with no filler. Slightly longer than strictly necessary, but every section (build behavior, return shape, error cases) earns its place for a mutation tool.

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?

No output schema exists, but the description documents the return dict ({uid, mailbox: Drafts, message_id}) and the ValueError cases, and all six params are covered. For a non-idempotent mutation tool the definition is largely complete, with only minor gaps such as recipient format 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 coverage is 0%, so the description must carry the parameter burden, and it does – all six parameters are described in the Args block. The mailbox entry adds genuine meaning not present in the schema ('Mappen som UID:t kom från… UID:n gäller per mapp'), explaining why the mailbox must accompany the UID.

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 precise verb+resource ('Skapa en vidarebefordran som utkast' – create a forward as a draft) and immediately distinguishes it from the sending tool forward_email ('i stället för att skicka den'). An agent can tell this apart from forward_email, create_draft, and send_draft without opening any 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?

Clearly frames the use case ('i stället för att skicka den') and names the follow-up action ('granska i Proton eller skicka med send_draft'), routing the agent to the alternative send path. It does not spell out explicit when-not conditions or contrast against create_draft/create_reply_draft, so it falls just short of a full 5.

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