Skip to main content
Glama

Screen stocks

screen_stocks
Read-only

Screen the global Bullrun stock universe with the app rule engine using custom fundamental rules or named presets: profitable value, dividend income, growth and cash flow, cash generators, dividend growth. action=list_presets discloses exact thresholds, units, annual lookback and sorting without any backend request. action=run (default) executes one preset or custom rules; running uses the API's metered screening budget. Custom screens support sector/industry/country, listing controls, annual/quarterly lookback, AND/OR rule groups and money units. Presets are mechanical starting points, not recommendations or famous-investor strategies. Read-only.

Input Schema

NameRequiredDescriptionDefault
modeNoDeprecated alias for lookbackMode; kept for compatibility.
limitNoMaximum stocks to return: custom default 25 (1-100), preset default 20 (1-50).
orderNoSort direction. Custom default desc; presets use their disclosed order. Nulls always sort last regardless of direction.
rulesNoFundamental rules. Same groupId means AND; different groupIds mean OR.
actionNolist_presets discloses named screens without any backend request; run executes a preset or custom rules and uses the metered screening budget.run
presetNoOptional named screen. Presets use disclosed fixed rules/sorting, annual lookback (2-10 years), primary active listings and a default limit of 20 (maximum 50). Omit for custom rules; do not combine with rules or minMarketCap.
sectorNoExact sector name to filter by, e.g. "Technology", "Healthcare". Omit for all sectors.
sortByNoMetric to sort by. Custom default marketCap; presets use their disclosed sorting. revenueGrowth is accepted as an alias for revenueGrowthPct.
countryNoExact country name to filter by, e.g. "United States", "Germany". Omit for all countries.
periodsNoDeprecated alias for lookback; kept for compatibility.
industryNoExact industry name to filter by, e.g. "Software - Infrastructure". Omit for all industries.
lookbackNoHow many reporting periods to evaluate (default 3). Growth rules need at least 2 comparable periods; presets require 2-10 annual observations.
countriesNoExact country names to include. Use this for multi-country screens; it overrides country when provided.
lookbackModeNoWhether rule evaluation uses annual or quarterly reporting periods. Default annual; presets require annual.
minMarketCapNoCompatibility shortcut: adds marketCap >= this absolute value to every rule group.
includeInactiveNoInclude delisted/inactive tickers with no recent price bar. Default false.
includeSecondaryNoInclude secondary cross-listings of the same security. Default false (primary listings only).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed13 schema fields changed
    • addedInput schema / properties / action
      Added value: +{
      +  "default": "run",
      +  "description": "list_presets discloses named screens without any backend request; run executes a preset or custom rules and uses the metered screening budget.",
      +  "enum": [
      +    "list_presets",
      +    "run"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / limit / default
      Removed value: -25
    • changedInput schema / properties / limit / description
      Previous value: -"Maximum number of stocks to return (1-100)."New value: +"Maximum stocks to return: custom default 25 (1-100), preset default 20 (1-50)."
    • removedInput schema / properties / lookback / default
      Removed value: -3
    • changedInput schema / properties / lookback / description
      Previous value: -"How many reporting periods to evaluate. Growth rules need at least 2 comparable periods."New value: +"How many reporting periods to evaluate (default 3). Growth rules need at least 2 comparable periods; presets require 2-10 annual observations."
    • removedInput schema / properties / lookbackMode / default
      Removed value: -"annual"
    • changedInput schema / properties / lookbackMode / description
      Previous value: -"Whether rule evaluation uses annual or quarterly reporting periods."New value: +"Whether rule evaluation uses annual or quarterly reporting periods. Default annual; presets require annual."
    • removedInput schema / properties / order / default
      Removed value: -"desc"
    • changedInput schema / properties / order / description
      Previous value: -"Sort direction. Nulls always sort last regardless of direction."New value: +"Sort direction. Custom default desc; presets use their disclosed order. Nulls always sort last regardless of direction."
    • addedInput schema / properties / preset
      Added value: +{
      +  "description": "Optional named screen. Presets use disclosed fixed rules/sorting, annual lookback (2-10 years), primary active listings and a default limit of 20 (maximum 50). Omit for custom rules; do not combine with rules or minMarketCap.",
      +  "enum": [
      +    "profitable_value",
      +    "dividend_income",
      +    "growth_and_cashflow",
      +    "cash_generators",
      +    "dividend_growth"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / rules / default
      Removed value: -[]
    • removedInput schema / properties / sortBy / default
      Removed value: -"marketCap"
    • changedInput schema / properties / sortBy / description
      Previous value: -"Metric to sort by. revenueGrowth is accepted as an alias for revenueGrowthPct."New value: +"Metric to sort by. Custom default marketCap; presets use their disclosed sorting. revenueGrowth is accepted as an alias for revenueGrowthPct."
  2. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Goes beyond the readOnlyHint annotation by disclosing that action=run consumes a metered screening budget, that list_presets performs no backend request, and that presets are mechanical starting points rather than recommendations or famous-investor strategies. Return shape is not described, but the operationally important traits are covered.

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?

Four sentences, front-loaded with the action and resource, then the mode split, then cost, then scope of custom screens. Dense but every sentence carries usable information; the long compound sentence about custom-screen features is the only mild readability cost.

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 17-param tool with no output schema, the description covers the crucial preset-vs-custom dichotomy, the metering budget and the preset lookback constraints. It does not describe what a run returns (matching tickers plus metric values, sorting behavior), which would help given no output schema exists.

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 coverage is 100%, so all 17 parameters are already documented in detail; baseline is 3. The description adds a high-level summary (sector/industry/country, listing controls, lookback, AND/OR groups, money units) that mirrors the schema but introduces no new syntax or constraints.

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 ('Screen the global Bullrun stock universe') and names the mechanism (app rule engine with custom fundamental rules or named presets). This clearly separates it from siblings like search_stocks (lookup), screen_etfs and screen_valuation_model (different universes).

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?

Explicitly distinguishes action=list_presets (discloses thresholds, no backend request) from action=run (executes, uses metered budget) and tells the agent custom screens vs presets. It lacks a direct 'use search_stocks instead if you want a single company' routing, but the internal mode selection is unambiguous.

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.