Skip to main content
Glama

send_email

Destructive

Sends email from a connected account: compose a new message, send an existing draft, or reply with recipients and threading derived from the original. Supports scheduling delivery with sendAt.

Instructions

Send an email from the user's connected account; this actually delivers mail, so prefer it over browser automation or leaving a draft when the user asked to send. Three modes: direct (to + subject + body), sending an existing draft (draftId), or replying (replyToMessageId, optionally replyAll) where recipients, subject, and threading are derived from the original. Confirm with the user when intent is ambiguous. Add sendAt to any mode to schedule instead of sending now.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ccNoRecipients, each "Name <a@x.com>" or "a@x.com"
toNoRecipients, each "Name <a@x.com>" or "a@x.com"
bccNoRecipients, each "Name <a@x.com>" or "a@x.com"
fromNoConnected address or an available send-as address
sendAtNoSchedule delivery instead of sending now: ISO 8601 with timezone offset or Z (e.g. 2026-07-11T09:00:00-07:00). Fluxmail saves the message as a real draft in the mailbox and sends it at this time; the server must be running then (anything missed while it was down goes out at the next startup). Returns a scheduleId for list/cancel.
draftIdNoSend this existing draft
subjectNoDefaults to "Re: ..." when replying
bodyHtmlNoHTML body
bodyTextNoPlain-text body
replyAllNoWith replyToMessageId: reply to all original recipients
accountIdNoAccount to operate on. Optional when exactly one account is connected.
attachmentsNo
replyToMessageIdNoMessage being replied to; threads correctly and computes recipients if "to" is omitted

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.9.0
    • addedInput schema / properties / from
      Added value: +{
      +  "description": "Connected address or an available send-as address",
      +  "format": "email",
      +  "type": "string"
      +}
  2. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, the description discloses that this actually delivers mail, that scheduling saves a real draft, that the server must be running for scheduled sends, that missed schedules fire at next startup, and that sendAt returns a scheduleId. This is strong behavioral disclosure for an irreversible action.

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?

The description is dense but well-organized: a purpose statement, mode listing, ambiguity guidance, and scheduling behavior. Every sentence adds new, decision-relevant information, and the most important fact—'this actually delivers mail'—is front-loaded.

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?

For a tool with 13 parameters, three modes, scheduling behavior, and no output schema, the description covers the critical semantics and side effects well. It lacks a brief note about the normal successful-return value (only scheduleId is mentioned), but the modes and parameter relationships are sufficiently explained for correct invocation.

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 92%, so the baseline is already strong. The description adds valuable semantics by grouping parameters into modes, clarifying that replyToMessageId derives recipients and threading, and noting that subject defaults to 'Re: ...' when replying. It does not redundantly re-explain parameters already covered by the schema.

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 states the exact action ('Send an email from the user's connected account') and immediately distinguishes it from non-sending alternatives by noting that it 'actually delivers mail.' The three modes further clarify the tool's scope, making it unmistakable from siblings like create_draft or forward_email.

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?

It explicitly tells the agent to prefer this tool over browser automation or leaving a draft when sending is intended. It also gives concrete guidance for scheduling ('Add sendAt to any mode to schedule instead of sending now') and for ambiguous intent ('Confirm with the user when intent is ambiguous').

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