Skip to main content
Glama
mattias242

protonmail-mcp-server

by mattias242

Stjärnmärk mejl

flag_email
Idempotent

Mark ProtonMail emails as starred by setting the IMAP Flagged flag; provide UID and mailbox to update messages without moving them.

Instructions

Stjärnmärk ett mejl (Starred i Proton).

Sätter IMAP-flaggan \Flagged, som hos Proton är samma sak som Starred: mejlet syns sedan under Starred och är stjärnmärkt i alla vyer. Mejlet flyttas inte och inget annat ändras. Är det redan stjärnmärkt händer inget.

Avvisas med fel (inget ändras): UID:t finns inte i mailbox (UID:n gäller per mapp), eller Bridge nekar (felet innehåller Bridges förklaring).

Args: uid: Mejlets UID i mailbox, eller en lista med upp till 100 UID:n ur samma mailbox mailbox: Mappen som UID:t kom från (obligatorisk). UID:n gäller per mapp: samma nummer i en annan mapp är ett annat mejl. Använd fältet mailbox från svaret av list_emails, search_emails eller get_email.

Returns: True när mejlet är stjärnmärkt. Med en lista med UID:n blir svaret {"ok": [UID, ...], "failed": [{"uid": ..., "error": ...}]}: ett resultat per UID. UID:n som inte finns i mailbox eller som Bridge nekar hamnar i failed medan de andra genomförs. Ett ogiltigt UID (inte heltal) eller fler än 100 avvisar hela anropet innan något ändras.

Input Schema

NameRequiredDescriptionDefault
uidYesMejlets UID i mailbox, eller en lista med upp till 100 UID:n ur samma mailbox. Med en lista blir svaret {"ok": [UID, ...], "failed": [{"uid": ..., "error": ...}]}.
mailboxYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.0

TDQS

A4.7/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: it confirms the already-starred no-op, documents partial-success batch semantics with per-UID ok/failed results, and specifies that an invalid UID or more than 100 UIDs rejects the entire call before any change. These are exactly the failure modes an agent needs and none are derivable from idempotentHint/destructiveHint alone.

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-loaded with the key statement and organized into clear Args/Returns/error blocks, with every behavioral claim earning its place. The Returns section partly restates the batch response shape that an output schema already covers, which is mild redundancy but aids the invalid-UID rejection explanation.

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 two-parameter mutation with an output schema present, the description covers the semantic meaning of the flag, the mandatory folder scoping, idempotency, partial-failure behavior and whole-call rejection cases. Nothing material is missing for correct invocation.

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 only 50% (mailbox has no schema description), and the description fully compensates: it explains that mailbox is required, that UIDs are folder-scoped so the same number in another folder is a different message, and where to source the value. It also characterizes uid as either a single UID or a list of up to 100 from the same mailbox, beyond the anyOf structure.

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 ('Stjärnmärk ett mejl') and immediately pins down the underlying mechanism (IMAP \Flagged = Proton Starred), so the agent knows exactly which state change occurs and which sibling (unflag_email) it is the inverse of. It also rules out side effects: the message is not moved and nothing else is altered.

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 operational guidance: mailbox is mandatory and must be taken from the mailbox field returned by list_emails, search_emails or get_email, because UIDs are scoped per folder. It does not explicitly contrast with unflag_email or state when not to use it, but the counterpart is unambiguous from the surrounding toolset.

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