Skip to main content
Glama

ynab_delete_scheduled_transaction

DestructiveIdempotent

Delete a scheduled YNAB transaction by previewing the request first, then confirming it with a short-lived token.

Instructions

Delete a scheduled transaction.

Write safety: call without confirmation_token to preview. The preview returns confirmation_token and confirmation_expires_at in its structured output (and in its text). Execute the identical validated request with that short-lived confirmation_token.

Input Schema

NameRequiredDescriptionDefault
dry_runNo
budget_idNo
confirmation_tokenNoShort-lived, single-use token returned by the immediately preceding preview of this exact validated request. Omit, or pass null or an empty string, to preview.
scheduled_transaction_idYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.32.0
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "action": {
      -        "const": "ynab_delete_scheduled_transaction",
      -        "type": "string"
      -      },
      -      "dry_run": {
      -        "const": true,
      -        "type": "boolean"
      -      },
      -      "request": {
      -        "additionalProperties": {},
      -        "propertyNames": {
      -          "type": "string"
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "dry_run",
      -      "action",
      -      "request"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "scheduled_transaction_id": {
      -        "type": "string"
      -      },
      -      "success": {
      -        "const": true,
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "success",
      -      "scheduled_transaction_id"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "action": {
      +        "const": "ynab_delete_scheduled_transaction",
      +        "type": "string"
      +      },
      +      "confirmation_expires_at": {
      +        "description": "Preview only: when confirmation_token expires (ISO 8601).",
      +        "format": "date-time",
      +        "type": "string"
      +      },
      +      "confirmation_token": {
      +        "description": "Preview only: single-use token that executes this exact request when passed back as confirmation_token.",
      +        "type": "string"
      +      },
      +      "dry_run": {
      +        "const": true,
      +        "type": "boolean"
      +      },
      +      "request": {
      +        "additionalProperties": {},
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "dry_run",
      +      "action",
      +      "request"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "confirmation_expires_at": {
      +        "description": "Preview only: when confirmation_token expires (ISO 8601).",
      +        "format": "date-time",
      +        "type": "string"
      +      },
      +      "confirmation_token": {
      +        "description": "Preview only: single-use token that executes this exact request when passed back as confirmation_token.",
      +        "type": "string"
      +      },
      +      "scheduled_transaction_id": {
      +        "type": "string"
      +      },
      +      "success": {
      +        "const": true,
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "success",
      +      "scheduled_transaction_id"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed4 schema fields changedv0.31.0
    • addedInput schema / properties / confirmation_token / anyOf
      Added value: +[
      +  {
      +    "minLength": 16,
      +    "type": "string"
      +  },
      +  {
      +    "const": ""
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / confirmation_token / description
      Previous value: -"Short-lived, single-use token returned by the immediately preceding preview of this exact validated request."New value: +"Short-lived, single-use token returned by the immediately preceding preview of this exact validated request. Omit, or pass null or an empty string, to preview."
    • removedInput schema / properties / confirmation_token / minLength
      Removed value: -16
    • removedInput schema / properties / confirmation_token / type
      Removed value: -"string"
  3. Addedv0.27.1

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is partly known. The description adds materially new behavior beyond that: a mandatory preview step, a short-lived single-use token, and the requirement that the executing request be byte-identical to the previewed one. It stops short of stating whether the deletion is recoverable or what the preview response contains beyond the token, which the output schema covers.

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?

Two short paragraphs, the purpose first and the safety procedure second, with no filler or repetition. Every sentence carries actionable information and the critical instruction is front-loaded.

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

Completeness3/5

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

With an output schema present, the return-shape burden is lifted, and the confirm-flow is well covered. For a destructive mutation, though, the description omits whether budget_id is required or defaults, what dry_run does relative to the token flow (potentially redundant), and any note on irreversibility.

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

Parameters3/5

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

Schema description coverage is only 25% — only confirmation_token is documented in the schema. The description usefully elaborates the token lifecycle (short-lived, single-use, must match the identical validated request), but says nothing about dry_run, budget_id, or scheduled_transaction_id, leaving three parameters with no explanation in either place.

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

Purpose4/5

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

The first sentence states a specific verb and resource ('Delete a scheduled transaction'), which is unambiguous on its own. It does not, however, distinguish itself from the nearby ynab_delete_transaction or explain how it differs from update_scheduled_transaction, so sibling differentiation is only implicit in the name.

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 gives an explicit procedural rule: call without confirmation_token to preview, then re-submit the identical request with the returned token. That is genuine when-to-do-what guidance for the two-step flow. What is missing is guidance on when a caller would want to delete versus update or skip a scheduled transaction, and where to obtain the scheduled_transaction_id.

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