Skip to main content
Glama
ninetails-io

gnucash-mcp

get_balance

Get an account's balance as of any date, excluding future transactions by default. Specify a future date to include scheduled payments and interest.

Instructions

Get the balance of an account as of a specific date.

Defaults to today's date — future-dated transactions (scheduled payments, accrued interest) are excluded. To project a balance forward including future entries, pass an explicit as_of_date past today.

Args: account_name: Account ref: full path (e.g. 'Assets:Bank:Checking'), %short GUID, or full 32-char GUID as_of_date: Date in ISO format (YYYY-MM-DD). Defaults to today.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
as_of_dateNo
account_nameYes

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 the full burden. It discloses meaningful behavioral traits: the account ref formats (%short GUID, full 32-char GUID, full path), that future-dated transactions are excluded by default, and that passing an as_of_date past today enables projection including future entries. This is strong behavioral disclosure for a read-only balance tool.

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 concise and front-loaded — the main purpose and the key temporal nuance appear in the first two sentences. The Args block follows Google-style docstring convention. Slightly redundant wording in the projection sentence ('pass an explicit as_of_date past today' is a bit awkward) but no wasted sentences overall.

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 2-param read-only tool with an output schema present, the description covers the subtle date semantics thoroughly and documents both parameters in detail. The output schema handles return value documentation. What's missing is a note about edge cases (e.g., what happens with closed accounts or accounts with no transactions), but given there's an output schema and the tool is fairly simple, this is complete enough.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate for both parameters. It does this well: account_name gets the three accepted formats explained, and as_of_date gets both its default behavior and ISO format specification. This is exactly the kind of parameter enrichment needed when the schema provides only field names and types.

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+resource ('Get the balance of an account') with a clear temporal qualifier ('as of a specific date'). It clearly distinguishes from sibling tools like get_account, list_accounts, get_latest_price, and create_transaction. The purpose is specific and unambiguous.

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 clearly explains the date semantics (defaults to today, excludes future-dated transactions) and explicitly tells users when to pass an explicit as_of_date to project forward. While it doesn't name alternative tools for projection ('create_transaction' or budget tools), the temporal boundary guidance is clear. It lacks explicit 'when NOT to use' guidance distinguishing from get_account, but the core use case is well-delineated.

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