Skip to main content
Glama

openfinance_get_account_balance

Read-onlyIdempotent

Returns the latest available balance per account id (GET /accounts/:id/balance). This is the freshest balance the provider can serve, but it is a SNAPSHOT anchored to the connection's last upstream sync: the updateDateTime/updatedAt in each row is that sync instant, NOT a to-the-second live read. If a movement that just happened is not reflected yet, or the balance disagrees with the sum of openfinance_list_transactions, run openfinance_force_sync to pull fresh data and then re-read. Pass account_ids as an array (1–50). CREDIT accounts may return Pluggy BALANCE_FETCH_ERROR (provider could not fetch it) or BALANCE_CONSENT_ERROR (the institution refused it because the consent lacks the balance permission — reconnecting the bank restores it) — those rows include a structured warning instead of throwing. When the financial institution is temporarily unavailable upstream (5xx) or the connector is not Open Finance, the row DEGRADES to the last-synced balance with realtime: false, updatedAt and a warning instead of an error. Response shape: { results: [...], errors: [{ id, status, message }] }.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
account_idsYes

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnly, idempotent, non-destructive), the description richly explains behavioral nuances: the balance is a snapshot tied to the last upstream sync, updateDateTime is not a live instant, credit accounts can return structured warnings instead of throwing, and upstream 5xx or non-Open Finance connectors cause rows to degrade. This significantly exceeds what the annotations alone convey.

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 front-loaded with the core action and then layers in caveats in a logical order. It is longer than the minimal case but every sentence adds necessary operational detail; the only structural flaw is the final sentence ending with an incomplete 'DEGRADES to ...'.

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?

Given there is no output schema, the description does a strong job covering freshness semantics, error modes, and recovery via force_sync. However, it never explains how to obtain the account_ids and leaves the degradation behavior incomplete, which slightly weakens an otherwise thorough definition.

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?

The input schema only defines account_ids as an array of strings, so the description's instruction to pass it as an array of 1–50 items adds valuable bounds. It could further explain where account_ids come from or what format they take, but the single parameter is self-explanatory enough for competent use.

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 and resource: 'Returns the latest available balance per account id' and even gives the endpoint GET /accounts/:id/balance. It clearly differentiates this tool from siblings by framing it as a snapshot/read operation, not a list or sync tool.

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?

The description gives explicit usage context: use this for the freshest served balance, but if data may be stale or disagrees with openfinance_list_transactions, run openfinance_force_sync and re-read. It also explains when errors like BALANCE_CONSENT_ERROR occur and how to resolve them, giving practical routing guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation4/5

Most tools have clearly distinct purposes (e.g., force_sync vs get_item_status, list_accounts vs get_accounts_detail). Minor overlap exists between list_transactions and list_transactions_by_item, and between get_account_balance and list_accounts (which also contains balance), but descriptions clarify when each should be used.

Naming Consistency4/5

All openfinance_* tools follow a consistent snake_case verb_noun pattern (list, get, force_sync, disconnect, update). The generic tools (authenticate, connect, marketplace, report_bug, show_version, toolkit_info) are also lowercase with underscores where needed, though they lack the openfinance prefix. No mixing of camelCase or chaotic patterns, so mostly consistent with minor deviation.

Tool Count3/5

25 tools is on the heavy side for a single server, but justified given the breadth of Open Finance operations (accounts, transactions, bills, loans, investments, connections, categories, provider status). The count is borderline heavy but not excessive for the domain, though some consolidation could be possible (e.g., merging get_account_balance into list_accounts).

Completeness5/5

The tool surface covers the full lifecycle for financial data: listing, getting details, forcing syncs, disconnecting, updating categories, checking provider status, and handling investments/loans/bills. No obvious dead ends; even connection management includes search, connect URLs, and re-authentication flows. The set appears comprehensive for its intended purpose.