Skip to main content
Glama

Stocklake — AI Stock Intelligence

Screen Stocks

get_screener
Read-onlyIdempotent

Filter and rank stocks from the Stocklake universe - fundamentals, technicals, and AI signals in one tool.

Parameters:

  • sector: e.g. "Technology", "Healthcare", "Financial Services"

  • country: e.g. "United States", "Germany"

  • min_rsi / max_rsi: exact RSI bounds (e.g. max_rsi=30 = oversold, min_rsi=70 = overbought)

  • sma_trend: "above_200" (price above 200-day MA) | "below_200"

  • macd_signal: "positive" (MACD line above signal) | "negative"

  • min_perf_1d / max_perf_1d: 1-day performance % (e.g. min_perf_1d=2.0 = up 2%+ today)

  • min_volume: minimum daily volume (e.g. 1000000)

  • min_market_cap_b / max_market_cap_b: market cap in billions of US dollars, compared against market_cap_usd (stocks with no FX rate for their currency are excluded when either bound is set)

  • max_pe_forward: maximum forward P/E (e.g. 20 = value screen)

  • analyst_rating: "strong_buy" | "buy" | "hold" | "sell" | "strong_sell"

  • min_ai_score: minimum AI score 0-100 (pro tier only - silently ignored for free). Gates on the AI research composite ai_score - same 0-100 scale and bands as signal_score, but a separate score (per-stock AI summary strength, not a directional signal). Renamed 2026-08-24 from the retired 0-10 min_flag_score - the raw flag_score field it used to gate on is no longer part of this fleet's public vocabulary at all (see ai_score below).

  • preset: "oversold" | "overbought" | "momentum" | "high_conviction" (pro only) oversold = RSI≤35 + above SMA200 · overbought = RSI≥65 momentum = RSI 50-70, above SMA200, up 0.5%+ today · high_conviction = ai_score≥70

  • sort_by: "market_cap" | "rsi" | "perf_1d" | "volume" | "analyst_rating" | "rating" | "ai_score" (pro). Defaults to "market_cap", except the "high_conviction" preset defaults to "ai_score" (the dimension it's filtering by) unless you explicitly pass a different sort_by.

  • sort_dir: "asc" | "desc" (default "desc")

  • limit: 1-25 (default 20). Each returned stock counts as one call toward your daily limit.

Returns: { count, preset, filters, results[] } - each result includes symbol, name, sector, industry, country, price, change_pct, volume, market_cap, market_cap_usd, currency, pe_forward, rsi, macd_signal, sma200_trend, analyst_rating. market_cap is in the listing's own currency (the currency field); market_cap_usd is converted to US dollars and is what the market_cap sort and cap filters use. Pro tier adds rating (0-10 composite score) + ai_verdict + ai_headline + ai_score (0-100) + ai_score_band to every result row (the headline is the "why" - a bare verdict alone isn't enough to act on), enables min_ai_score filter, high_conviction preset, and sorting by rating/ai_score (sort_by silently falls back to market_cap on free/guest for both). All other filters available to all tiers. For the full research bundle on any one result, call get_stock_research(symbol).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return, 1-25 (default 20). Each returned stock counts as one call toward your daily limit.
presetNo"oversold" | "overbought" | "momentum" | "high_conviction" (pro only). oversold = RSI<=35 + above SMA200; overbought = RSI>=65; momentum = RSI 50-70, above SMA200, up 0.5%+ today; high_conviction = ai_score>=70.
sectorNoFilter by sector, e.g. "Technology", "Healthcare", "Financial Services".
countryNoFilter by country, e.g. "United States", "Germany".
max_rsiNoMaximum RSI bound (e.g. max_rsi=30 = oversold).
min_rsiNoMinimum RSI bound (e.g. min_rsi=70 = overbought).
sort_byNo"market_cap" | "rsi" | "perf_1d" | "volume" | "analyst_rating" | "rating" | "ai_score" (pro). Defaults to "market_cap", except the "high_conviction" preset defaults to "ai_score" (the dimension it's filtering by) unless you explicitly pass a different sort_by. Sorting by rating/ai_score silently falls back to market_cap on free/guest.
sort_dirNoSort direction: "asc" | "desc" (default "desc").desc
sma_trendNo"above_200" (price above 200-day MA) | "below_200".
min_volumeNoMinimum daily volume, e.g. 1000000.
macd_signalNo"positive" (MACD line above signal) | "negative".
max_perf_1dNoMaximum 1-day performance %.
min_perf_1dNoMinimum 1-day performance %, e.g. min_perf_1d=2.0 = up 2%+ today.
min_ai_scoreNoMinimum AI score, 0-100 - pro tier only (silently ignored for free). Gates on the AI research composite ai_score, same 0-100 scale and bands as signal_score but a separate score (per-stock AI summary strength, not a directional signal).
analyst_ratingNoFilter by analyst consensus rating: "strong_buy" | "buy" | "hold" | "sell" | "strong_sell".
max_pe_forwardNoMaximum forward P/E, e.g. 20 for a value screen.
max_market_cap_bNoMaximum market cap in billions of US dollars (compared against market_cap_usd).
min_market_cap_bNoMinimum market cap in billions of US dollars (compared against market_cap_usd, so non-USD listings are converted first).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / max_market_cap_b / description
      Previous value: -"Maximum market cap in billions of dollars."New value: +"Maximum market cap in billions of US dollars (compared against market_cap_usd)."
    • changedInput schema / properties / min_market_cap_b / description
      Previous value: -"Minimum market cap in billions of dollars."New value: +"Minimum market cap in billions of US dollars (compared against market_cap_usd, so non-USD listings are converted first)."
  2. Changed18 schema fields changed
    • addedInput schema / properties / analyst_rating / description
      Added value: +"Filter by analyst consensus rating: \"strong_buy\" | \"buy\" | \"hold\" | \"sell\" | \"strong_sell\"."
    • addedInput schema / properties / country / description
      Added value: +"Filter by country, e.g. \"United States\", \"Germany\"."
    • addedInput schema / properties / limit / description
      Added value: +"Max results to return, 1-25 (default 20). Each returned stock counts as one call toward your daily limit."
    • addedInput schema / properties / macd_signal / description
      Added value: +"\"positive\" (MACD line above signal) | \"negative\"."
    • addedInput schema / properties / max_market_cap_b / description
      Added value: +"Maximum market cap in billions of dollars."
    • addedInput schema / properties / max_pe_forward / description
      Added value: +"Maximum forward P/E, e.g. 20 for a value screen."
    • addedInput schema / properties / max_perf_1d / description
      Added value: +"Maximum 1-day performance %."
    • addedInput schema / properties / max_rsi / description
      Added value: +"Maximum RSI bound (e.g. max_rsi=30 = oversold)."
    • addedInput schema / properties / min_ai_score / description
      Added value: +"Minimum AI score, 0-100 — pro tier only (silently ignored for free). Gates on stock_ai_summary.py's own composite ai_score, same 0-100 scale/band convention as signals.signal_score but a distinct field/pipeline (per-stock AI summary confidence, not a directional trade idea). Renamed 2026-08-24 from the retired 0-10 min_flag_score."
    • addedInput schema / properties / min_market_cap_b / description
      Added value: +"Minimum market cap in billions of dollars."
    • addedInput schema / properties / min_perf_1d / description
      Added value: +"Minimum 1-day performance %, e.g. min_perf_1d=2.0 = up 2%+ today."
    • addedInput schema / properties / min_rsi / description
      Added value: +"Minimum RSI bound (e.g. min_rsi=70 = overbought)."
    • addedInput schema / properties / min_volume / description
      Added value: +"Minimum daily volume, e.g. 1000000."
    • addedInput schema / properties / preset / description
      Added value: +"\"oversold\" | \"overbought\" | \"momentum\" | \"high_conviction\" (pro only). oversold = RSI<=35 + above SMA200; overbought = RSI>=65; momentum = RSI 50-70, above SMA200, up 0.5%+ today; high_conviction = ai_score>=70."
    • addedInput schema / properties / sector / description
      Added value: +"Filter by sector, e.g. \"Technology\", \"Healthcare\", \"Financial Services\"."
    • addedInput schema / properties / sma_trend / description
      Added value: +"\"above_200\" (price above 200-day MA) | \"below_200\"."
    • addedInput schema / properties / sort_by / description
      Added value: +"\"market_cap\" | \"rsi\" | \"perf_1d\" | \"volume\" | \"analyst_rating\" | \"rating\" | \"ai_score\" (pro). Defaults to \"market_cap\", except the \"high_conviction\" preset defaults to \"ai_score\" (the dimension it's filtering by) unless you explicitly pass a different sort_by. Sorting by rating/ai_score silently falls back to market_cap on free/guest."
    • addedInput schema / properties / sort_dir / description
      Added value: +"Sort direction: \"asc\" | \"desc\" (default \"desc\")."
  3. Changed2 schema fields changed
    • addedInput schema / properties / min_ai_score
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • removedInput schema / properties / min_flag_score
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null
      -}
  4. Changed3 schema fields changed
    • addedInput schema / properties / sort_by / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / sort_by / default
      Previous value: -"market_cap"New value: +null
    • removedInput schema / properties / sort_by / type
      Removed value: -"string"
  5. Changed3 schema fields changed
    • addedInput schema / properties / analyst_rating
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedInput schema / properties / country
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedInput schema / properties / min_volume
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
  6. Added

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources