Skip to main content
Glama

Stock Screener

ScreenStocks
Read-only

Screen listed stocks with optional min/max bounds for price, market cap, institutional ownership, 13F holder signals (conviction, crowding, private-fund adviser ownership, active holders' share change, holder tenure and price versus the holders' estimated cost), short data, insider activity, valuation, growth, margins, liquidity and earnings. Exact sector, industry, covered-index membership and going-concern filters are also available. A stock missing a bounded metric is excluded. Results use the requested sort (market cap descending by default), are paged, and include each dataset's vintage. Filtering or sorting on a fundamental metric adds that metric to the result table. US listings by default; pass market to screen European, Chinese, Hong Kong, Japanese or Canadian listings.

Input Schema

NameRequiredDescriptionDefault
pageNoResult page (default 1) — combine with maxResults to walk past the first page of a large match set.
indexNoKeep only members of one covered index, by slug or name (sp-500, S&P 500, nasdaq-100, Russell 2000). An unknown name returns the accepted list.
maxPeNoMaximum trailing-twelve-month price-to-earnings ratio (e.g. 15 for value screens).
minPeNoMinimum trailing-twelve-month price-to-earnings ratio.
marketNoListing markets as ISO country codes, comma-separated (e.g. GB,FR or CN,HK), or 'all' for every covered market. Default US. A non-US row's ticker is a qualified MIC:TICKER symbol (e.g. XPAR:AIR) that the portfolio tools and the price, financial, earnings-call, guidance, debt and estimate tools accept; its price and market cap are USD at the official exchange rate, with the traded close in its own currency beside the price. Non-US rows carry identity, price and market cap only.
sectorNoExact sector name (e.g. Technology, Healthcare). An unknown name returns the accepted list.
sortByNoSort key: marketcap, ticker, name, price, filers, filerdelta, sipct, dtc, squeeze, sentiment, insiderbuy, pe, divyield, revgrowth, grossmargin, dollarvol, netincome, instown, conv, crowd, pfown, actlfl, tenure or costgap. Default marketcap. An unknown key is rejected, never silently ignored.marketcap
tickersNoOptional list of up to 200 tickers to restrict the screen to, for scoring stocks the user already holds or follows instead of searching the whole market. Every other bound still applies and sortBy still orders the result. Class-share dots (BRK.B) resolve to the listed form, a secondary listing resolves to its issuer, and any symbol outside the covered universe is named back to you.
industryNoExact industry name (e.g. Semiconductors). Prefer sector for broad groups.
maxPriceNoMaximum share price in dollars.
minPriceNoMinimum share price in dollars.
maxResultsNoMaximum rows to return (default 50; clamped to 1-200).
maxCrowdingNoMaximum crowding in percent of shares outstanding.
minCrowdingNoMinimum crowding: shares held by high-turnover 13F filers and private-fund advisers, in percent of shares outstanding.
maxMarketCapNoMaximum market capitalization in dollars.
maxNetIncomeNoMaximum trailing-twelve-month net income in dollars.
minMarketCapNoMinimum market capitalization in dollars.
minNetIncomeNoMinimum trailing-twelve-month net income in dollars (0 keeps profitable companies only).
maxFilerCountNoMaximum number of 13F institutional filers holding the stock.
maxFilerDeltaNoMaximum quarter-over-quarter change in filer count.
minFilerCountNoMinimum number of 13F institutional filers holding the stock.
minFilerDeltaNoMinimum quarter-over-quarter change in filer count.
sortAscendingNoSort ascending instead of descending.
maxDaysToCoverNoMaximum days to cover.
maxGrossMarginNoMaximum gross margin in percent (0-100).
minDaysToCoverNoMinimum days to cover.
minGrossMarginNoMinimum gross margin in percent (0-100).
maxDollarVolumeNoMaximum trailing-3-month average daily dollar volume in dollars.
maxHolderTenureNoMaximum value-weighted holder tenure in quarters.
maxSqueezeScoreNoMaximum composite short-squeeze score (0-100, peer-relative).
minDollarVolumeNoMinimum trailing-3-month average daily dollar volume in dollars (e.g. 5000000 = $5M/day).
minHolderTenureNoMinimum value-weighted holder tenure in quarters (how long 13F filers have held the stock).
minSqueezeScoreNoMinimum composite short-squeeze score (0-100, peer-relative; higher = more squeeze-prone).
maxDividendYieldNoMaximum trailing dividend yield in percent.
maxNetInsiderBuyNoMaximum net open-market insider buying by officers and directors in dollars over the trailing 90 days.
maxRevenueGrowthNoMaximum revenue growth in percent, latest quarter vs the same quarter a year earlier.
minDividendYieldNoMinimum trailing dividend yield in percent (e.g. 3 = 3%).
minNetInsiderBuyNoMinimum net open-market insider buying by officers and directors in dollars over the trailing 90 days.
minRevenueGrowthNoMinimum revenue growth in percent, latest quarter vs the same quarter a year earlier.
maxConvictionShareNoMaximum conviction share in percent.
minConvictionShareNoMinimum conviction share: percent of the stock's 13F filers holding it among their ten largest positions.
maxEstimatedCostGapNoMaximum quarter-end price versus the holders' estimated average cost, in percent.
maxInsiderSentimentNoMaximum composite insider-sentiment score (0-100, peer-relative).
minEstimatedCostGapNoMinimum quarter-end price versus the 13F holders' ESTIMATED average cost, in percent (negative = holders sit on an estimated loss).
minInsiderSentimentNoMinimum composite insider-sentiment score (0-100, peer-relative; higher = more aggressive insider accumulation).
hasGoingConcernDoubtNoTrue keeps only companies whose latest filing states unalleviated going-concern doubt; false keeps only companies without the flag.
maxActiveHolderChangeNoMaximum like-for-like share change of actively managed 13F holders, in percent.
minActiveHolderChangeNoMinimum like-for-like share change of actively managed 13F holders over the quarter, in percent (positive = adding).
maxPrivateFundOwnershipNoMaximum private-fund adviser ownership in percent of shares outstanding.
maxShortInterestPercentNoMaximum short interest as a percent of shares outstanding (0-100).
minPrivateFundOwnershipNoMinimum ownership by 13F filers that advise private funds (Form ADV), in percent of shares outstanding.
minShortInterestPercentNoMinimum short interest as a percent of shares outstanding (0-100).
maxInstitutionalOwnershipNoMaximum institutional ownership in percent.
minInstitutionalOwnershipNoMinimum institutional ownership: 13F shares held over shares outstanding, in percent (overlapping filings can exceed 100).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed15 schema fields changed
    • addedInput schema / properties / maxActiveHolderChange
      Added value: +{
      +  "default": null,
      +  "description": "Maximum like-for-like share change of actively managed 13F holders, in percent.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / maxConvictionShare
      Added value: +{
      +  "default": null,
      +  "description": "Maximum conviction share in percent.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / maxCrowding
      Added value: +{
      +  "default": null,
      +  "description": "Maximum crowding in percent of shares outstanding.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / maxEstimatedCostGap
      Added value: +{
      +  "default": null,
      +  "description": "Maximum quarter-end price versus the holders' estimated average cost, in percent.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / maxHolderTenure
      Added value: +{
      +  "default": null,
      +  "description": "Maximum value-weighted holder tenure in quarters.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / maxInstitutionalOwnership
      Added value: +{
      +  "default": null,
      +  "description": "Maximum institutional ownership in percent.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / maxPrivateFundOwnership
      Added value: +{
      +  "default": null,
      +  "description": "Maximum private-fund adviser ownership in percent of shares outstanding.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / minActiveHolderChange
      Added value: +{
      +  "default": null,
      +  "description": "Minimum like-for-like share change of actively managed 13F holders over the quarter, in percent (positive = adding).",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / minConvictionShare
      Added value: +{
      +  "default": null,
      +  "description": "Minimum conviction share: percent of the stock's 13F filers holding it among their ten largest positions.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / minCrowding
      Added value: +{
      +  "default": null,
      +  "description": "Minimum crowding: shares held by high-turnover 13F filers and private-fund advisers, in percent of shares outstanding.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / minEstimatedCostGap
      Added value: +{
      +  "default": null,
      +  "description": "Minimum quarter-end price versus the 13F holders' ESTIMATED average cost, in percent (negative = holders sit on an estimated loss).",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / minHolderTenure
      Added value: +{
      +  "default": null,
      +  "description": "Minimum value-weighted holder tenure in quarters (how long 13F filers have held the stock).",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / minInstitutionalOwnership
      Added value: +{
      +  "default": null,
      +  "description": "Minimum institutional ownership: 13F shares held over shares outstanding, in percent (overlapping filings can exceed 100).",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / minPrivateFundOwnership
      Added value: +{
      +  "default": null,
      +  "description": "Minimum ownership by 13F filers that advise private funds (Form ADV), in percent of shares outstanding.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedInput schema / properties / sortBy / description
      Previous value: -"Sort key: marketcap, ticker, name, price, filers, filerdelta, sipct, dtc, squeeze, sentiment, insiderbuy, pe, divyield, revgrowth, grossmargin, dollarvol or netincome. Default marketcap. An unknown key is rejected, never silently ignored."New value: +"Sort key: marketcap, ticker, name, price, filers, filerdelta, sipct, dtc, squeeze, sentiment, insiderbuy, pe, divyield, revgrowth, grossmargin, dollarvol, netincome, instown, conv, crowd, pfown, actlfl, tenure or costgap. Default marketcap. An unknown key is rejected, never silently ignored."
  2. Changed1 schema field changed
    • changedInput schema / properties / market / description
      Previous value: -"Listing markets as ISO country codes, comma-separated (e.g. GB,FR or CN,HK), or 'all' for every covered market. Default US. A non-US row's ticker is a qualified MIC:TICKER symbol (e.g. XPAR:AIR) that AddPortfolioLot, WatchInstrument and UnwatchInstrument accept and the other tools do not; its price and market cap are USD at the official exchange rate, with the traded close in its own currency beside the price. Non-US rows carry identity, price and market cap only."New value: +"Listing markets as ISO country codes, comma-separated (e.g. GB,FR or CN,HK), or 'all' for every covered market. Default US. A non-US row's ticker is a qualified MIC:TICKER symbol (e.g. XPAR:AIR) that the portfolio tools and the price, financial, earnings-call, guidance, debt and estimate tools accept; its price and market cap are USD at the official exchange rate, with the traded close in its own currency beside the price. Non-US rows carry identity, price and market cap only."
  3. Changed1 schema field changed
    • changedInput schema / properties / market / description
      Previous value: -"Listing markets as ISO country codes, comma-separated (e.g. GB,FR or CN,HK), or 'all' for every covered market. Default US. A non-US row's ticker is a qualified MIC:TICKER symbol (e.g. XPAR:AIR) that the other tools do not accept; its price and market cap are USD at the official exchange rate, with the traded close in its own currency beside the price. Non-US rows carry identity, price and market cap only."New value: +"Listing markets as ISO country codes, comma-separated (e.g. GB,FR or CN,HK), or 'all' for every covered market. Default US. A non-US row's ticker is a qualified MIC:TICKER symbol (e.g. XPAR:AIR) that AddPortfolioLot, WatchInstrument and UnwatchInstrument accept and the other tools do not; its price and market cap are USD at the official exchange rate, with the traded close in its own currency beside the price. Non-US rows carry identity, price and market cap only."
  4. Changed2 schema fields changed
    • changedInput schema / properties / maxNetInsiderBuy / description
      Previous value: -"Maximum net insider buying in dollars over the trailing 90 days."New value: +"Maximum net open-market insider buying by officers and directors in dollars over the trailing 90 days."
    • changedInput schema / properties / minNetInsiderBuy / description
      Previous value: -"Minimum net insider buying in dollars over the trailing 90 days."New value: +"Minimum net open-market insider buying by officers and directors in dollars over the trailing 90 days."
  5. Changed1 schema field changed
    • addedInput schema / properties / market
      Added value: +{
      +  "default": null,
      +  "description": "Listing markets as ISO country codes, comma-separated (e.g. GB,FR or CN,HK), or 'all' for every covered market. Default US. A non-US row's ticker is a qualified MIC:TICKER symbol (e.g. XPAR:AIR) that the other tools do not accept; its price and market cap are USD at the official exchange rate, with the traded close in its own currency beside the price. Non-US rows carry identity, price and market cap only.",
      +  "type": "string"
      +}
  6. Changed1 schema field changed
    • addedInput schema / properties / tickers
      Added value: +{
      +  "default": null,
      +  "description": "Optional list of up to 200 tickers to restrict the screen to, for scoring stocks the user already holds or follows instead of searching the whole market. Every other bound still applies and sortBy still orders the result. Class-share dots (BRK.B) resolve to the listed form, a secondary listing resolves to its issuer, and any symbol outside the covered universe is named back to you.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  7. Changed1 schema field changed
    • addedInput schema / properties / index
      Added value: +{
      +  "default": null,
      +  "description": "Keep only members of one covered index, by slug or name (sp-500, S&P 500, nasdaq-100, Russell 2000). An unknown name returns the accepted list.",
      +  "type": "string"
      +}
  8. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already mark it read-only and non-destructive; the description adds substantial behavior beyond that: missing bounded metrics are excluded, results are paged and sorted with market cap descending default, each dataset's vintage is included, filtering/sorting adds that metric to the table, and non-US rows carry only identity/price/market cap.

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 dense but well front-loaded for a 54-parameter screener. Every sentence conveys a distinct behavioral or scoping rule, and there is no redundant restatement of schema details.

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?

Given the tool's complexity and the schema's full parameter coverage, the description is complete enough for an agent to invoke it correctly. It covers purpose, filter scope, defaults, pagination, sorting, dynamic output columns, vintage information, and market limitations, with no output schema needed.

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%, so the schema already documents all 54 parameters thoroughly. The description adds useful cross-parameter semantics such as exclusion of missing bounded metrics and dynamic result columns, but does not add parameter-level syntax or defaults beyond what the schema provides; baseline 3 is appropriate.

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?

The description opens with a precise verb and resource ('Screen listed stocks') and immediately enumerates the multi-metric filtering scope. It clearly distinguishes this cross-dataset screener from the many single-dataset sibling tools like GetValuationMultiples or GetShortInterest.

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?

It gives clear context for optional min/max bounds, exact sector/industry/index filters, and ticker-restricted screening, plus the default US market and how to switch to other markets. It does not explicitly name sibling alternatives or when-not-to-use conditions, but the intended use is clear.

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.

Directories

Listed in ChatGPT · Equibles

Last observed