Skip to main content
Glama

Compose Email

compose_email

Send a new email from a chosen Apple Mail account, with options for CC/BCC, attachments, HTML, or saving as a draft or opening for review.

Instructions

Compose and send a new email from a specific account.

Input Schema

NameRequiredDescriptionDefault
ccNoOptional CC recipients, comma-separated for multiple
toYesRecipient email address(es), comma-separated for multiple
bccNoOptional BCC recipients, comma-separated for multiple
bodyYesEmail body text (used as plain-text fallback when body_html is provided)
modeNoDelivery mode — "send" (send immediately, default), "draft" (save silently to Drafts), or "open" (open compose window for review before sending)send
accountYesAccount name to send from (e.g., "Gmail", "Work", "Personal")
subjectYesEmail subject line
body_htmlNoOptional HTML body for rich formatting (bold, headings, links, colors). When provided, the email is sent as HTML. The plain 'body' field is still required as fallback text.
attachmentsNoOptional file paths to attach, comma-separated for multiple (e.g., "/path/to/file1.png,/path/to/file2.pdf")
from_addressNoOptional sender address to use for this message. Must be one of the account's configured email addresses. When omitted, Mail uses the account's default "Send new messages from" setting.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed25 schema fields changedv3.2.1
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / account / description
      Added value: +"Account name to send from (e.g., \"Gmail\", \"Work\", \"Personal\")"
    • removedInput schema / properties / account / title
      Removed value: -"Account"
    • addedInput schema / properties / attachments / description
      Added value: +"Optional file paths to attach, comma-separated for multiple (e.g., \"/path/to/file1.png,/path/to/file2.pdf\")"
    • removedInput schema / properties / attachments / title
      Removed value: -"Attachments"
    • addedInput schema / properties / bcc / description
      Added value: +"Optional BCC recipients, comma-separated for multiple"
    • removedInput schema / properties / bcc / title
      Removed value: -"Bcc"
    • addedInput schema / properties / body / description
      Added value: +"Email body text (used as plain-text fallback when body_html is provided)"
    • removedInput schema / properties / body / title
      Removed value: -"Body"
    • addedInput schema / properties / body_html / description
      Added value: +"Optional HTML body for rich formatting (bold, headings, links, colors). When provided, the email is sent as HTML. The plain 'body' field is still required as fallback text."
    • removedInput schema / properties / body_html / title
      Removed value: -"Body Html"
    • addedInput schema / properties / cc / description
      Added value: +"Optional CC recipients, comma-separated for multiple"
    • removedInput schema / properties / cc / title
      Removed value: -"Cc"
    • addedInput schema / properties / from_address / description
      Added value: +"Optional sender address to use for this message. Must be one of the account's configured email addresses. When omitted, Mail uses the account's default \"Send new messages from\" setting."
    • removedInput schema / properties / from_address / title
      Removed value: -"From Address"
    • addedInput schema / properties / mode / description
      Added value: +"Delivery mode — \"send\" (send immediately, default), \"draft\" (save silently to Drafts), or \"open\" (open compose window for review before sending)"
    • removedInput schema / properties / mode / title
      Removed value: -"Mode"
    • addedInput schema / properties / subject / description
      Added value: +"Email subject line"
    • removedInput schema / properties / subject / title
      Removed value: -"Subject"
    • addedInput schema / properties / to / description
      Added value: +"Recipient email address(es), comma-separated for multiple"
    • removedInput schema / properties / to / title
      Removed value: -"To"
    • removedInput schema / title
      Removed value: -"compose_emailArguments"
    • removedOutput schema / properties / result / title
      Removed value: -"Result"
    • removedOutput schema / title
      Removed value: -"compose_emailOutput"
    • addedOutput schema / x-fastmcp-wrap-result
      Added value: +true
  2. Changed1 schema field changedv3.1.4
    • addedInput schema / properties / from_address
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "From Address"
      +}
  3. First observedv3.1.0

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It says "send" but never discloses that sending is an irreversible external side effect, what account/permission prerequisites apply, or that the tool can silently save a draft or open a review window depending on mode. The schema does cover mode, but the description adds no behavioral context of its own.

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?

A single tight sentence with no filler, and the account scoping is stated up front. It is arguably under-specified rather than concise, but it wastes no words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the input schema is rich. However, for a mutation tool with zero annotations and a sibling draft-creator, the description omits the mode-dependent behavior and irreversibility that an agent needs before invoking it.

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

Parameters3/5

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

Schema description coverage is 100%, so all 10 parameters including cc/bcc/attachments/from_address are already documented with examples and defaults. The description contributes nothing beyond "from a specific account," so the baseline 3 for high schema coverage applies.

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?

The description names a specific verb pair ("compose and send") and resource ("a new email") plus the scoping constraint "from a specific account." It is clear on its own, but it never distinguishes itself from the sibling create_rich_email_draft, which is a near-neighbor given the mode="draft" option.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus reply_to_email, forward_email, or create_rich_email_draft. The mode parameter's "draft" and "open" values overlap directly with the sibling draft tool, and the description does nothing to disambiguate that choice.

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