Skip to main content
Glama
Albretsen

MCP Emails

Run a previewed bulk operation

bulk_execute
Destructive

Execute a previewed bulk email delete or move using its plan ID. Applies the exact message selection from the plan, valid for one run within 15 minutes.

Instructions

Run a bulk delete or move that was previewed as a plan. Takes only the plan_id: which messages are affected was decided and frozen when the preview was created, and cannot be changed here. A plan runs at most once and expires 15 minutes after it is created.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe plan_id returned with a bulk preview.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
cardNoWhich card this envelope renders. Always 'receipt' here.
stateNoWhere the plan stands: executed, cancelled, expired or failed.
receiptNoWhat the run actually did: headline, detail and the affected counts.
dashboard_urlNoAbsolute link to the signed-in dashboard for this operation.
schema_versionNoCard envelope version. A client that does not know this version should fall back to dashboard_url.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "card": {
      +      "description": "Which card this envelope renders. Always 'receipt' here.",
      +      "type": "string"
      +    },
      +    "dashboard_url": {
      +      "description": "Absolute link to the signed-in dashboard for this operation.",
      +      "type": "string"
      +    },
      +    "receipt": {
      +      "additionalProperties": true,
      +      "description": "What the run actually did: headline, detail and the affected counts.",
      +      "type": "object"
      +    },
      +    "schema_version": {
      +      "description": "Card envelope version. A client that does not know this version should fall back to dashboard_url.",
      +      "type": "integer"
      +    },
      +    "state": {
      +      "description": "Where the plan stands: executed, cancelled, expired or failed.",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv1.0.4

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations' destructiveHint=true, the description discloses crucial runtime behavior: plans run at most once, expire 15 minutes after creation, and cannot be altered at execution time. This tells the agent about idempotency and time-sensitivity without relying on inference.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly packed sentences deliver the action, the single-parameter constraint, immutability, once-only execution, and expiration. There is no filler or redundant restating of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive one-parameter tool with a full output schema and annotations, the description covers all operational essentials: what it runs, where the plan_id comes from, immutable scope, idempotency limits, and expiration. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even though the schema already documents plan_id at 100% coverage, the description adds essential meaning: the plan_id fully determines the set of affected messages, the decisions were frozen at preview time, and no other parameters are accepted. This clarifies why a single parameter is sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Run') and a specific resource ('a bulk delete or move that was previewed as a plan'), which clearly distinguishes it from bulk_cancel and other bulk-related tools. It also specifies that the affected messages were already decided, so there is no ambiguity about what execution means.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly indicates when this tool should be used: after a bulk preview has been created, with only the plan_id needed. It also gives exclusions such as 'cannot be changed here' and 'runs at most once,' but it does not explicitly name an alternative tool such as bulk_cancel for cancellation scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.