Bulk permanent delete
bulk_deletePermanently delete all messages matching a search query within a specific mailbox. Requires confirmation to prevent accidental loss; use dry run to preview first.
Instructions
PERMANENTLY delete every message matching a query in an explicit mailbox. On Gmail this only works inside Trash or Spam (use empty_trash / empty_spam, or bulk_trash then empty_trash). Irreversible; requires confirm:true (dryRun:true to preview).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | Cap on messages acted on this call for trash/move/delete/empty (default 2000, keeps calls under the timeout). If the result is done:false, re-run the same call (with confirm:true) to continue until done:true. | |
| query | No | What to match. On Gmail this is native search syntax (e.g. 'older_than:1y is:unread'); on other providers a text match. Omit to match the whole mailbox. | |
| dryRun | No | Preview only: return the matched count + a small sample, changing nothing. | |
| account | No | Gmail address to act on. Omit to use the default account. | |
| confirm | No | Required to actually run a destructive or large (>100) batch. | |
| mailbox | No | Mailbox/label to run in (e.g. '[Gmail]/Spam'). Omit for the account's whole-mail scope (Gmail: All Mail). |