Skip to main content
Glama

Financial ratios and health score

lookup_financial_ratios
Read-onlyIdempotent

Financial analysis of a Romanian company: multi-year revenue trend (YoY, 3/5/10-year CAGR), margins, headcount, solvency and liquidity ratios, a 0–100 health score with its rule-by-rule breakdown, red flags, and peer percentiles within the same CAEN activity and county. Verdict: 'growing', 'stable' or 'distressed'. Use lookup_financials for the raw figures.

Input Schema

NameRequiredDescriptionDefault
cuiYesRomanian tax identification number (CUI), e.g. '2816464'; 'RO' and leading zeros are accepted.

Output Schema

NameRequiredDescriptionDefault
cuiNoThe company's CUI.
asOfNoWhat to cite: registry (ONRC snapshot date), financialYear (fiscal year of the figures), anaf (day of the ANAF data), snapshot, published, source.
errorNoSet only when there is no answer (empty_query, invalid_cui, data_unavailable, plan_required ...); such a call is not counted.
flagsNoRed flags.
foundNoWhether any filing is on record.
peersNoPercentiles within the same CAEN activity and county.
totalNoNumber of fiscal years used.
yearsNoPer fiscal year figures and margins.
ratiosNoMargins, equity ratio, debt to equity, liquidity, returns.
sourceNoData source: onrc (registry) or mfp (Ministry of Finance filings).
historyNoYears on record, loss years, revenue peak.
messageNoA sentence for the caller.
signalsNoThe distress signals found.
verdictNogrowing, stable or distressed.
distressNotrue when the distress signals fire.
headcountNoLatest headcount and its change.
attributionNoThe credit line to keep when redistributing the data (CC BY 4.0).
healthScoreNo0-100 score, band and its rule-by-rule components.
revenueTrendNoLatest revenue, YoY growth, 3/5/10-year CAGR, trend label.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / cui / description
      Previous value: -"The firm's CUI."New value: +"The company's CUI."
  2. Changed1 schema field changed
    • changedOutput schema / description
      Previous value: -"Derived financial intelligence and a verdict."New value: +"Financial ratios, a health score, peer percentiles and a verdict."
  3. Changed2 schema fields changed
    • addedInput schema / properties / cui / description
      Added value: +"Romanian tax identification number (CUI), e.g. '2816464'; 'RO' and leading zeros are accepted."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "description": "Derived financial intelligence and a verdict.",
      +  "properties": {
      +    "asOf": {
      +      "description": "What to cite: registry (ONRC snapshot date), financialYear (fiscal year of the figures), anaf (day of the ANAF data), snapshot, published, source.",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "attribution": {
      +      "description": "The credit line to keep when redistributing the data (CC BY 4.0).",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "cui": {
      +      "description": "The firm's CUI.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "distress": {
      +      "description": "true when the distress signals fire.",
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "error": {
      +      "description": "Set only when there is no answer (empty_query, invalid_cui, data_unavailable, plan_required ...); such a call is not counted.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "flags": {
      +      "description": "Red flags.",
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "found": {
      +      "description": "Whether any filing is on record.",
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "headcount": {
      +      "description": "Latest headcount and its change.",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "healthScore": {
      +      "description": "0-100 score, band and its rule-by-rule components.",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "history": {
      +      "description": "Years on record, loss years, revenue peak.",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "message": {
      +      "description": "A sentence for the caller.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "peers": {
      +      "description": "Percentiles within the same CAEN activity and county.",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "ratios": {
      +      "description": "Margins, equity ratio, debt to equity, liquidity, returns.",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "revenueTrend": {
      +      "description": "Latest revenue, YoY growth, 3/5/10-year CAGR, trend label.",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "signals": {
      +      "description": "The distress signals found.",
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "source": {
      +      "description": "Data source: onrc (registry) or mfp (Ministry of Finance filings).",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "total": {
      +      "description": "Number of fiscal years used.",
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "verdict": {
      +      "description": "growing, stable or distressed.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "years": {
      +      "description": "Per fiscal year figures and margins.",
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  4. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered; the description adds substantial context beyond that — the verdict vocabulary, peer benchmarking scope (same CAEN activity and county), and the rule-by-rule health score breakdown. It stops short of describing behavior when data is sparse or incomplete.

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?

Two sentences, both earning their place: a dense but front-loaded enumeration of deliverables followed by the routing instruction. No filler or restatement of the title.

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?

Output schema exists, yet the description still gives the agent enough to anticipate shapes (score breakdown, verdict enum, percentiles). Combined with annotations and a fully documented parameter, nothing needed to call it correctly is missing.

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?

Single parameter at 100% schema coverage, with the schema itself documenting the CUI format ('RO' and leading zeros accepted). The description only implies the Romanian-company constraint, adding no syntax or format detail beyond the schema, so the baseline 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?

States a specific resource with enumerated outputs (revenue trend, CAGR, margins, solvency/liquidity ratios, 0–100 health score, red flags, peer percentiles) and ends by contrasting with lookup_financials. An agent can tell instantly that this returns derived analytics rather than raw figures.

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?

Explicitly routes the alternative: 'Use lookup_financials for the raw figures,' which is the main overlap among siblings. It doesn't address edge cases (non-Romanian entities, CUI with no financial history) or mention other siblings like lookup_business, but the critical disambiguation is present.

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.

Resources