Skip to main content
Glama
hs737

MCP Server for YNAB

by hs737

Months — Range

months_range
Read-only

Retrieve budgeted, activity, and balance for every category across a range of months as one matrix, enabling month-over-month budget comparisons in a single call.

Instructions

[READ] Budgeted, activity and balance for every category across a range of months, as one matrix. This is the tool for any month-over-month question: one call instead of one months_get per month, and a quarter of the size, because it returns six fields per category rather than every goal field YNAB tracks. from_month and to_month: 'YYYY-MM', an ISO date, or 'current'. to_month defaults to the current month. Narrow it with category_ids or group_ids (category_ids wins if both are given). fields: which of budgeted, activity and balance each cell carries — all three by default, and dropping the two you are not reading takes roughly two thirds off a forty-category range. include_hidden=true adds hidden categories, including the credit-card payment ones. The response carries as_of: a range is a snapshot, and one cached earlier in a session is not what the plan says now. Re-read it, or use changes_since, before acting on an old one. Amounts are in milliunits (1000 = $1.00). Costs one YNAB request per month in the range (limit 36 months); check overview_request_budget before a long range.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fieldsNo
plan_idNo
to_monthNo
group_idsNo
from_monthYes
category_idsNo
include_hiddenNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the readOnlyHint/destructiveHint annotations, it discloses real operational traits: the as_of snapshot nature and caching hazard, one request per month consumed, and a 36-month cap. These are exactly the behavioral facts annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The [READ] tag and core purpose are front-loaded, and nearly every sentence carries distinct information. It is a long single paragraph, so the cost/limit and milliu nit details could be split for scannability, costing a point on structure rather than content.

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?

An output schema exists so return shape need not be explained, yet the description still adds the one piece the schema can't convey: that as_of makes the result a point-in-time snapshot. Combined with cost limits, milliunit units, and filter semantics, it is complete for a 7-param tool.

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

Parameters5/5

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

With 0% schema description coverage, the description carries the full burden and does: from_month/to_month accepted formats ('YYYY-MM', ISO date, 'current'), to_month default, category_ids vs group_ids precedence, the meaning of fields and its cost trade-off, and include_hidden behavior. Only plan_id goes undocumented.

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 opens with a specific verb+resource: '[READ] Budgeted, activity and balance for every category across a range of months, as one matrix.' It explicitly distinguishes itself from months_get ('one call instead of one months_get per month') and points to changes_since for staleness, so an agent can route without opening any 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?

It names the use case ('any month-over-month question'), the alternative it replaces (per-month months_get), and the escalation path for stale data (changes_since), plus a prerequisite check (overview_request_budget before a long range). When-to-use is explicit rather than inferred.

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