Sign inGet started
Menu
TOOL REFERENCE / SOURCE GENERATEDMAILMAN MCP / MAIL

email_update_draft

Replaces the content of an existing unsent draft. Still sends nothing. Use it to apply the user's edits to a draft you already created rather than creating a second one. Every field you supply replaces the draft's current value, so send the full recipient list and full body, not just the part that changed. account_id must be the mailbox that owns the draft.

Input fields

{
  "type": "object",
  "properties": {
    "account_id": {
      "type": "string",
      "minLength": 1,
      "description": "The connected mailbox to act on, from email_accounts_list. Never guess this value and never reuse one across mailboxes — it selects both the credential and the permission set the call runs under."
    },
    "draft_id": {
      "type": "string",
      "minLength": 1,
      "description": "A draft id from email_create_draft (draft_...)."
    },
    "to": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      },
      "description": "The complete recipient list after the update. This replaces the draft's existing To list rather than adding to it; pass [] to clear it."
    },
    "cc": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "bcc": {
      "description": "Blind copies. Other recipients cannot see these addresses.",
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "subject": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "text_body": {
      "description": "Plain-text body. Prefer this unless HTML is needed.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "html_body": {
      "description": "HTML body. Supply text_body too so non-HTML clients render something.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "attachments": {
      "description": "Files to attach. Supply either content_base64 or source_url per item.",
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "filename": {
                "type": "string",
                "minLength": 1
              },
              "content_type": {
                "type": "string",
                "minLength": 1,
                "description": "MIME type, e.g. application/pdf."
              },
              "content_base64": {
                "description": "Base64 content. Use for small files.",
                "type": "string"
              },
              "source_url": {
                "description": "URL the server fetches instead of inline content.",
                "type": "string"
              },
              "size_bytes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "filename",
              "content_type"
            ]
          }
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "account_id",
    "draft_id",
    "to"
  ]
}

Tool behavior

May change provider state. Check the explicit account, required access and provider capabilities before invoking.

Inspect isError and per-account errors. General write tools do not all enforce exact-plan approval. This reference does not certify any current AI client version.

YOUR AI POSTAL SYSTEM

YOUR INBOXES.
UNDER CONTROL.

Get started

Start with a free account and one read-only search. Existing accounts keep their connection.