Skip to main content
Glama

ynab_reconcile_account

Idempotent

Match bank CSV transactions to YNAB, detect discrepancies, and optionally create, update, or clear transactions to reconcile your account.

Instructions

Guided account reconciliation: match bank CSV transactions to YNAB, detect discrepancies, and optionally execute bulk create/update/unclear operations.

Args:

  • budget_id (string, optional): Budget UUID. Omit to use the default budget.

  • account_id (string, required): Account UUID to reconcile.

  • csv_file_path or csv_data (string, required): Bank export file path or inline CSV text.

  • statement_balance (number, required): Ending balance from the bank statement (dollars). For credit cards and other liability accounts, pass a negative value (e.g. -6143.27 means you owe $6,143.27).

  • statement_end_date (string, optional): Statement closing date (YYYY-MM-DD). Filters CSV and triggers balance verification. Auto-detected from CSV if omitted.

  • match_strictness (string, optional): Matching sensitivity — "loose" (more matches), "normal" (default), or "strict" (fewer false positives).

  • sign_convention (string, optional): How to treat CSV amount signs — "auto" (default, detects from data), "invert" (negate all amounts), "as_is" (use amounts unchanged). Useful when auto-detection fails for liability accounts.

  • dry_run (boolean, optional): Preview actions without executing. Default: true.

  • auto_create_transactions (boolean, optional): Auto-create missing transactions. Default: false.

  • auto_update_cleared_status (boolean, optional): Auto-mark matched transactions as cleared. Default: false.

  • auto_unclear_missing (boolean, optional): Auto-mark statement-missing cleared transactions as uncleared when reconciliation remains unbalanced. Default: false.

  • max_suggestions_in_output (number, optional): Limit unmatched items and suggestions shown in the human report. Default: 20.

Returns: human-readable reconciliation narrative + structured JSON (unmatched_bank, unmatched_ynab, suggestions, execution_summary when actions are performed).

Examples:

  • Preview reconciliation: set dry_run=true (default)

  • Execute: set dry_run=false and explicitly enable the write flags you want, e.g. auto_update_cleared_status=true

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dry_runNo
csv_dataNo
budget_idNo
account_idYes
csv_formatNo
csv_file_pathNo
sign_conventionNoauto
match_strictnessNonormal
auto_adjust_datesNo
statement_balanceYes
statement_end_dateNo
date_tolerance_daysNo
auto_unclear_missingNo
auto_create_transactionsNo
max_suggestions_in_outputNo
auto_update_cleared_statusNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
humanYes
structuredYes
Behavior4/5

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

Annotations indicate readOnlyHint=false, destructiveHint=false, idempotentHint=true. The description adds context: dry_run defaults to true, actions only execute when flags are set, and it details side effects (auto-create, auto-update, auto-unclear). No contradictions, but could mention that it modifies data when executed.

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 structured with bullet points and examples, and it front-loads the main purpose. While comprehensive, it is slightly verbose for a tool description, but every sentence adds value.

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 16 parameters, a complex nested object (csv_format), and an output schema, the description is complete. It explains return format (narrative + JSON) and provides examples for preview and execution.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description compensates fully. It explains all 16 parameters, including required ones (account_id, statement_balance), optional ones (budget_id, csv_file_path, etc.), and nuanced details like sign_convention for liability accounts and match_strictness. Each parameter's meaning is clearly articulated.

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 begins with 'Guided account reconciliation: match bank CSV transactions to YNAB, detect discrepancies, and optionally execute bulk create/update/unclear operations.' This clearly states the verb (reconcile) and resource (account), distinguishing it from siblings like compare_transactions or 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 Guidelines4/5

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

The description provides clear usage guidance: 'Preview reconciliation: set dry_run=true (default)' and 'Execute: set dry_run=false and explicitly enable the write flags you want.' It also explains how to handle credit cards (negative statement_balance). No explicit when-not-to-use or alternatives, but the context is clear.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dizzlkheinz/ynab-mcpb'

If you have feedback or need assistance with the MCP directory API, please join our Discord server