Skip to main content
Glama
stornoro

Storno CLI

by stornoro

balance_analysis

Analyzes annual balance data, returning revenue, expenses, profit, monthly trends, top expenses, and grouped financial ratios with status flags. Requires a year and company.

Instructions

Get balance analysis (Analiza Balante) for a year. Returns the standard indicator bag (revenue, expenses, profit, turnover, salaries, etc.), monthly evolution, top expenses, year-over-year comparison, plus 8 grouped financial-ratio sections: balanceSheet (raw figures), liquidity (current/quick/cash ratio + working capital + NFR + net cash), solvency (debt-to-equity, financial autonomy, debt ratio, general solvency, interest coverage), profitabilityRatios (gross/operating/EBITDA/net margins, ROA/ROE/ROCE, EBIT, EBITDA), efficiency (asset/fixed-asset/inventory turnover, DSO/DPO/CCC), fiscal (VAT payable, salary debts, state-budget debts, micro-enterprise EUR threshold, VAT RON threshold), cashflow (cash runway in months, burn rate, break-even, contribution rate, operating leverage), aging (receivables aging buckets 0-30/31-60/61-90/90+ with IFRS 9 simplified provision), concentration (top 5/10 client revenue share, top clients list). Each ratio carries status: normal|warning|critical|na. Trial-balance sections show hasData=false until balances are uploaded; aging and concentration come from invoice data. Requires X-Company header.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
yearYesAnalysis year (e.g. 2025)
companyIdNoCompany UUID (overrides STORNO_COMPANY_ID env var)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.0.28

TDQS

A4.1/5.0
Behavior4/5

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

The description discloses important behavioral details: trial-balance sections show hasData=false until balances are uploaded, aging and concentration come from invoice data, and an X-Company header is required. With no annotations provided, the description carries the full burden and covers key edge cases.

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 long but structured: it front-loads the purpose and then systematically lists the indicator sections and data dependencies. There is no redundant filler, though the extensive enumeration could be slightly trimmed without losing meaning.

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 the absence of an output schema, the description gives a comprehensive overview of the returned sections, statuses, and data dependencies. It lacks exact field names or response shape, but is sufficient for an agent to understand what to expect and when to call this tool.

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?

The schema already provides 100% description coverage for both parameters (year and companyId), including examples and an override note. The description adds no further parameter-specific detail, so the baseline score of 3 applies.

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 tool's purpose ('Get balance analysis') and enumerates the returned indicator bag and 8 financial-ratio sections, making it distinct from sibling tools like balance_list or balance_rows which deal with raw balance data.

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 context that this tool is for high-level balance analysis with ratios and statuses, but does not explicitly compare it to alternative sibling tools such as balance_list or balance_rows, so it stops short of providing explicit when-to-use versus alternatives guidance.

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

Deploy Server

Other Tools