Skip to main content
Glama
jkbngb

agentic-firmenbuch

Company financial history

get_company_history
Read-onlyIdempotent

Retrieve multi-year time series for one company or up to 50 companies at once, returning yearly values per metric to analyze financial trends.

Instructions

Per-metric multi-year time series for one company — or a whole cohort. Read-only.

    Parameters:
    - fnr: Firmenbuchnummer, e.g. "123456a" (the `fnr` from a search card) — one company.
    - fnrs: list of up to 50 Firmenbuchnummern for a BATCH in one call (a Branchenradar
      over a 30-200 cohort pages through this instead of one call per company). Unknown
      numbers land in `result.not_found`; billing stays per company (1 credit each),
      only companies actually returned are charged. Pass fnr OR fnrs.
    - metrics (optional): list of metric names to return, e.g.
      ["bilanzsumme", "umsatzerloese", "eigenkapital"]; omit to get every available series.
      The card alias "revenue" is accepted for "umsatzerloese".

    Returns, per requested metric, the yearly values (year -> value) plus latest/latest_year
    (batch: the same shape per company under `result.companies`). Use when you need the
    trend of specific figures; for a full one-shot profile use get_company_details, for
    the complete record (all positions) use get_full_record.
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fnrNo
fnrsNo
metricsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A5/5.0
Behavior5/5

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

Annotations already cover the read-only/idempotent profile, but the description adds genuinely non-obvious behavior: unknown fnrs land in result.not_found, billing is 1 credit per company and only returned companies are charged, and batches cap at 50. This is exactly the operational context annotations cannot express.

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?

Front-loaded one-line summary, then a clean per-parameter block, then return shape. Dense but every sentence carries load — no filler or restatement of the tool name.

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?

An output schema exists, yet the description still sketches the return shape (year -> value, latest/latest_year, batch nesting under result.companies), which resolves the ambiguity between the two invocation modes. 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.

Parameters5/5

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

Schema coverage is 0%, so the description must carry the load and does: fnr format example and provenance ('the fnr from a search card'), fnrs batch limit and mutual exclusion ('Pass fnr OR fnrs'), and metrics semantics including the 'revenue' -> 'umsatzerloese' alias and the omit-to-get-all default.

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 verb+resource with scope: 'Per-metric multi-year time series for one company — or a whole cohort.' It distinguishes the single-vs-batch modes and explicitly names the sibling tools it is not (get_company_details, get_full_record).

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?

Gives explicit routing: 'Use when you need the trend of specific figures; for a full one-shot profile use get_company_details, for the complete record (all positions) use get_full_record.' It also names the concrete cohort scenario (Branchenradar over 30-200 company pages) that selects the batch path.

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