Skip to main content
Glama
privateemail-mcp

privateemail-mcp

reply_to_message

Compose and send a threaded email reply to a message by UID, addressing the sender or all recipients and quoting the original; preview with dry_run before sending.

Instructions

Reply to a message by uid, the way a mail client does: addresses the sender (or everyone with reply_all), keeps the thread (In-Reply-To and References), adds Re: to the subject and appends the quoted original under your text. Write only your own reply in text, not the quoted part. Outward-facing and cannot be undone: only call it when the user has asked for this exact reply, and use dry_run first to see the recipients and final text.

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": {
      "uid": "<uid>",
      "text": "<text>"
    },
    "name": "reply_to_message"
  }
}

Input Schema

NameRequiredDescriptionDefault
uidYesuid of the message being answered
textYesYour reply, plain text, without the quoted original
folderNoMailbox folder path, e.g. INBOX or SentINBOX
dry_runNoReturn the composed reply without sending it
reply_allNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.9/5.0
Behavior5/5

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

No annotations exist, so the description carries the full burden and does so: it declares the action is outward-facing, irreversible, describes thread-header and quoting side effects, and warns against duplicating the quoted text inside `text`. That is uncommon and highly relevant behavioral context 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences front-loaded with the mechanism, followed by the safety constraint. No filler, and the most decision-relevant warning (outward-facing, irreversible) is positioned where an agent will read it.

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?

Covers everything needed to invoke safely: what the tool composes, what the caller must supply, how to preview it, and when it is off-limits. With no output schema, the dry_run sentence usefully indicates what a preview returns.

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 80%, but the description adds real meaning beyond it: reply_all's recipient expansion, dry_run's preview purpose, and text's 'write only your own reply' constraint. `folder` is left unexplained in the description, and uid is only implicitly characterized as identifying the answered message.

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+resource ('Reply to a message by uid') and immediately explains the mechanism: addresses sender, keeps thread via In-Reply-To/References, prefixes Re:, appends quoted original. This clearly separates it from the sibling send_email (a new outbound message rather than a threaded reply).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit gating: 'only call it when the user has asked for this exact reply', plus a prescribed safety step ('use dry_run first to see the recipients and final text'). An exclusions rule and an alternative path are both present, leaving nothing to inference.

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