Skip to main content
Glama
georgebashi

lunchmoney-mcp

by georgebashi

get_transactions

Read-only

Retrieve LunchMoney transactions filtered by date, account, category, tag, or status, with pagination for large result sets.

Instructions

Retrieve transactions, optionally filtered by date range, account, category, tag, recurring item, status, and more. Returns at most limit transactions (default 1000, max 2000); has_more is set on the response when more match the filters. Pending and split-parent / group-child transactions are excluded by default.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax transactions to return (1-2000, default 1000).
offsetNoOffset for pagination. Use with `has_more` from a previous response.
statusNo
tag_idNo
end_dateNoEnd of the date range. Required if start_date is set.
is_pendingNoFilter by pending status. Takes precedence over include_pending when set.
start_dateNoBeginning of the date range. Required if end_date is set.
category_idNoFilter by category ID. 0 returns only un-categorized transactions. Matches both leaf categories and category groups.
recurring_idNo
created_sinceNoOnly return transactions created after this timestamp.
include_filesNoInclude the `files` array (attachment metadata) on each transaction.
updated_sinceNoOnly return transactions updated after this timestamp.
include_pendingNoInclude imported pending transactions in results.
is_group_parentNoIf true, returns only transaction groups (group parents).
include_childrenNoPopulate the `children` array on group/split parent transactions.
include_metadataNoInclude plaid_metadata and custom_metadata fields on each transaction.
plaid_account_idNoFilter by Plaid account ID, or 0 to omit all Plaid-account transactions.
manual_account_idNoFilter by manual account ID, or 0 to omit all manual-account transactions.
include_split_parentsNoInclude the original parent transactions of split transactions.
include_group_childrenNoInclude the original transactions that were combined into transaction groups.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv3.0.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=true. The description adds valuable behavioral detail beyond that: pagination signaling with has_more, the limit cap, and the non-obvious exclusion of pending and split-parent/group-child transactions by default. No contradiction with annotations.

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, with the action front-loaded and behavioral details kept tight. The phrase 'and more' is slightly vague but does not add meaningful bloat.

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 20-parameter read-only tool with 85% schema coverage and no output schema, the description covers the key invocation details: filter scope, pagination, and default exclusions. It could say more about the overall response shape, but the provided information is adequate for correct use.

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 85%, so the schema already documents most parameters well. The description enumerates filter categories but does not meaningfully explain any parameter beyond what the schema states; its main added value is the aggregate filter/behavior context.

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 description uses a specific verb and resource ('Retrieve transactions') and names the main filter dimensions, clearly distinguishing it from single-transaction retrieval. It does not explicitly call out a sibling tool, but the plural collection semantics make the distinction clear.

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?

The description gives clear context on how to use the tool: optional filters, limit default/max, pagination via has_more, and default exclusions. It does not explicitly state when not to use it or name alternatives like get_single_transaction, but the guidance is sufficient for basic selection.

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