Create Draft
create_draftSaves an email to the Mail.app Drafts folder for the user to review and send manually — never sends. Composes a new draft (pass to/subject/body), or a reply draft (pass reply_to_message_id plus body). 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 of the resolved recipient/sender, subject, and that the body will be saved, without touching Mail.app.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | CC address(es), comma-separated. | |
| to | No | Recipient address(es) for a new draft, comma-separated. Omit for a reply draft (uses reply_to_message_id). | |
| bcc | No | BCC address(es), comma-separated. | |
| body | No | Plain-text body of the draft. | |
| from | No | Sender address — on a multi-account Mac, selects which account's Drafts to use. Alternative to `account`. | |
| account | No | Account name (from list_email_accounts) whose Drafts folder receives the draft. Alternative to `from`. | |
| confirm | No | 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. | false |
| subject | No | Subject line for a new draft. Ignored for reply drafts (they inherit the original subject). | |
| html_body | No | HTML body of the draft. Takes precedence over `body` when both are given. | |
| reply_all | No | For a reply draft, include all original recipients (reply-all) instead of just the sender. | false |
| attachments | No | Files to attach, as comma-separated absolute paths (e.g. a PDF). | |
| reply_to_message_id | No | Message id (from list_emails/search_emails) to draft a reply to, instead of a new message. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| from | No | ||
| kind | No | ||
| account | No | ||
| subject | No | ||
| attachments | No | ||
| saved_draft | No | ||
| attachments_failed | No | ||
| reply_to_message_id | No |