create_draft
Saves 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). On a multi-account Mac, pass account (an account name from list_email_accounts) or from (a sende...
This record as markdown: /tools/com-local-mcp-local-mcp/create-draft.md
What create_draft does on Local
AI agents use create_draft to create or update resources in Local, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Local environment.
| Parameter | Type | Required | Description |
|---|---|---|---|
cc | string | — | |
to | string | — | |
bcc | string | — | |
body | string | — | |
from | string | — | |
account | string | — | |
subject | string | — | |
html_body | string | — | |
reply_all | boolean | — | |
attachments | string | — | |
reply_to_message_id | string | — |
Parameters from the server's own tool schema.
Why create_draft is rated Medium
This tool creates and modifies email drafts reversibly — the user can edit or discard them before sending. It does not execute code, delete data irreversibly, or move funds. The 'Write' category applies because it creates new data (draft emails) that can be undone.
From the tool's definition Tool description states 'Saves an email to the Mail.app Drafts folder' and 'Composes a new draft' with ability to pass `to`/`subject`/`body` and attach files. Creates email content that is 'never sends' but is created for user review.
Risk signalsAccepts raw HTML/template content (body) · High parameter count (11 properties)
Attacks that exploit this kind of access
The rule that runs create_draft safely
PolicyLayer is an MCP gateway: it sits between your AI agents and Local, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For create_draft, this is the rule to start with:
create_draft stays usable, but capped: an agent stuck in a loop can't make hundreds of changes a minute. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect Local, apply this rule, and every create_draft call is checked against it from then on.
Questions about create_draft
Saves 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). 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. It is categorised as a Write tool in the Local MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.
create_draft accepts 11 parameters: cc, to, bcc, body, from, account, subject, html_body, reply_all, attachments, reply_to_message_id. The full parameter table on this page comes from the server's own tool schema.
Register the Local MCP server in PolicyLayer and add a rule for create_draft: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Local. Nothing to install.
create_draft is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.
Yes. Add a rate_limit block to the create_draft rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for create_draft. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
create_draft is provided by the Local MCP server (local-mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on Local, and thousands of servers like it.
This server
Across the catalogue