Skip to main content
Glama

Company fundamentals by filing date

Latest fundamentals for a company

get_latest_fundamentals
Read-onlyIdempotent

The most recent reported value of each metric for one ticker, each with its period (fy, fp), period end, filing date and form. Use it for a company's current figures, or with as_of for what had been filed by a given day. search_companies maps a company name to its ticker. Inputs: ticker (e.g. AAPL, 2330.TW, 005930.KS, 0403091220.BE, 775670417.FR, CC21860.NZC, and 10238429.EE, 5560356163.SE, 47239255.SK, 40003032949.LV where get_coverage lists them, and 96002925948.AU for Australia's tax figures); metric (comma-separated; a name we do not hold is listed in metrics_not_found); as_of (only filings dated on or before that day); compact (true leaves out market_notes and schema). Without a licence key, a company outside the full-history sample answers from its most recent reported fiscal year only (history_depth says so) and as_of is not available. Each metric is its own latest value, so two metrics can come from different periods; a quarterly fp is ONE quarter's figure, not a year; check stale (true: the company has filed since without this metric, so the figure is not current). Figures are as filed, each keyed to its filing date (filed) as its market records it (how each market dates a filing: https://www.tradingagentapp.com/fundamentals/methodology). .TW quarterly values are already SINGLE-QUARTER amounts, so differencing adjacent quarters gives wrong figures. For a quarterly row (US, Taiwan) fy and fp are the CALENDAR quarter containing the period end, not the company's fiscal quarter. Each reply's market_notes and schema state the per-market caveats (solo or group accounts, lawful gaps, charities, flags in form). Detailed line items follow local accounting rules and keep the filed sign (capex is negative in Taiwan and Japan); get_data_dictionary defines them per market. The source licences require each reply's attribution and licence notices to accompany the figures.

Input Schema

NameRequiredDescriptionDefault
as_ofNoFiling-date cut-off, YYYY-MM-DD (e.g. 2022-01-01). Defaults to today.
metricNoComma-separated metrics, e.g. revenue,net_income. Omit for all.
tickerYesTicker symbol, e.g. AAPL or 2330.TW
compactNotrue leaves out the long per-market notes (market_notes, schema) to save tokens; default false

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / compact
      Added value: +{
      +  "description": "true leaves out the long per-market notes (market_notes, schema) to save tokens; default false",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / ticker / maxLength
      Added value: +40
    • addedInput schema / properties / ticker / minLength
      Added value: +1
  2. First observed

TDQS

A4.2/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, it discloses licence-key limits (non-sample companies answer from the latest fiscal year only, history_depth says so, as_of unavailable), the stale flag, per-market filing-date conventions, attribution/licence obligations, and sign conventions. These are exactly the operational caveats an agent needs and none are derivable from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and the as_of guidance are front-loaded, which is good, but the body is a single dense paragraph. The sprawling parenthetical of nine exotic tickers and the trailing notice about market_notes/schema and attribution could be trimmed without losing agent-relevant information.

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?

For a 4-parameter read tool with no output schema, it covers return-shape fields, per-metric period independence, the quarterly-vs-fiscal-quarter trap, .TW single-quarter values, licence-tier behavior and stale detection. Nothing an agent needs in order to call and interpret it correctly is missing.

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?

Schema coverage is 100%, so the 3 baseline is already met, and the description adds real meaning: unknown metric names are surfaced in metrics_not_found, as_of means 'only filings dated on or before that day,' and compact omits market_notes and schema. The long ticker example list is informative but largely redundant with the schema's example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening states a specific verb and resource: 'The most recent reported value of each metric for one ticker,' plus the per-row fields (period, fiscal period, period end, filing date, form). 'Most recent' implicitly contrasts with the sibling get_fundamentals_history, but it never names that tool explicitly, so sibling differentiation is left partly to inference.

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?

It gives clear when-to-use guidance: 'Use it for a company's current figures, or with as_of for what had been filed by a given day.' It also points to search_companies for name-to-ticker resolution. It stops short of explicit exclusions such as 'for historical series use get_fundamentals_history instead,' which would make it a 5.

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.