Skip to main content
Glama
ninetails-io

gnucash-mcp

reconcile_account

Reconcile account splits against a statement balance, verifying the result matches before updating, with targeted or bulk modes.

Instructions

Reconcile splits against a statement balance.

SIGN CONVENTION: statement_balance is the ACCOUNT's balance in GnuCash's signs — for liability accounts (credit cards) a $5,000 owed balance is "-5000", not "5000".

Two modes:

  • Targeted (split_guids=[...]): reconcile exactly the listed splits (SPLIT guids from get_unreconciled_splits, not transaction guids). Use when statement and book disagree and you need to pick a subset.

  • Bulk (reconcile_all=true): reconcile every unreconciled split dated on or before through_date (default: statement_date — a statement reconciliation is bounded by the statement). One call, no GUID round-trip.

Both modes verify the resulting reconciled balance ties to statement_balance before mutating; mismatch rejects with the discrepancy amount.

TYPICAL STATEMENT FLOW (credit card or bank): batch-enter the statement's transactions (create_transactions), then reconcile_all with the statement's closing date and balance. Multi-month catch-up: enter all months in one batch, then one reconcile_all per statement, oldest first — the through_date default keeps each sweep inside its own statement.

Args: account: Account ref: full path (e.g. 'Assets:Bank:Checking'), %short GUID, or full 32-char GUID statement_date: Statement ending date (YYYY-MM-DD) statement_balance: Expected balance from statement (as string, e.g., '1234.56') split_guids: List of split GUIDs to reconcile (targeted mode). Omit for bulk mode. reconcile_all: When true, reconcile all unreconciled splits up to through_date. through_date: Date filter for bulk mode (YYYY-MM-DD); defaults to statement_date.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
accountYes
split_guidsNoList of SPLIT GUIDs to reconcile (8+ char prefixes accepted). These are NOT transaction GUIDs — get them from get_unreconciled_splits. Required for targeted mode; omit when using reconcile_all=true.
except_guidsNoOptional list of split GUID prefixes to exclude from the bulk reconcile. Useful for "everything on the statement except this pending ACH" — 2 tokens vs the 100+ a full split_guids listing would cost. Only valid with reconcile_all=true; prefixes that don't resolve are silently ignored.
through_dateNoUpper-date bound for reconcile_all (YYYY-MM-DD); only splits with post_date <= through_date are swept. DEFAULTS TO statement_date — pass a later date explicitly to widen the sweep past the statement.
reconcile_allNoWhen true, reconcile every unreconciled split on the account dated on or before through_date (default: statement_date). Avoids the ~300-token GUID round-trip for statement workflows — enter several months of transactions, then reconcile each statement with just its date and balance. Mutually exclusive with split_guids.
statement_dateYes
statement_balanceYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

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

With no annotations provided, the description carries full behavioral burden and largely carries it: it discloses the sign convention for liability accounts, highlights that both modes 'verify the resulting reconciled balance ties to statement_balance before mutating' and that mismatch 'rejects with the discrepancy amount', and explains that except_guids prefixes that don't resolve are 'silently ignored'. Slight gap: doesn't describe return value/confirmation details beyond the mismatch behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear headers (SIGN CONVENTION, two modes, TYPICAL STATEMENT FLOW, Args) and formatted with bold/markdown. Every section earns its place — the token-cost argument in reconcile_all and except_guids justifications is practical and informative. Front-loaded with purpose before diving into details.

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?

For a complex 7-parameter mutation tool with no annotations, the description is thorough: it covers the two modes, sign convention, verification-before-mutate behavior, default behavior for through_date, batch workflows, and even edge cases like silently-ignored unresolvable prefixes. Has an output schema present, so return-value detail isn't required. This is complete enough for an agent to invoke correctly in both modes.

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 only 57%, so the description must compensate and it does substantially. It adds the sign convention for statement_balance, explains the through_date defaulting behavior, clarifies split_guids are SPLIT guids not transaction guids, and details the reconcile_all workflow token-cost rationale plus mutual exclusivity with split_guids. The description meaningfully enriches every parameter beyond what the schema states.

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 verb+resource ('Reconcile splits against a statement balance') and distinguishes targeted vs bulk modes. It differentiates from siblings by noting split_guids come from get_unreconciled_splits, and the STATEMENT FLOW section contrasts with related tools like set_reconcile_state.

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?

Provides explicit when-to-use guidance: 'Use when statement and book disagree and you need to pick a subset' for targeted mode, and a full TYPICAL STATEMENT FLOW section explaining the standard credit card/bank workflow and multi-month catch-up pattern with oldest-first ordering. Mentions the through_date default keeps each sweep inside its own statement.

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/ninetails-io/gnucash-mcp'

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