Skip to main content
Glama

Get spending summary

get_spending_summary
Read-onlyIdempotent

Totals income, expenses and the net balance (income minus expenses) for a period, with each category's record count and total. All amounts are converted to the user's display currency at the exchange rate of each record's date. Without startDate and endDate it covers the current calendar month in UTC, which can differ from the user's local month around its first and last day: pass the user's local dates (YYYY-MM-DD) when you know them.

Input Schema

NameRequiredDescriptionDefault
searchNoOnly count records whose description or category name contains this text (case-insensitive), or whose amount written with two decimals (e.g. 12.50) contains it.
endDateNoEnd of the period, inclusive (23:59:59 UTC for a date-only value). Format: YYYY-MM-DD or an RFC 3339 timestamp such as 2026-03-05T14:30:00Z.
startDateNoStart of the period, inclusive (00:00:00 UTC for a date-only value). Format: YYYY-MM-DD or an RFC 3339 timestamp such as 2026-03-05T14:30:00Z.
paymentMethodIdsNoOnly include records paid with one of these payment methods (IDs from list_payment_methods).

Output Schema

NameRequiredDescriptionDefault
periodYes
currencyYes
categoriesYes
netBalanceYes
totalIncomeYes
totalExpenseYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / currency / enum
      Previous value: -[
      -  "MKD",
      -  "EUR",
      -  "USD",
      -  "AUD",
      -  "CHF",
      -  "GBP"
      -]New value: +[
      +  "MKD",
      +  "EUR",
      +  "USD",
      +  "AUD",
      +  "CHF",
      +  "GBP",
      +  "HUF",
      +  "RSD"
      +]
  2. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered. The description adds genuinely non-obvious behavior: amounts are converted to the display currency at each record's own date rate, and the default window is the UTC calendar month, which can diverge from the user's local month at the edges. It does not say whether categories with zero matching records appear in 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?

Three sentences, front-loaded with the returned aggregates, then the currency-conversion rule, then the date-default caveat. Little waste, though the parenthetical 'income minus expenses' restates the obvious and the FX sentence is dense.

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?

Output schema exists, so return shape needn't be explained, and all four parameters are documented in the schema; the description fills the important behavioral gaps (default window, FX timing). The only unaddressed question an agent might have is how categories with no matching records are represented.

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 100%, so the baseline is 3, but the description goes beyond it by specifying the default period when startDate/endDate are omitted (current UTC calendar month) and by explaining the local-vs-UTC date tradeoff with a concrete YYYY-MM-DD instruction. The search and paymentMethodIds semantics are left entirely to the schema, which documents them well.

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?

States a specific verb and resource: totals income, expenses, net balance, plus per-category record counts and totals over a period. The aggregation scope is unambiguous. It never names or contrasts with the closest sibling (get_trend_report_data), so an agent must infer the boundary from the resource wording alone.

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 description tells you how the period defaults and when to pass local dates, which is conditional guidance for calling it. It never says when to prefer this over get_trend_report_data or list_records, nor any exclusions or prerequisites.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.