Skip to main content
Glama

Get Top Market Movers

get_top_movers
Read-only

Top stock movers: gainers (largest % up), losers (largest % down), or active (highest volume). Optional session window (premarket / regular / afterhours; regular default; not supported for active). An optional date (YYYY-MM-DD) returns a past trade date's gainers/losers on a historical daily close-to-close basis (computed from split-adjusted daily bars, not intraday); session is rejected when date is set, date is not supported for direction=active, and a non-trade date (weekend/holiday) returns an empty list (not an error). Penny-stock artifacts are filtered by default; includePennyStocks=true includes sub-$1 movers.

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": {
      "direction": "<direction>"
    },
    "name": "get_top_movers"
  }
}

Input Schema

NameRequiredDescriptionDefault
dateNoOptional past trade date (YYYY-MM-DD). When set, returns that day's top gainers/losers computed on a historical daily close-to-close basis from split-adjusted daily bars (NOT intraday, NOT session-specific). Rejected with 400 when combined with a non-regular session or with direction="active"; a future or malformed date is also 400. A weekend/holiday date returns an empty list, not an error.
limitNoOptional max rows (1–100). Backend default applied when omitted.
sessionNoSession window: premarket (4:00–9:30 AM ET), regular (RTH close-to-close, default), afterhours (4:00–8:00 PM ET). Live-only; rejected (400) when combined with date.regular
directionYesMover direction: gainers, losers, or active (volume)
includePennyStocksNoLoosen penny-stock artifact guards. Default false enforces prev_close >= $1 and a $1M dollar-volume floor. Set true to allow sub-$1 movers (prev_close >= $0.10, no dollar-volume floor). The ABS(change_pct) <= 500 cap applies in both modes.

Output Schema

NameRequiredDescriptionDefault
dataNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / session / description
      Previous value: -"Session window: premarket (4:00–9:30 AM ET), regular (RTH close-to-close, default), afterhours (4:00–8:00 PM ET). Live-only — rejected (400) when combined with date."New value: +"Session window: premarket (4:00–9:30 AM ET), regular (RTH close-to-close, default), afterhours (4:00–8:00 PM ET). Live-only; rejected (400) when combined with date."
  2. Changed2 schema fields changed
    • addedInput schema / properties / date
      Added value: +{
      +  "description": "Optional past trade date (YYYY-MM-DD). When set, returns that day's top gainers/losers computed on a historical daily close-to-close basis from split-adjusted daily bars (NOT intraday, NOT session-specific). Rejected with 400 when combined with a non-regular session or with direction=\"active\"; a future or malformed date is also 400. A weekend/holiday date returns an empty list, not an error.",
      +  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +  "type": "string"
      +}
    • changedInput schema / properties / session / description
      Previous value: -"Session window: premarket (4:00–9:30 AM ET), regular (RTH close-to-close, default), afterhours (4:00–8:00 PM ET)."New value: +"Session window: premarket (4:00–9:30 AM ET), regular (RTH close-to-close, default), afterhours (4:00–8:00 PM ET). Live-only — rejected (400) when combined with date."
  3. Changed6 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / direction / description
      Added value: +"Mover direction: gainers, losers, or active (volume)"
    • addedInput schema / properties / includePennyStocks / description
      Added value: +"Loosen penny-stock artifact guards. Default false enforces prev_close >= $1 and a $1M dollar-volume floor. Set true to allow sub-$1 movers (prev_close >= $0.10, no dollar-volume floor). The ABS(change_pct) <= 500 cap applies in both modes."
    • addedInput schema / properties / limit / description
      Added value: +"Optional max rows (1–100). Backend default applied when omitted."
    • addedInput schema / properties / session / description
      Added value: +"Session window: premarket (4:00–9:30 AM ET), regular (RTH close-to-close, default), afterhours (4:00–8:00 PM ET)."
    • removedOutput schema / required
      Removed value: -[
      -  "data"
      -]
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "data": {}
      +  },
      +  "required": [
      +    "data"
      +  ],
      +  "type": "object"
      +}
  5. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the readOnly/openWorld annotations, the description discloses the historical computation basis (split-adjusted daily close-to-close, not intraday), the 400 rejection cases, and the empty-list-not-error behavior on weekends/holidays. It also quantifies the default penny-stock guards ($1 prev close, $1M dollar volume) and the 500% change cap, which is exactly the behavioral detail an agent needs.

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 capability, then constraints in descending importance; nearly every clause carries information. It is dense to the point of being run-on, with the date/session rules packed into one long sentence, but there is little filler.

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 five-parameter screening tool with full schema coverage and an output schema, the description covers the mode selection, time semantics, error cases, and filtering defaults. Nothing material is missing for correct invocation.

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 baseline is 3, but the description adds a constraint not stated in the schema text: session is not supported for direction=active, and regular is the default session. It largely restates the date and penny-stock semantics already present in the schema, which keeps it from a 5.

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 opens with a concrete verb-and-resource statement ('Top stock movers') and enumerates the three mover modes (gainers by % up, losers by % down, active by volume). It never distinguishes itself from nearby siblings such as get_market_breadth, get_premarket_scanner, or get_post_earnings_movers, so the agent has no explicit routing cue.

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?

Usage context is only implied by the parameter constraints (when to pass date, when session applies). There is no explicit 'use this when X, use sibling Y when Z' guidance, and the premarket-session overlap with get_premarket_scanner is left unaddressed.

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.