draft_update
Update an existing Apple Mail draft by changing recipients, subject, body, attachments, or sender. Returns a new draft ID for subsequent calls.
Instructions
Update an existing draft. DOES NOT SEND.
Patch semantics: only fields you pass change. None means "keep
existing"; empty list/string means "clear". To actually send, call
draft_send(draft_id) afterwards.
IMPORTANT: Mail.app forbids mutating saved drafts, so this is
implemented as delete-and-recreate. The returned draft_id is a
NEW id — use it for any subsequent draft_update or draft_send
call. The id you passed in is stale after this call returns.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"draft_id": "<draft_id>"
},
"name": "draft_update"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | ||
| to | No | ||
| bcc | No | ||
| body | No | Body override. None=keep; empty string=clear. | |
| subject | No | Subject override. None=keep. | |
| draft_id | Yes | Existing draft to update. | |
| from_account | No | Sender override. | |
| template_name | No | ||
| template_vars | No | ||
| attachment_paths | No | Attachment override (None=keep, []=clear, list=replace). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||