Skip to main content
Glama

ynab_update_transactions

Idempotent

Batch update 1–100 YNAB transactions in one request, and preview your changes with an optional dry-run before saving.

Instructions

Update 1–100 transactions in a single batch with dry-run preview.

Args:

  • budget_id (string, optional): Budget UUID. Omit to use the default budget.

  • transactions (array, required): Up to 100 objects, each requires id plus fields to update. Amount updates use one of amount_decimal (preferred), amount_milliunits, or deprecated amount.

  • dry_run (boolean, optional): Preview changes without saving. Default: false.

Returns: summary (updated, failed), results[], transactions[].

Examples:

  • Dry run: set dry_run=true to preview before/after for first 10 items

Write safety: call without confirmation_token to preview. Execute the identical validated request with the short-lived confirmation_token returned by that preview.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dry_runNo
budget_idNo
transactionsYes
confirmation_tokenNoShort-lived, single-use token returned by the immediately preceding preview of this exact validated request.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.27.1
    • addedInput schema / properties / confirmation_token
      Added value: +{
      +  "description": "Short-lived, single-use token returned by the immediately preceding preview of this exact validated request.",
      +  "minLength": 16,
      +  "type": "string"
      +}
    • addedInput schema / properties / transactions / items / properties / amount / description
      Added value: +"Deprecated legacy alias for amount_milliunits. Use amount_decimal for currency input or amount_milliunits for raw YNAB values."
    • addedInput schema / properties / transactions / items / properties / amount_decimal
      Added value: +{
      +  "description": "Preferred: amount in decimal currency units (for example, -12.34). Rounded exactly to the nearest YNAB milliunit.",
      +  "type": "number"
      +}
    • addedInput schema / properties / transactions / items / properties / amount_milliunits
      Added value: +{
      +  "description": "Raw YNAB milliunits. Use only when the value is already converted.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
  2. Addedv0.26.9

TDQS

A4.7/5.0
Behavior5/5

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

Annotations provide readOnlyHint=false, idempotentHint=true, destructiveHint=false. The description adds significant behavioral context: batch limit 100, dry-run preview, confirmation_token flow, amount alternatives, and returns summary. No contradiction with annotations.

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?

The description is concise: a brief opening sentence, a structured args list, returns, an example, and a write safety note. Every sentence adds value with no redundancy.

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?

Given the tool's complexity (batch update with preview/confirm, multiple amount types, optional budget), and presence of output schema, the description is highly complete. It covers all parameters, the preview-confirm flow, and usage example.

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

Parameters4/5

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

Schema description coverage is low (25%), but the description compensates by explaining dry_run, budget_id, transactions array structure, amount options (preferred amount_decimal), and confirmation_token derivation. It adds meaning beyond the schema's bare types.

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 'Update 1–100 transactions in a single batch with dry-run preview,' clearly specifying the verb (update) and resource (transactions) with batch size and dry-run capability. This distinguishes it from sibling tools like ynab_create_transactions, ynab_delete_transaction, and ynab_update_transaction (singular).

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 provides explicit usage guidance: 'Write safety: call without confirmation_token to preview. Execute the identical validated request with the short-lived confirmation_token returned by that preview.' It also mentions optional budget_id to use default. However, it lacks explicit directions on when not to use this tool versus alternatives like ynab_update_transaction.

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