All tools

create_draft

Email · macOS

Effect: write (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

Saves an email to the Mail.app Drafts folder for the user to review and send manually — it never sends. Compose a new draft with `to`/`subject` and `body` or `html_body`, or save a native reply with `reply_to_message_id`, `reply_all`, and `body` or `html_body`; the response names the Drafts mailbox and subject. A reply draft's response includes `threaded`: true means the saved draft was read back and its headers reference the source message (it will appear inside the conversation); false means it saved WITHOUT threading headers (relay the warning to the user); "unconfirmed" means it could not be read back in time (e.g. Exchange sync lag). On a multi-account Mac, pass `account` (an account name from list_email_accounts) or `from` (a sender address) to place the draft in that account's Drafts; otherwise it lands in the default account. Attach files by passing `attachments` (comma-separated absolute file paths, e.g. a PDF quote) — they are attached to the saved draft. Use this for the cautious user who wants AI-composed mail but insists on sending it themselves. Requires confirm=true to actually save it — without it, returns a preview without touching Mail.app.

Required inputs

No required inputs are declared in this platform's schema. Optional selectors and runtime requirements may still apply.

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 name (from list_email_accounts) whose Drafts folder receives the draft. Alternative to `from`.",
      "type": "string"
    },
    "attachments": {
      "description": "Files to attach, as comma-separated absolute paths (e.g. a PDF).",
      "type": "string"
    },
    "bcc": {
      "description": "BCC address(es), comma-separated.",
      "type": "string"
    },
    "body": {
      "description": "Plain-text body of the draft.",
      "type": "string"
    },
    "cc": {
      "description": "CC address(es), comma-separated.",
      "type": "string"
    },
    "confirm": {
      "default": "false",
      "description": "Must be true to actually save the draft. Without it, returns a preview of the recipient/sender, subject, and that the body will be saved.",
      "type": "boolean"
    },
    "from": {
      "description": "Sender address — on a multi-account Mac, selects which account's Drafts to use. Alternative to `account`.",
      "type": "string"
    },
    "html_body": {
      "description": "HTML body of the draft. Takes precedence over `body` when both are given.",
      "type": "string"
    },
    "reply_all": {
      "default": "false",
      "description": "For a reply draft, include all original recipients (reply-all) instead of just the sender.",
      "type": "boolean"
    },
    "reply_to_message_id": {
      "description": "Message id (from list_emails/search_emails) to draft a reply to, instead of a new message.",
      "type": "string"
    },
    "subject": {
      "description": "Subject line for a new draft. Ignored for reply drafts (they inherit the original subject).",
      "type": "string"
    },
    "to": {
      "description": "Recipient address(es) for a new draft, comma-separated. Omit for a reply draft (uses reply_to_message_id).",
      "type": "string"
    }
  },
  "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,
  "subject": "Planning meeting",
  "to": "[email protected]"
}