Skip to main content
Glama

Fundamentals tools

fundamentals_tools
Read-onlyIdempotent

Company fundamentals: financial statements, metrics, growth, dividends, peers, screener, XBRL facts and price snapshots. Use it for a company's financials, ratios and growth, or to screen stocks. Pick one of its 22 operations in operation and pass its arguments in arguments.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "operation": "<operation>"
    },
    "name": "fundamentals_tools"
  }
}

Input Schema

NameRequiredDescriptionDefault
argumentsNoThe operation's own arguments, by the names its line gives. search_tools returns any operation's full inputSchema.
operationYesThe operation to run. One line each: name(its arguments, * = required): what it does. fundamentals_all(ticker*, period, limit): All three financial statements (income, balance sheet, cash flow) for a ticker in one call (default quarterly, last 4) fundamentals_balance_sheets(ticker*, period, limit): SEC-reported balance sheets for a ticker: assets, liabilities and equity per period, quarterly or annual (default quarterly, last 8) fundamentals_cash_flow_statements(ticker*, period, limit): SEC EDGAR cash-flow statements for a ticker: operating, investing, and financing flows per period, quarterly or annual (default quarterly, last 8 periods) fundamentals_company_facts(ticker*): Static company profile for one ticker: sector, industry, CIK, exchange, market cap and employee count (employees; the source gives no as-of date) fundamentals_company_full(ticker*): One-call company snapshot: profile, latest fiscal year and quarter, trailing twelve months (income, cash flow with its operating bridge, ratios)... fundamentals_dividends(tickers*): Dividend profile per ticker: DPS, payout ratio, consecutive-growth streak and 10Y history; accepts comma-separated tickers fundamentals_full(ticker*): One-shot fundamentals bundle for a ticker, fetched in parallel fundamentals_growth(tickers*, limit): Growth metrics: YoY, 3Y CAGR, 5Y CAGR and margin trends; accepts comma-separated tickers for one-call bulk comparison fundamentals_historical(ticker*, statement_type, start_year, end_year, include_quarterly): Multi-decade historical financial statements for one ticker from SEC EDGAR fundamentals_income_statements(ticker*, period, limit): SEC-reported income statements (revenue to net income, EPS), quarterly, annual or TTM (default quarterly, last 8) fundamentals_metrics(ticker*, period, limit): Derived financial-metric rows per period for a ticker (P/E, ROE, margins, FCF yield, debt ratios), quarterly, annual... fundamentals_metrics_snapshot(ticker*): Latest fundamentals snapshot for a ticker in one call fundamentals_news(ticker*, limit, start_date, end_date): Curated news articles for one ticker from the fundamentals market-data feed, with start_date/end_date filtering (default 50) fundamentals_peers(ticker*, limit, min_relative_size): Same-industry comparables for a ticker (default 10): the company's GICS sub-industry among US exchange listings... fundamentals_price_snapshot(ticker*, asset_class): Latest quote for one ticker fundamentals_prices(ticker*, asset_class, interval, interval_multiplier, start_date, end_date, +1 more): Historical OHLCV bars for one ticker at second/minute/hour/day/week/month granularity... fundamentals_screener(sector, industry, roe_min_pct, roe_max_pct, roa_min_pct, net_margin_min_pct, +30 more): Multi-filter stock screener combining profitability (ROE, ROA, net margin), growth (revenue, EPS)... fundamentals_screener_presets(): Catalog of pre-built screener strategies: Aristocrats, Cash Cows, Value, Quality and more fundamentals_search(q*, limit): Fuzzy company lookup: resolves a free-text name or partial ticker to matching companies (default 10) fundamentals_tickers(is_sp500, sector, limit, page): Paged listing of the full covered ticker universe, filterable to S&P 500 membership or one sector... xbrl_concept_history(ticker*, concept*, taxonomy, unit, form, start, +4 more): One XBRL concept's as-reported history (period, value, SEC form, accession, filed date) from SEC EDGAR's live companyfacts document xbrl_concepts(ticker*, search, limit): Directory of every as-reported XBRL concept (us-gaap/dei/ifrs-full) a company has filed (unit(s), observation count and period coverage) from SEC EDGAR's live...

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / operation / description
      Previous value: -"The operation to run. One line each: name(its arguments, * = required): what it does.\nfundamentals_all(ticker*, period, limit): All three financial statements (income, balance sheet, cash flow) for a ticker in one call (default quarterly, last 4)\nfundamentals_balance_sheets(ticker*, period, limit): SEC-reported balance sheets for a ticker: assets, liabilities and equity per period, quarterly or annual (default quarterly, last 8)\nfundamentals_cash_flow_statements(ticker*, period, limit): SEC EDGAR cash-flow statements for a ticker: operating, investing, and financing flows per period, quarterly or annual (default quarterly, last 8 periods)\nfundamentals_company_facts(ticker*): Static company profile for one ticker: sector, industry, CIK, exchange, market cap and employee count (employees; the source gives no as-of date)\nfundamentals_company_full(ticker*): One-call company snapshot: profile, latest fiscal year and quarter, trailing twelve months (income, cash flow with its operating bridge, ratios)...\nfundamentals_dividends(tickers*): Dividend profile per ticker: DPS, payout ratio, consecutive-growth streak and 10Y history; accepts comma-separated tickers\nfundamentals_full(ticker*): One-shot fundamentals bundle for a ticker, fetched in parallel\nfundamentals_growth(tickers*, limit): Growth metrics: YoY, 3Y CAGR, 5Y CAGR and margin trends; accepts comma-separated tickers for one-call bulk comparison\nfundamentals_historical(ticker*, statement_type, start_year, end_year, include_quarterly): Multi-decade historical financial statements for one ticker from SEC EDGAR\nfundamentals_income_statements(ticker*, period, limit): SEC-reported income statements (revenue to net income, EPS), quarterly, annual or TTM (default quarterly, last 8)\nfundamentals_metrics(ticker*, period, limit): Derived financial-metric rows per period for a ticker (P/E, ROE, margins, FCF yield, debt ratios), quarterly, annual...\nfundamentals_metrics_snapshot(ticker*): Latest fundamentals snapshot for a ticker in one call\nfundamentals_news(ticker*, limit, start_date, end_date): Curated news articles for one ticker from the fundamentals market-data feed, with start_date/end_date filtering (default 50)\nfundamentals_peers(ticker*, limit, min_relative_size): Same-industry comparables for a ticker (default 10): the company's GICS sub-industry among US exchange listings...\nfundamentals_price_snapshot(ticker*, asset_class): Latest quote for one ticker\nfundamentals_prices(ticker*, asset_class, interval, interval_multiplier, start_date, end_date, +1 more): Historical OHLCV bars for one ticker at second/minute/hour/day/week/month granularity...\nfundamentals_screener(sector, industry, roe_min_pct, roe_max_pct, roa_min_pct, net_margin_min_pct, +28 more): Multi-filter stock screener combining profitability (ROE, ROA, net margin), growth (revenue, EPS)...\nfundamentals_screener_presets(): Catalog of pre-built screener strategies: Aristocrats, Cash Cows, Value, Quality and more\nfundamentals_search(q*, limit): Fuzzy company lookup: resolves a free-text name or partial ticker to matching companies (default 10)\nfundamentals_tickers(is_sp500, sector, limit, page): Paged listing of the full covered ticker universe, filterable to S&P 500 membership or one sector...\nxbrl_concept_history(ticker*, concept*, taxonomy, unit, form, start, +4 more): One XBRL concept's as-reported history (period, value, SEC form, accession, filed date) from SEC EDGAR's live companyfacts document\nxbrl_concepts(ticker*, search, limit): Directory of every as-reported XBRL concept (us-gaap/dei/ifrs-full) a company has filed (unit(s), observation count and period coverage) from SEC EDGAR's live..."New value: +"The operation to run. One line each: name(its arguments, * = required): what it does.\nfundamentals_all(ticker*, period, limit): All three financial statements (income, balance sheet, cash flow) for a ticker in one call (default quarterly, last 4)\nfundamentals_balance_sheets(ticker*, period, limit): SEC-reported balance sheets for a ticker: assets, liabilities and equity per period, quarterly or annual (default quarterly, last 8)\nfundamentals_cash_flow_statements(ticker*, period, limit): SEC EDGAR cash-flow statements for a ticker: operating, investing, and financing flows per period, quarterly or annual (default quarterly, last 8 periods)\nfundamentals_company_facts(ticker*): Static company profile for one ticker: sector, industry, CIK, exchange, market cap and employee count (employees; the source gives no as-of date)\nfundamentals_company_full(ticker*): One-call company snapshot: profile, latest fiscal year and quarter, trailing twelve months (income, cash flow with its operating bridge, ratios)...\nfundamentals_dividends(tickers*): Dividend profile per ticker: DPS, payout ratio, consecutive-growth streak and 10Y history; accepts comma-separated tickers\nfundamentals_full(ticker*): One-shot fundamentals bundle for a ticker, fetched in parallel\nfundamentals_growth(tickers*, limit): Growth metrics: YoY, 3Y CAGR, 5Y CAGR and margin trends; accepts comma-separated tickers for one-call bulk comparison\nfundamentals_historical(ticker*, statement_type, start_year, end_year, include_quarterly): Multi-decade historical financial statements for one ticker from SEC EDGAR\nfundamentals_income_statements(ticker*, period, limit): SEC-reported income statements (revenue to net income, EPS), quarterly, annual or TTM (default quarterly, last 8)\nfundamentals_metrics(ticker*, period, limit): Derived financial-metric rows per period for a ticker (P/E, ROE, margins, FCF yield, debt ratios), quarterly, annual...\nfundamentals_metrics_snapshot(ticker*): Latest fundamentals snapshot for a ticker in one call\nfundamentals_news(ticker*, limit, start_date, end_date): Curated news articles for one ticker from the fundamentals market-data feed, with start_date/end_date filtering (default 50)\nfundamentals_peers(ticker*, limit, min_relative_size): Same-industry comparables for a ticker (default 10): the company's GICS sub-industry among US exchange listings...\nfundamentals_price_snapshot(ticker*, asset_class): Latest quote for one ticker\nfundamentals_prices(ticker*, asset_class, interval, interval_multiplier, start_date, end_date, +1 more): Historical OHLCV bars for one ticker at second/minute/hour/day/week/month granularity...\nfundamentals_screener(sector, industry, roe_min_pct, roe_max_pct, roa_min_pct, net_margin_min_pct, +30 more): Multi-filter stock screener combining profitability (ROE, ROA, net margin), growth (revenue, EPS)...\nfundamentals_screener_presets(): Catalog of pre-built screener strategies: Aristocrats, Cash Cows, Value, Quality and more\nfundamentals_search(q*, limit): Fuzzy company lookup: resolves a free-text name or partial ticker to matching companies (default 10)\nfundamentals_tickers(is_sp500, sector, limit, page): Paged listing of the full covered ticker universe, filterable to S&P 500 membership or one sector...\nxbrl_concept_history(ticker*, concept*, taxonomy, unit, form, start, +4 more): One XBRL concept's as-reported history (period, value, SEC form, accession, filed date) from SEC EDGAR's live companyfacts document\nxbrl_concepts(ticker*, search, limit): Directory of every as-reported XBRL concept (us-gaap/dei/ifrs-full) a company has filed (unit(s), observation count and period coverage) from SEC EDGAR's live..."
  2. First observed

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds only the dispatcher model — choose one of 22 operations and pass its arguments — and does not add deeper behavioral context such as rate limits, data freshness, error behavior, or how results vary by operation.

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?

The description is two efficient sentences: the first front-loads the covered data categories, and the second explains usage and invocation. There is no filler or repetition.

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?

For a 22-operation dispatcher whose enum entries already document each operation in detail, the description supplies enough high-level framing and invocation guidance to use it correctly. It could still be stronger by clarifying when to choose this tool over overlapping siblings, but the core dispatch behavior is adequately covered.

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?

Schema description coverage is 100% and the operation enum itself contains detailed one-line descriptions of each operation and its arguments. The description usefully reinforces the operation/arguments dispatch pattern, but it does not add substantial meaning beyond the already-rich schema.

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 description names a specific resource domain (company fundamentals) and enumerates the major data categories it covers: statements, metrics, growth, dividends, peers, screener, XBRL facts and price snapshots. It is clear what the tool does, but it does not explicitly distinguish itself from overlapping siblings such as fundamentals_full, fundamentals_price_snapshot, market_data_tools or public_filings_tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives positive usage guidance — use for a company's financials, ratios and growth, or to screen stocks — and explains how to dispatch via operation and arguments. However, it provides no when-not-to-use guidance and no explicit routing advice relative to the many sibling tools that cover overlapping financial and market-data use cases.

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.