Skip to main content

Delete Content

Permanently deletes a workbook, published data source, or extract refresh task. Dispatches on resourceType:

  • workbook — deletes a workbook (recoverable via recycle bin on Tableau Cloud)
  • datasource — deletes a published data source (recoverable via recycle bin; warns on downstream dependents)
  • extract-refresh-task — deletes an extract refresh task schedule (permanent, not recoverable)
Admin Only

This tool is restricted to Tableau site administrators and requires the ADMIN_TOOLS_ENABLED environment variable to be enabled.

Two-phase safety

The tool is two-phase to keep the destructive action safe:

  1. Preview (default — confirm omitted or false):

    • For workbook / datasource: tags the resource with pending-deletion (reversible, visible in the Tableau UI), reports identity, project, and owner.
    • For extract-refresh-task: first verifies the task exists on the site (there is no single-get endpoint, so the task list is checked for a matching id) — an unknown taskId returns a not-found error and no confirmationToken is minted. When the task exists, mints a single-use confirmationToken and reports task metadata.
    • Does not delete anything.
  2. Confirm (confirm: true):

    • For workbook / datasource: re-fetches the resource and verifies the pending-deletion tag is present before deleting (server-authoritative gate — cannot be bypassed by guessing).
    • For extract-refresh-task: verifies the confirmationToken matches the nonce from the preview.
    • Performs the deletion.
Human confirmation required

Between the preview and the confirm, the calling agent is instructed to surface the resource identity to the user and obtain explicit approval. This is a prompt-level expectation; the tag/nonce gate proves a preview ran but cannot observe whether a human actually approved.

When the mcp-apps feature flag is enabled, the model-driven confirm: true path is closed entirely — deletion requires a human gesture in the in-iframe confirm panel.

Tool scoping

This tool honors the same tool-scoping rules as the read tools. If the server is configured with a bounded context (INCLUDE_WORKBOOK_IDS, INCLUDE_PROJECT_IDS, INCLUDE_DATASOURCE_IDS, INCLUDE_TAGS), a resource outside that scope cannot be previewed or deleted — the request is rejected before any side effects.

APIs called

Workbook

Datasource

Extract Refresh Task

Common

Required arguments

resourceType

The kind of resource to delete: "workbook", "datasource", or "extract-refresh-task".

resourceId

The LUID of the workbook or data source, or the UUID of the extract refresh task.

Example: "222ea993-9391-4910-a167-56b3d19b4e3b"

Optional arguments

confirm

When omitted or false, runs the non-destructive preview. When true, permanently deletes — but only if the prior-preview evidence is present (tag for workbook/datasource, confirmationToken for extract-refresh-task).

Example: true


tag

For resourceType="workbook" or "datasource" only. The pending-deletion tag label. Reversible and visible in the Tableau UI. Defaults to pending-deletion.

Example: "stale-pending-deletion"


confirmationToken

For resourceType="extract-refresh-task" only. The single-use token returned by a prior preview call. Required when confirm is true; ignored otherwise.

Audit records and durability

Every mutation attempt — allowed, denied, completed, or failed — emits a single authoritative, structured-JSON audit record (actor, tool, action, phase, target identity, evidence kind, result) on a dedicated audit logger. That logger bypasses the LOG_LEVEL severity filter, so an operator cannot suppress security-audit records by raising LOG_LEVEL. For an extract-refresh-task target, the record's name/project/owner derive best-effort from the task's underlying data source or workbook (the task itself has no such fields); if that lookup fails the record still carries the task id.

Durability is the deployment's responsibility. The server only emits these records to its log stream (stderr/stdout/file). To retain them, operators must ship that audit-logger stream to a durable, ideally immutable, log store (SIEM, log archive, etc.). There is no built-in durable audit sink in this server.

Side effects

  • Preview (workbook/datasource) adds the pending-deletion tag. Reversible.
  • Preview (extract-refresh-task) mints an ephemeral nonce (no visible side effect on the task).
  • Confirm (workbook/datasource) removes the resource. On Tableau Cloud it goes to the recycle bin and can be restored for a limited time.
  • Confirm (extract-refresh-task) permanently deletes the task schedule. Not recoverable.

Example

Preview a workbook deletion

{
"resourceType": "workbook",
"resourceId": "222ea993-9391-4910-a167-56b3d19b4e3b"
}

Confirm the deletion

{
"resourceType": "workbook",
"resourceId": "222ea993-9391-4910-a167-56b3d19b4e3b",
"confirm": true
}