Skip to main content
Glama
chrisguidry
by chrisguidry

Set assigned amount

set_assigned
DestructiveIdempotent

Sets the exact amount assigned to a YNAB category for a selected month, replacing the previous value so retries are safe and Ready to Assign absorbs the difference.

Instructions

Set exactly how much is assigned to a category in a month.

Unlike assign_money, this replaces the assigned amount, so it is safe to retry. Ready to Assign absorbs the difference.

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
amountYesThe category's new assigned amount in currency units (required)
category_idYesCategory to set (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.2/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true and destructiveHint=true; the description earns extra credit by explaining WHY it is retryable (overwrite semantics) and by disclosing a non-obvious side effect: 'Ready to Assign absorbs the difference'. That budget-side effect is not derivable from the schema or annotations and is the kind of context an agent needs before mutating a budget.

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?

Three short sentences, front-loaded with what it does, then the sibling contrast, then the side effect. No restated field lists and nothing extraneous; the retry note is brief and functional rather than padding.

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 3-parameter mutation with an output schema and rich annotations, the description covers the differentiating semantics and the Ready to Assign side effect, which is the main hidden behavior. Minor gaps (e.g., behavior with negative or non-numeric amounts, interaction with existing over-allocations) remain but are not blocking.

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 month enum/date union and the amount/category semantics, so the schema does the heavy lifting. The description adds only the notion that amount is the new total rather than a delta, which is already implied by 'new assigned amount' in the schema. Baseline 3 applies.

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 and resource (set the assigned amount for a category in a month) with explicit scope. It also names the sibling it is not (assign_money) and the exact behavioral difference, so an agent can distinguish the two 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 Guidelines4/5

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

Explicitly contrasts with assign_money ('this replaces the assigned amount') and gives a decision-relevant property (safe to retry). It stops short of a positive rule for when assign_money is the better choice, but the replacement-vs-adjustment distinction is clear enough for selection.

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