Skip to main content
Glama
chrisguidry
by chrisguidry

Move money

move_money
Destructive

Move assigned money between YNAB categories within a month to cover overspending or reallocate funds, subtracting from one category and adding to another without changing Ready to Assign.

Instructions

Move assigned money from one category to another within a month.

This is how to cover overspending or reallocate: it takes the amount off one category's assigned amount and adds it to the other's. Ready to Assign does not change. If YNAB rejects the second change, the first is put back before the error is reported.

Input Schema

NameRequiredDescriptionDefault
monthNoWhich plan month (default: "current"): • "current": This calendar month • "last": The previous calendar month • "next": The next calendar month • A date: The month containing that date, such as 2024-03-01current
amountYesAmount in currency units to move, greater than zero (required)
to_category_idYesCategory to give the money to (required)
from_category_idYesCategory to take the money from (required)

Output Schema

NameRequiredDescriptionDefault
changesYesEach category that changed, in the order they changed

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

Despite annotations already marking this as destructive and non-idempotent, the description adds meaningful behavioral detail: it explains the paired debit/credit effect and that Ready to Assign remains unchanged. It also discloses rollback behavior if the second change is rejected, which is valuable for a destructive mutation.

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 tightly structured across three short sentences, with the core operation front-loaded. Each sentence contributes useful information: purpose, effect, and failure behavior.

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 output schema and annotations, the description covers the important behavioral context an agent needs: category-to-category movement, no Ready to Assign change, and rollback on failure. Nothing essential for correct invocation is missing.

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 100%, so the parameter descriptions already carry the main semantics for month, amount, and category IDs. The tool description reinforces the direction of the amount movement, but does not add substantial syntax or format guidance beyond the schema.

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 and resource: moving assigned money from one category to another within a month. It also clarifies that Ready to Assign does not change, which distinguishes this operation from assign_money or set_assigned even without naming them directly.

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?

It gives clear use cases: covering overspending or reallocating between categories. However, it does not explicitly state when not to use it or name alternative tools such as assign_money, so it stops short of full when/when-not guidance.

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