Skip to main content
Glama
moneylover-mcp

moneylover-mcp

Summarize spending or income

moneylover_summarize_spending
Read-only

Total income or expenses per category over a date range, grouped by currency, to answer how much was spent on something or earned in a period. Use for every total or comparison.

Instructions

Total income or expenses per category over a date range, grouped by currency: the answer to 'how much did I spend on X' or 'what did I earn this month'. Use it for every total or comparison; use moneylover_list_transactions for individual entries and moneylover_list_categories to see which categories exist. Behavior: type selects the side to total; since expense is the default, an earnings question must pass "income". There is no category filter, so read a single category's total from its entry in the breakdown. wallet narrows the total to one wallet; omit it to total every wallet, also archived ones and those excluded from Money Lover's total. Currencies are never added together, so the response has one entry per currency with its own total and category breakdown, largest first, and an empty list means no activity in the range rather than zero. Transactions flagged 'exclude from report' are left out (moneylover_list_transactions still shows them). The range is inclusive and limited to 366 days per call.

Input Schema

NameRequiredDescriptionDefault
typeNoWhich side to total: "expense" (spending) or "income" (earnings). Defaults to "expense".
walletNoWallet name, exactly as returned by moneylover_list_wallets. Omit to total across all wallets, including archived ones and those excluded from Money Lover's total.
end_dateYesLast day of the range, inclusive, as YYYY-MM-DD. Must not be before start_date; the whole range may span at most 366 days.
start_dateYesFirst day of the range, inclusive, as YYYY-MM-DD in the user's timezone, e.g. "2026-04-01".

Output Schema

NameRequiredDescriptionDefault
noteYesReminder that transactions flagged "exclude from report" are not counted.
typeYes
end_dateYesLast day of the range, inclusive.
currenciesYesOne entry per currency; amounts in different currencies are never added together.
start_dateYesFirst day of the range, inclusive.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.5.0

TDQS

A4.8/5.0
Behavior5/5

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

The description provides immense behavioral context beyond the minimal annotation. It clarifies critical behaviors such as: expense being the default, currencies never being added together, and defining that an empty list means 'no activity' rather than zero balance. It also handles exclusion logic (flagged transactions).

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 description is quite long, but its length is justified by the high behavioral complexity of the tool. It is structured logically, moving from definition to usage, input constraints, and finally complex output behaviors.

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?

Given the tool's complexity (handling date ranges, multiple currencies, exclusion flags, and different wallet scopes), the description is exhaustive. It covers all necessary input assumptions and defines the output structure's nuances.

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?

Although the schema provides 100% coverage, the description adds critical semantics, particularly regarding the 'wallet' parameter. It explains that omitting 'wallet' totals across *all* wallets, including archived ones and those excluded from the main report.

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 clearly states the function is to provide 'Total income or expenses per category over a date range.' It distinguishes its purpose as an aggregator for totals and comparisons, clearly differentiating it from the transactional listing tools (e.g., moneylover_list_transactions).

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?

Usage is explicitly defined: use this tool for 'every total or comparison.' It provides perfect guidance on alternatives, directing users to moneylover_list_transactions for 'individual entries' and moneylover_list_categories for available group names.

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