Skip to main content
Glama
YNAB MCP Server

YNAB MCP Server

by oliverames

Suggest Transaction Categories

suggest_transaction_categories
Read-onlyIdempotent

Recommends YNAB categories for uncategorized expenses by analyzing payee IDs, full history, recency, and matching schedules, then returns proposed edits for user review without applying them.

Instructions

Read-only, explained category recommendations for uncategorized expenses using exact payee IDs, reviewed full history, recency and matching schedules. Abstains for uncertainty and splits. Returns proposed edits; never applies them. User approval and an exact write preview are required for any later edit.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum target transactions, default 50; history is never truncated to this limit.
asOfDateNoRecommendation date YYYY-MM-DD; defaults to current UTC date.
budgetIdNo
sinceDateNoTarget selection start date; historical evidence still covers all history.
transactionIdsNoExact transaction IDs to inspect; default uncategorized transactions.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv6.1.0

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real context beyond them: abstention on uncertainty and splits, output is proposed edits only, and a downstream write requires approval plus a preview. That is exactly the behavioral framing an agent needs before acting on results.

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 tight sentences, front-loaded with the read-only recommendation scope and followed by abstention and write-safety constraints. Dense but every sentence carries a distinct, actionable constraint.

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 5-param read tool with annotations and an output schema, this covers the essential workflow: what it returns, when it abstains, and that edits need approval/preview. Only the undocumented budgetId and the unmatched 'payee IDs' phrasing leave minor gaps.

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 coverage is 80%, so most parameters are already documented, and the description adds little param-level detail (history is 'reviewed full history,' matching the schema's note that history isn't truncated). The mention of 'exact payee IDs' has no corresponding parameter, which adds slight ambiguity; budgetId remains undocumented anywhere. Baseline 3 fits.

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 opens with a specific verb+resource: 'Read-only, explained category recommendations for uncategorized expenses.' It scopes the tool precisely (uncategorized expenses, explanation included) and implicitly separates it from siblings like search_categories or get_transactions, which retrieve rather than recommend.

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?

Usage context is clear: it is for uncategorized expenses, it abstains rather than guessing, and it never writes — a later edit requires user approval and an exact write preview (pointing at the preview_write_tool sibling). It doesn't explicitly name alternatives to avoid, so it stops short of a 5.

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