Draft Gmail Message
draft_gmail_messageCreates a Gmail draft for new or reply emails, with optional attachments, aliases, CC/BCC, and signatures—ready for review or sending.
Instructions
Creates a draft email in the user's Gmail account. Supports both new drafts and reply drafts with optional attachments. Supports Gmail's "Send As" feature to draft from configured alias addresses.
SCHEDULED SEND IS NOT AVAILABLE. Gmail's REST API exposes no send-time parameter; the Schedule send feature is web-UI only, and a message cannot be placed in the Scheduled folder through the API. Do not claim a message was scheduled. To deliver at a chosen time, create a draft with draft_gmail_message. An external scheduler must retain the message data to create and send a new message via send_gmail_message then, or call users.drafts.send with the draft ID returned by draft_gmail_message. Alternatively, let the user schedule the draft in the Gmail UI.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | Optional CC email address. | |
| to | No | Optional recipient email address. | |
| bcc | No | Optional BCC email address. | |
| body | Yes | Email body (plain text). | |
| subject | Yes | Email subject. | |
| from_name | No | Optional sender display name (e.g., 'Peter Hartree'). If provided, the From header will be formatted as 'Name <email>'. | |
| thread_id | No | Optional Gmail thread ID to reply within. When in_reply_to is omitted, replies to the latest non-draft, non-trash message with an RFC Message-ID. | |
| from_email | No | Optional 'Send As' alias email address. Must be configured in Gmail settings (Settings > Accounts > Send mail as). If not provided, uses the account's default Send As address, falling back to the authenticated user's email when Gmail returns no usable Send-As entry or settings access is not authorized. | |
| references | No | Optional Message-ID ancestry chain. Normally omit when thread_id is provided; the server derives the chain through the selected reply target. | |
| attachments | No | Optional list of attachments. Each can have: 'url' (fetch from URL — works with MCP attachment URLs from get_drive_file_download_url / get_gmail_attachment_content), OR 'path' (file path, auto-encodes), OR 'content' (standard base64, not urlsafe) + 'filename'. Optional 'mime_type'. Optional 'content_id' (string) makes the attachment inline-rendered: it lands in a multipart/related part with `Content-ID: <content_id>` and `Content-Disposition: inline`, and the HTML body can reference it via `<img src="cid:<content_id>">` (RFC 2392). Without `content_id` the attachment is a regular multipart/mixed attachment. | |
| body_format | No | Email body format. Use 'plain' for plaintext or 'html' for HTML content. | plain |
| in_reply_to | No | Optional RFC Message-ID to explicitly reply to a specific message (e.g., '<message123@gmail.com>'). Omit to reply to the latest eligible message in thread_id. | |
| quote_original | No | Whether to include the original message as a quoted reply. Only has an effect when thread_id is provided. Defaults to false. | |
| include_signature | No | Whether to append the Gmail signature from Settings > Signature when available. Defaults to true. | |
| user_google_email | Yes | The user's Google email address. Required for authentication. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |