Skip to main content
Glama
alexfu

mcp-ynab

by alexfu

getTransactionsByCategory

Retrieve all non-pending transactions for a specific category, with optional date filters and type (uncategorized/unapproved) to track spending or reconcile budgets.

Instructions

Returns all transactions for a specified category, excluding any pending transactions

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNoIf specified, only transactions of the specified type will be included. "uncategorized" and "unapproved" are currently supported.
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
since_dateNoIf specified, only transactions on or after this date will be included. The date should be ISO formatted (e.g. 2016-12-30). Defaults to one year ago when not specified.
until_dateNoIf specified, only transactions on or before this date will be included. The date should be ISO formatted (e.g. 2016-12-30).
category_idYesThe id of the category
last_knowledge_of_serverNoThe starting server knowledge. If provided, only entities that have changed since `last_knowledge_of_server` will be included.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full disclosure burden. It contributes one genuinely useful behavioral fact beyond the schema — the exclusion of pending transactions — which materially changes what results an agent should expect. However, it leaves other behaviors undisclosed (e.g., whether subcategory transactions are included, ordering, pagination), so disclosure is thin for a tool with zero annotation coverage.

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?

A single tight sentence with zero filler — the core purpose is front-loaded before the pending-transaction qualifier. It is appropriately economical, though it forgoes a small opportunity to include a sibling-routing clause without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 6 params, yet the description is complete enough for the core query because the schema covers all parameters and an output schema exists. The notable gap is decision-making context: among five similar transaction-listing siblings and with no annotations, the description does not help an agent choose this tool over alternatives or anticipate which transactions are excluded beyond pending ones.

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 100%, so the baseline of 3 applies; the schema already documents plan_id, category_id, and all optional filters with their defaults. The description adds no parameter-level meaning beyond noting the category scope, which is appropriate given the schema's richness.

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 states a specific verb ('returns'), resource ('transactions for a specified category'), and adds a distinguishing behavioral qualifier ('excluding any pending transactions'). This differentiates it clearly from siblings like getTransactions, getTransactionsByAccount, getTransactionsByPayee, and getTransactionsByMonth — an agent can route correctly 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 Guidelines3/5

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

Usage context is implied rather than explicit: the name and description make it clear this is the category-filtered variant among several transaction-listing siblings, but the description never says when to choose it over getTransactions or the other by-X variants, nor does it state exclusions. There is no misleading guidance, but the agent is left to infer the selection rule from the name.

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