Skip to main content
Glama

Company fundamentals

get_fundamentals
Read-onlyIdempotent

SEC-derived annual observations with exact dates, units and source filings for a US public company, by ticker symbol (use search_companies to find one by name), plus trailing-twelve-month figures and the latest quarterly balances (latest_interim) when a 10-Q is newer than the annual report. Pass quarters (1 to 12) or period "quarterly" for single fiscal quarters (income, cash flow and balances, each reported or the difference of two reported year-to-date figures, named in derivation); reporting says whether the quarter after the latest report has ended without a report yet. Each year also carries computed ratios (margins, return on equity, leverage, revenue_growth; any metric's change as _growth) and notes on figures that are not comparable with the year before (a restatement or a stock split between them): do not compute a change across a noted year. Includes coverage gaps, metric definitions, requested/canonical identity, dataset SHA-256 and research links. Empty annual history is unavailable, not zero; current-CIK history is not reconciled across reorganizations. Data traces to SEC EDGAR filings. For research and education only; not financial advice or a recommendation to buy, sell or hold.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
periodNoquarterly returns the newest 8 fiscal quarters (or as many as fit) unless quarters is given; annual is the default.
tickerYesUS ticker symbol, e.g. AAPL
metricsNoComma-separated metric or ratio keys, e.g. revenue,operating_margin,free_cash_flow; omitted means all metrics and ratios. A ratio brings its inputs with it. Metrics: revenue, cost_of_revenue, gross_profit, research_and_development, operating_income, depreciation_and_amortization, ebitda (derived), net_income, eps_diluted, total_assets, total_liabilities, long_term_debt, stockholders_equity, cash_and_equivalents, operating_cash_flow, capex, free_cash_flow (derived), share_repurchases, dividends_paid, shares_outstanding, dividends_per_share, weighted_average_diluted_shares, eps_basic. Ratios: gross_margin, operating_margin, net_margin, return_on_equity, liabilities_to_equity, long_term_debt_to_equity, revenue_growth; any metric's year-over-year change as <metric>_growth, e.g. eps_diluted_growth.
periodsNoNewest annual period groups to return; omitted means all available, or the newest that fit in one result (selection.note says so). With quarters and no periods, the newest 1.
quartersNoNewest fiscal quarters to return in quarterly, newest first (up to 12).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / period
      Added value: +{
      +  "description": "quarterly returns the newest 8 fiscal quarters (or as many as fit) unless quarters is given; annual is the default.",
      +  "enum": [
      +    "annual",
      +    "quarterly"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / periods / description
      Previous value: -"Newest annual period groups to return; omitted means all available, or the newest that fit in one result (selection.note says so)."New value: +"Newest annual period groups to return; omitted means all available, or the newest that fit in one result (selection.note says so). With quarters and no periods, the newest 1."
    • addedInput schema / properties / quarters
      Added value: +{
      +  "description": "Newest fiscal quarters to return in quarterly, newest first (up to 12).",
      +  "maximum": 12,
      +  "minimum": 1,
      +  "type": "integer"
      +}
  2. Changed2 schema fields changed
    • changedInput schema / properties / metrics / description
      Previous value: -"Comma-separated metric keys, e.g. revenue,operating_income,capex,free_cash_flow; omitted means all. Keys: revenue, cost_of_revenue, gross_profit, research_and_development, operating_income, depreciation_and_amortization, ebitda (derived), net_income, eps_diluted, total_assets, total_liabilities, long_term_debt, stockholders_equity, cash_and_equivalents, operating_cash_flow, capex, free_cash_flow (derived), share_repurchases, dividends_paid, shares_outstanding, dividends_per_share, weighted_average_diluted_shares, eps_basic."New value: +"Comma-separated metric or ratio keys, e.g. revenue,operating_margin,free_cash_flow; omitted means all metrics and ratios. A ratio brings its inputs with it. Metrics: revenue, cost_of_revenue, gross_profit, research_and_development, operating_income, depreciation_and_amortization, ebitda (derived), net_income, eps_diluted, total_assets, total_liabilities, long_term_debt, stockholders_equity, cash_and_equivalents, operating_cash_flow, capex, free_cash_flow (derived), share_repurchases, dividends_paid, shares_outstanding, dividends_per_share, weighted_average_diluted_shares, eps_basic. Ratios: gross_margin, operating_margin, net_margin, return_on_equity, liabilities_to_equity, long_term_debt_to_equity, revenue_growth; any metric's year-over-year change as <metric>_growth, e.g. eps_diluted_growth."
    • changedInput schema / properties / periods / description
      Previous value: -"Newest annual period groups to return; omitted means all available."New value: +"Newest annual period groups to return; omitted means all available, or the newest that fit in one result (selection.note says so)."
  3. Changed1 schema field changed
    • changedInput schema / properties / metrics / description
      Previous value: -"Comma-separated canonical metric keys, e.g. revenue,operating_income,capex; omitted means all curated metrics."New value: +"Comma-separated metric keys, e.g. revenue,operating_income,capex,free_cash_flow; omitted means all. Keys: revenue, cost_of_revenue, gross_profit, research_and_development, operating_income, depreciation_and_amortization, ebitda (derived), net_income, eps_diluted, total_assets, total_liabilities, long_term_debt, stockholders_equity, cash_and_equivalents, operating_cash_flow, capex, free_cash_flow (derived), share_repurchases, dividends_paid, shares_outstanding, dividends_per_share, weighted_average_diluted_shares, eps_basic."
  4. Changed3 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / metrics
      Added value: +{
      +  "description": "Comma-separated canonical metric keys, e.g. revenue,operating_income,capex; omitted means all curated metrics.",
      +  "type": "string"
      +}
    • addedInput schema / properties / periods
      Added value: +{
      +  "description": "Newest annual period groups to return; omitted means all available.",
      +  "maximum": 20,
      +  "minimum": 1,
      +  "type": "integer"
      +}
  5. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive safety, so the description earns credit for adding substantive behavioral context: TTM and latest_interim inclusion rules, the reporting flag, ratio computation and non-comparability notes, coverage gaps, and dataset SHA-256 / research links. It does disclose limitations (empty history = unavailable not zero; current-CIK history not reconciled across reorganizations) and even includes a compliance disclaimer.

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 description is long and dense, packing many clauses into essentially two sentences; it is front-loaded with scope but the mid-section on quarterly derivation and reporting flags is hard to parse. It is informative but not optimally structured for quick scanning.

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 5 parameters at 100% schema coverage, no output schema, and rich annotations, the description covers the critical behavioral nuances (TTM, latest_interim, derivations, non-comparability, coverage gaps). It omits return-shape details, but with no output schema that is a minor gap for a read-only data tool.

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 description coverage is 100%, so baseline is 3, but the description adds real meaning beyond the schema: it explains what 'quarterly' returns (newest 8 fiscal quarters unless quarters is given) and how quarter figures may be reported or derived as the difference of two year-to-date figures, and it explains ratio behavior (a ratio brings its inputs). It does not re-explain the metrics/periods parameters, which the schema covers.

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 precise verb+resource: SEC-derived annual observations for a US public company, retrieved by ticker. It explicitly names the sibling search_companies as the path for name lookup, and distinguishes itself from get_fundamentals_batch (single company vs batch) by implication of the ticker argument.

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?

Provides clear conditional guidance: use search_companies to find a ticker by name, and pass quarters or period 'quarterly' for single fiscal quarters. However it never states when to prefer get_fundamentals_batch over this tool, nor when a caller would not want the trailing-twelve-month or latest_interim additions.

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