Skip to main content
Glama

list_options

Read-only

Enumerate the valid values for a parameter, straight from the backend.

Call this BEFORE guessing a parameter value. `kind` selects which catalog; three
kinds are scoped by a query parameter (`ticker`, or `q` / `cik`) and refuse the call
without it:

- "event_types"                  -> valid `event_type` for `list_realtime_events`
                                    (eps_update, company_update, biggest_mover, ...)
- "financial_items"              -> standardized EDGAR line items ("revenue",
                                    "operatingIncome") for a CUSTOM report's
                                    `financial_items` (`generate_report_for_stock`,
                                    or a scheduled "create-full-report" step)
- "financial_ratios"             -> EDGAR ratios ("grossProfitMargin") for that
                                    report's `ratios`
- "as_reported_items"            -> NEEDS `ticker`. The filer's OWN tagged XBRL
                                    concepts from its 10-Q / 10-K filings — {concept,
                                    statement_type, label, standard_concept,
                                    latest_period, facts} — for a custom report's
                                    `as_reported_financial_items`
- "revenue_segments"             -> NEEDS `ticker`. The filer's revenue segments as
                                    tagged in its filings — {product_label,
                                    product_member, product_axis, concept,
                                    latest_period, facts} — for a custom report's
                                    `revenue_segment` (pass the product_label).
                                    A name lookup only: never sum members across it
- "institutional_managers"       -> NEEDS `q` (name fragment, e.g. "berkshire")
                                    and/or `cik` (SEC CIK, any width). Managers as
                                    {cik, name, category, aum}, largest AUM first —
                                    pass the `cik` values as a custom report's
                                    `institutional_ownership`, never the names
- "sectors"                      -> valid `sector` filter values
- "institutional_investor_types" -> investor CATEGORIES (not managers) — the keys
                                    `screen_stocks(institutional_ownership=...)`
                                    filters on
- "countries"                    -> covered countries
- "fiscal_quarter"               -> the most recent fiscal quarter being reported
- "market_cap"                   -> valid `market_cap` buckets (Small-cap,
                                    Medium-cap, Large-cap, Mega-cap)
- "intraday_frequency"           -> supported intraday chart frequencies
- "technical_indicators"         -> indicator names accepted by
                                    `get_technical_indicator_data` (rsi, macd,
                                    sma_50, ...); an unknown indicator there
                                    returns a 400 listing this set
- "tickers"                      -> the full covered symbol universe as bare
                                    symbols — equities PLUS ~420 market indices
                                    as caret-prefixed symbols (^GSPC, ^VIX, ...).
                                    NOTE: thousands of names — a large payload
- "tickers_with_names"           -> {symbol, company_name} pairs for the company
                                    universe ONLY — market indices are NOT in
                                    this list, only in "tickers" (an even larger
                                    payload)
- "data_feeds"                   -> the datasets `download_dataset` accepts, as
                                    {dataset, description, returns ("rows" or
                                    "download_links"), date_field, event_types
                                    (valid filter, null = unsupported)}. Call this,
                                    not download_dataset (3 calls/week), to answer
                                    "what feeds are there"

Returns `options` (the values for that kind). Authoritative and never stale: it
reads the backend's live config, not a hardcoded list. Public — no auth required.

Input Schema

NameRequiredDescriptionDefault
qNoManager name fragment, e.g. "berkshire" (institutional_managers).
cikNoSEC CIK, any width, e.g. "1067983" (institutional_managers).
kindYesWhich catalog to list; see the kinds below.
tickerNoFiler ticker, e.g. "AAPL". Required for as_reported_items and revenue_segments.

Output Schema

NameRequiredDescriptionDefault
kindYesThe catalog that was listed.
optionsYesThe valid values. Usually a list — bare strings for most kinds, records for event_types, tickers, tickers_with_names, as_reported_items, revenue_segments, institutional_managers and data_feeds. fiscal_quarter is a single quarter number.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "event_types",
      -  "financial_items",
      -  "financial_ratios",
      -  "sectors",
      -  "institutional_investor_types",
      -  "countries",
      -  "fiscal_quarter",
      -  "market_cap",
      -  "intraday_frequency",
      -  "technical_indicators",
      -  "tickers",
      -  "tickers_with_names",
      -  "as_reported_items",
      -  "revenue_segments",
      -  "institutional_managers"
      -]New value: +[
      +  "event_types",
      +  "financial_items",
      +  "financial_ratios",
      +  "sectors",
      +  "institutional_investor_types",
      +  "countries",
      +  "fiscal_quarter",
      +  "market_cap",
      +  "intraday_frequency",
      +  "technical_indicators",
      +  "tickers",
      +  "tickers_with_names",
      +  "as_reported_items",
      +  "revenue_segments",
      +  "institutional_managers",
      +  "data_feeds"
      +]
    • changedOutput schema / properties / options / description
      Previous value: -"The valid values. Usually a list — bare strings for most kinds, records for event_types, tickers, tickers_with_names, as_reported_items, revenue_segments and institutional_managers. fiscal_quarter is a single quarter number."New value: +"The valid values. Usually a list — bare strings for most kinds, records for event_types, tickers, tickers_with_names, as_reported_items, revenue_segments, institutional_managers and data_feeds. fiscal_quarter is a single quarter number."
  2. First observed

TDQS

A4.5/5.0
Behavior3/5

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

Annotations only declare readOnlyHint=true, so the safety profile is covered. The description adds real value beyond them: public/no-auth, authoritative live-config reads (never stale), refusal behavior for under-scoped kinds, and payload-size warnings for `tickers`/`tickers_with_names`. Strong supplemental context for an annotated read-only tool.

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

Conciseness4/5

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

Front-loaded with the core directive before the long catalog list, and each bullet carries unique routing information. Slightly long with chatty asides ('NOTE: thousands of names', parenthetical hints), but almost none of it is removable for a 16-way multiplexer.

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?

With an output schema present, return-shape detail is not owed, and the description still names the `options` payload. It covers scoping prerequisites, auth, sizing, and per-kind destinations, leaving nothing an agent needs to invoke it correctly.

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 already 100% with an enum on `kind`, so the baseline would be 3, but the description goes far beyond it: each kind gets a meaning, example values, the structure of what comes back ({concept, statement_type, label, ...}), and which of `ticker`/`q`/`cik` it consumes. This is semantics the schema cannot express.

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 and resource ('Enumerate the valid values for a parameter, straight from the backend') and then enumerates every catalog the `kind` multiplexer can return. It is unmistakable against siblings like `get_technical_indicator_data` or `download_dataset`, which it explicitly routes to/from.

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?

Opens with an imperative rule of thumb ('Call this BEFORE guessing a parameter value'), names the three kinds that require a scoping param (`ticker`, `q`/`cik`) and states they refuse the call without it, and explicitly redirects agents away from `download_dataset` (3 calls/week) to this tool for feed discovery.

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