Skip to main content
Glama
cfu_mail

cfu_mail

send_draft

Dispatch an authorized, previewed email draft and return a receipt; repeated calls for the same draft do not resend it.

Instructions

Send the exact preview only when the user authorized sending.

A successful response means server acceptance, not recipient delivery. Repeated calls for the same sent draft return its receipt without resending. Never recreate an uncertain draft to retry automatically.

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": {
      "account_id": "<account_id>",
      "draft_id": "<draft_id>",
      "preview_hash": "<preview_hash>"
    },
    "name": "send_draft"
  }
}

Input Schema

NameRequiredDescriptionDefault
draft_idYes
account_idYes
preview_hashYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.1

TDQS

A4/5.0
Behavior5/5

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

Annotations already cover safety (readOnlyHint=false, destructiveHint=false, openWorldHint=true), and the description adds genuinely non-obvious behavior: idempotent resends returning a receipt, acceptance not equaling delivery, and a retry-safety rule. These are exactly the traits an agent cannot infer from annotations and would otherwise get wrong.

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?

Four short sentences, each carrying distinct information: authorization gate, response semantics, idempotency, and retry prohibition. The most decision-relevant constraint is front-loaded and nothing is repeated.

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?

Return-value semantics are covered without an output schema (acceptance vs delivery, receipt on resend), and the retry rule addresses the risky edge case. Completeness falls short on failure modes — what a preview_hash mismatch yields and what error conditions to expect — for a tool that openWorldHint marks as externally side-effecting.

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

Parameters2/5

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

Schema coverage is 0% for all three required parameters, so the description carries full burden, yet it never explains what preview_hash is, how it is obtained, or why account_id and draft_id are needed together. The word "exact" hints that preview_hash pins the content to a prior preview, but that is the only parameter guidance offered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Send the exact preview" states a specific verb and object, and the phrase "exact preview" implicitly ties it to the preview_draft/prepare_draft siblings without naming them. An agent can tell this is the terminal action in the draft workflow, though the sibling relationship is left to inference rather than stated.

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 opening clause gives an explicit precondition ("only when the user authorized sending") and the last line adds a clear prohibition against automatic recreation on uncertainty. It stops short of naming preview_draft as the required upstream step or stating what to do when authorization is ambiguous.

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