Skip to main content
Glama
LandonSchropp

ynab-mcp-server

Update Category Budget

ynab_update_category_budget
Idempotent

Sets the total budgeted amount for one category in a specific month, replacing the existing amount rather than incrementing it.

Instructions

Sets the total budgeted amount for one category in a specific month (not an increment). To move money between categories, use ynab_move_money instead.

Input Schema

NameRequiredDescriptionDefault
monthYesThe plan month in ISO format (e.g. 2024-01-01). Must be the first day of the month.
planIdNoThe plan ID (optional, defaults to YNAB_PLAN_ID; budgetId is a deprecated alias)
budgetIdNoDeprecated alias of planId (still accepted)
budgetedYesThe amount to budget in dollars (e.g. 500.00). This sets the total budgeted amount, not an increment.
categoryIdYesThe ID of the category to update

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.7.1

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is carried structurally. The description adds the most consequential behavioral fact – that this overwrites the total rather than adding to it – which explains the idempotency. It does not cover auth requirements or failure behavior, keeping it short of a 5.

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 sentences, zero waste, with the highest-risk semantic caveat front-loaded and the alternative routing delegated to sentence two.

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

Completeness4/5

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

For a mutation tool with annotations covering safety, full schema coverage, and no output schema, the description supplies the two facts an agent most needs: absolute-set semantics and sibling routing. Minor omission – no mention of what the write affects or returns – but nothing essential is missing for correct invocation.

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%, including the fact that 'budgeted' sets the total rather than an increment, so the description's '(not an increment)' clause largely restates the schema. Baseline 3 is appropriate since the schema does the heavy lifting on month format, planId defaults, and deprecation.

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?

States a specific verb (sets), resource (budgeted amount), and precise scope (one category, one month), and explicitly disambiguates the semantics with '(not an increment)'. An agent can distinguish it from ynab_move_money without opening either schema.

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

Usage Guidelines5/5

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

Names the alternative tool (ynab_move_money) and the condition that selects it (moving money between categories). Combined with the explicit 'not an increment' exclusion, both the when-to-use and when-not-to-use cases are covered.

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