All tools

reply_email

Email · macOS

Effect: send (strongest supported action). Status: gated.

Gated means the tool requires an installed app, a connected account, permission, or runtime availability. Check those requirements on the listed platform before using it.

macOS

Purpose

Use this when the user wants to reply to an email that lives in the Mac's Apple Mail (message ID from list_emails/search_emails). Supports plain text or HTML body and previews before sending. To leave the reply in Drafts WITHOUT sending, pass `save_as_draft: true`: it builds the same native Mail reply (automatic quote of the original, correct thread, Reply/Reply-All recipients) and saves it instead of sending — `send` is never called on that path. `create_draft` with `reply_to_message_id` also leaves a draft, but composes it from scratch, so it has no automatic quote. For a Microsoft 365 message ID from m365_list_emails, use m365_reply_email. Pass `account` (from list_emails/search_emails results) to skip scanning other accounts and avoid timeouts on multi-account Macs.

Required inputs

Permissions and confirmation

Explicit confirmation parameter: inspect the schema and tool description before any real call. The documentation example keeps confirm false. Obtain user authorization before performing the action.

Full input schema — macOS
{
  "properties": {
    "account": {
      "description": "Account (from the listing) the message is in — pass it to skip scanning other accounts and avoid multi-account timeouts.",
      "type": "string"
    },
    "body": {
      "description": "Plain-text reply body.",
      "type": "string"
    },
    "confirm": {
      "default": "false",
      "description": "Consent gate: the first call previews the reply; call again with confirm=true to actually SEND it — or to save it when save_as_draft is set.",
      "type": "boolean"
    },
    "html_body": {
      "description": "HTML reply body. Takes precedence over `body` when both are given.",
      "type": "string"
    },
    "message_id": {
      "description": "Id of the message to reply to (from list_emails/search_emails).",
      "type": "string"
    },
    "reply_all": {
      "default": "false",
      "description": "Reply to all original recipients instead of just the sender.",
      "type": "boolean"
    },
    "save_as_draft": {
      "default": "false",
      "description": "Save the native reply in Drafts instead of sending it. Keeps Mail's reply template: automatic quote of the original, the right thread, and the Reply/Reply-All recipients. Nothing is sent on this path.",
      "type": "boolean"
    }
  },
  "required": [
    "message_id"
  ],
  "type": "object"
}

Documentation example

Do not execute this example. These concrete inputs refer to a fictional demonstration dataset. Resolve real handles and obtain user authorization before any real call.

{
  "body": "Can we review the launch checklist on Tuesday?",
  "confirm": false,
  "message_id": "demo-message-001"
}