Skip to main content
Glama
YNAB MCP Server

YNAB MCP Server

by oliverames

Get Income Expense Summary

get_income_expense_summary
Read-onlyIdempotent

Calculate monthly income, net spending, and savings rate from YNAB data while excluding transfers and deleted rows, so you can assess budget performance.

Instructions

Monthly income/net spending and savings rate. Income uses category/group metadata IDs, independent of display language; reversals reduce income. Category refunds reduce spending. Split components counted once; transfers/deleted rows excluded. Ambiguous metadata requires incomeCategoryIds; uncategorized inflows are reported separately.

Input Schema

NameRequiredDescriptionDefault
budgetIdNo
sinceDateNoStart of the window (YYYY-MM-DD). Defaults to 6 full months back.
untilDateNoEnd of the window (YYYY-MM-DD). Defaults to today.
incomeCategoryIdsNoExplicit Ready to Assign category IDs from list_categories if internal metadata is ambiguous or unavailable.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv6.1.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / properties / budgetId / description
      Removed value: -"Budget ID (uses default if not provided)"
    • addedInput schema / properties / incomeCategoryIds
      Added value: +{
      +  "description": "Explicit Ready to Assign category IDs from list_categories if internal metadata is ambiguous or unavailable.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "maxItems": 10,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. Changed1 schema field changedv5.4.0
    • removedOutput schema / properties / result / description
      Removed value: -"Structured result returned by Get Income Expense Summary."
  3. Addedv5.1.1

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), so the description rightly spends its words on domain semantics that annotations cannot carry: reversals reduce income, category refunds reduce spending, split components are counted once, transfers and deleted rows are excluded, and uncategorized inflows are reported separately. These accounting rules materially change how an agent should interpret the result.

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?

Front-loaded with what the tool returns, then a tight list of accounting rules. Near-telegraphic phrasing is efficient, though the clipped clauses ('Split components counted once') trade a little readability for density.

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?

An output schema exists, so return values need no explanation, and the description covers the domain semantics that would otherwise be unknowable. Default window behavior and the required-none nature of the call are left to the schema, which is adequate.

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 coverage is 75%, so budgetId and the date parameters are already documented, and the description adds substantive meaning for incomeCategoryIds: income uses category/group metadata IDs independent of display language, and ambiguous metadata requires explicit IDs. It does not restate the date-window defaults, but those are already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names the concrete outputs: monthly income, net spending, and savings rate. That is a specific verb+resource, but it does not distinguish this tool from analytical siblings such as get_spending_trends or get_budget_health, which also compute aggregates.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the summary is for monthly income/spending rollups. The one conditional, 'Ambiguous metadata requires incomeCategoryIds,' hints at when extra input is needed, but there is no when-not guidance and no explicit routing to alternative tools.

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