Skip to main content
Glama
stornoro

Storno CLI

by stornoro

bank_accounts_update

Update an existing bank account's type, IBAN, bank name, currency, default status, or opening balance. Opening balance locks after initial set; use cash movements for corrections.

Instructions

Update an existing bank account. Can update type, IBAN, bank name, currency, default status, or initial opening balance. Once openingBalance has been persisted with a value > 0 it locks — further changes are rejected and corrections must be made via cash movements. At least one field must be provided.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ibanNoNew IBAN (must be valid and unique within company). Pass null to clear (only valid for cash accounts).
typeNoAccount type. Switching after creation is allowed but should be avoided once movements exist.
uuidYesBank account UUID to update
bankNameNoBank name (pass null to clear)
currencyNoCurrency code ISO 4217
companyIdNoCompany UUID override (uses active company if not set)
isDefaultNoSet as default account for this currency
openingBalanceNoInitial cash-on-hand. Locks once set; correct via cash movements thereafter.
openingBalanceDateNoDate the opening balance was taken (YYYY-MM-DD). Required when openingBalance is being set for the first time.
Behavior4/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does excellent work exposing the openingBalance locking behavior (irreversible once set), the requirement to correct via cash movements thereafter, and the 'at least one field required' constraint. It also surfaces that IBAN must be valid and unique within company. The main gap is not disclosing the return/response format or any authorization requirements, but for the behavioral constraints that matter (mutability, locking), it is quite transparent.

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?

The description is compact and front-loaded: the first sentence states the purpose and scope, the second covers the crucial behavioral constraint, and the third states the minimum requirement. Every sentence earns its place with no fluff or repetition. It is appropriately sized for a tool with 9 parameters given the schema carries much of the parameter detail.

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 mutation tool with 9 parameters, 100% schema coverage, and no output schema, the description is quite complete. It explains the updateable fields, the critical lock behavior, the correction pathway, and the minimum-input requirement. The only gap is the lack of detail on what happens on success/failure (response format), but since there is no output schema and the tool is a straightforward update, the description covers the operation's semantics well enough for an agent to invoke it reasonably.

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 description coverage is 100%, so the baseline is 3. The description adds some value beyond the schema by explaining the locking semantics of openingBalance in prose, and noting the 'at least one field' requirement that isn't enforced by the schema. However, most parameter semantics (currency format, companyId override behavior) are already well-covered in the schema descriptions, so the description adds only modest incremental value here.

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 (update), resource (existing bank account), and enumerates the specific updateable fields. It goes beyond a generic purpose by listing the exact attributes (type, IBAN, bank name, currency, default status, initial opening balance) and distinguishes the tool as an update operation for bank accounts, clearly differentiated from siblings like bank_accounts_create and bank_accounts_delete.

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 provides strong usage guidance: it explicitly states the lock behavior for openingBalance (once persisted > 0 it locks, corrections go via cash movements), which directly informs when NOT to use this tool for balance correction. It also states the 'at least one field must be provided' requirement, establishing a prerequisite. Though it doesn't name specific alternative tools, the openingBalance lock rule functionally directs users to cash register movement tools as the alternative.

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/stornoro/storno-cli'

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