Skip to main content
Glama
stockscreen-mcp

stockscreen-mcp

Stock Screener ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿ‡จ๐Ÿ‡ณ ๐Ÿ‡ญ๐Ÿ‡ฐ ๐Ÿ‡ฏ๐Ÿ‡ต ๐Ÿ‡ฐ๐Ÿ‡ท ๐Ÿ‡น๐Ÿ‡ผ ๐Ÿ‡ฎ๐Ÿ‡ณ ๐Ÿ‡ฉ๐Ÿ‡ช ๐Ÿ‡จ๐Ÿ‡ฆ ๐Ÿ‡ธ๐Ÿ‡ฌ ๐Ÿ‡ฒ๐Ÿ‡พ ๐Ÿ‡ฆ๐Ÿ‡บ

Technical and fundamental scans, market breadth, group rankings, theme discovery and AI-assisted research

Scan and track US, Hong Kong, India, Japan, Korea, Taiwan, mainland China A-shares, Germany, Canada, Singapore, Malaysia, and Australia markets.

Live app: Daily โ†’ Scan โ†’ stock detail โ†’ Groups โ†’ RRG โ†’ Stock Matrix ยท Static site on a phone: Daily โ†’ Scan cards โ†’ Breadth โ†’ RRG

Use it without installing

Read-only daily snapshot running on GitHub Pages: xang1234.github.io/stock-screener

Updated daily after market close.

Plain-HTML pages for every scannable stock, the main screens, group rankings and breadth, in all 12 markets: browse by market.

See the Static Site Guide for exactly what works in static mode.

Related MCP server: market-data-mcp

Ask your AI assistant

The same daily data is available to Claude, Cursor, VS Code or any MCP client through stockscreen-mcp. It needs no API keys and no server:

claude mcp add stockscreen -- uvx stockscreen-mcp

Then ask, for example: "Which US stocks pass the Minervini trend template today, and which are in top-20 industry groups?" It covers screens, RS ratings, market health and breadth, and group rankings for all 12 markets.

Features

  • 12-market coverage - exchange calendars, independent data and scans.

  • Multiple screening methodologies - Minervini, CANSLIM, IPO, Volume Breakthrough, etc. with composite scoring.

  • Market Health and Exposure - Market-regime overlay for position sizing and risk posture.

  • Market Breadth - StockBee-style daily movers and trend windows, advance/decline and new-high/new-low health bars, T2108, a benchmark overlay, and a significance heatmap built from one shared calculation layer.

  • Industry groups with Relative Rotation Graph - groups ranked by relative strength with movers (1W/1M/3M/6M) and constituent analysis, plus RRG charts plotting RS-Ratio vs RS-Momentum through (Leading โ†’ Weakening โ†’ Lagging โ†’ Improving). The Matrix tab adds Grid and Clusters layouts colored by 1-day, 1-week, 1-month change, or Stock RS.

  • Watchlists and Themes - RS and price sparklines, multi-period change bars, drag-and-drop folders, and full-screen chart navigation.

  • Theme discovery - AI theme identification from RSS, Twitter/X, and news feeds; tracks trending vs. emerging themes and alerts on momentum shifts.

  • AI research chatbot - LLM powered chatbot with optional web search and persistent conversation history.

  • Operations - startup data bootstrap, runtime status, and Operations console for queues/jobs/telemetry.

  • Options Command Center - opt-in US-only options context for the current top Candidates and Leaders, with focused gamma, volatility, skew, and activity views plus ticker history.

  • Backtest - Backtest page that validates published scan picks and theme alerts against price history.

Market Health and Exposure Market Health and Exposure

Scan results with composite scores, RS sparklines, multi-screener ratings, and classification columns Scan results table

Group relative-strength rankings with movers and the rankings table Group RS: industry rankings, relative-strength statistics, and changes in group rank

Relative Rotation Graph โ€” sector rotation with direction-arrowed weekly tails RRG: sector rotation with direction-arrowed weekly tails; full 197-group scope available from the same view

Stock Matrix Grid colored by one-week change Matrix Grid: sector and IBD industry rows, market-cap columns, and individual stock tiles

Stock Matrix Clusters colored by one-month change *Matrix Clusters: market-cap-sized bubbles with green centers and red perimeters. Both layouts support 1-day, 1-week, 1-month change, and Stock RS in the live app and static site. See the Group Matrix Guide.*

Market Breadth combines advance/decline and new-high/new-low health bars with an SPY overlay and a color-coded history table for primary, secondary, and context indicators.

Market Breadth overview with health bars and SPY overlay

Market Breadth recent-history heatmap

Options Command Center โ€” current liquid Candidates and Leaders ranked by estimated gamma exposure *Options Command Center: switch between Gamma, Volatility, Skew, and Activity views without scanning an entire option universe. See the Options Command Center Guide.*

Typical flow: sign in โ†’ bootstrap markets โ†’ review the Daily dashboard โ†’ run a Scan โ†’ drill into a stock โ†’ monitor Operations โ†’ validate outcomes on Backtest. For the full page-by-page tour, see the Live App Guide.

Quickstart (Docker)

Needs Docker and Python 3.11+. One command pulls the published images that match your checkout, writes .env.docker with a generated login password, and waits until every service is healthy:

git clone https://github.com/xang1234/stock-screener.git
cd stock-screener
scripts/quickstart.sh
# Open the printed URL (http://localhost) and log in with the printed password

Add markets or change the port with ENABLED_MARKETS=US,HK FRONTEND_PORT=8080 scripts/quickstart.sh. Re-run it after git pull to upgrade. For the chatbot, add an LLM key such as GROQ_API_KEY to .env.docker and re-run. CI runs this same install against each published main build and release tag, and only creates a GitHub Release once it passes.

On first launch the app opens to a first-run bootstrap screen โ€” no pre-seeded database needed. Pick one primary market for startup defaults and optionally enable more to hydrate in the background, then start. Enabling many markets at once noticeably slows the first run, so start with one and add the rest after the workspace is ready.

Configuration

Scanning and all core features work with no API keys. The AI chatbot requires at least one LLM provider key.

Provider

Env Var

Free Tier

Notes

Groq

GROQ_API_KEY

Yes

Default for chatbot and research

Gemini

GEMINI_API_KEY

Yes

Extraction fallback

Minimax

MINIMAX_API_KEY

No

Primary theme-extraction provider

Z.AI

ZAI_API_KEY

No

Optional alternate provider

Optional web-search keys (TAVILY_API_KEY, SERPER_API_KEY) are read by the Hermes assistant sidecar; the backend does not read them. Full reference: Environment Variables.

Application pages

Route

Page

Description

/

Daily

Dashboard: Daily Snapshot, Key Markets, Themes, Watchlists, Stockbee MM

/scan

Bulk Scanner

Multi-market scanning with 80+ filters, per-market badges, CSV export

/breadth

Market Breadth

StockBee-style breadth indicators and trends

/groups

Group Rankings

IBD industry group rankings, movers, RRG, and stock Matrix (Grid/Clusters)

/validation

Backtest

Deterministic validation of scan picks and theme alerts

/themes

Themes

Feature-gated AI theme discovery, review queues, pipeline controls

/chatbot

Assistant

Feature-gated AI research assistant with web search and watchlist actions

/stocks/:ticker

Stock Detail

Charts, fundamentals, themes, watchlist actions, validation history

/operations

Operations

Runtime activity, queue/job inventory, telemetry alerts, safe job controls

/options

Options Command Center

Feature-gated US Candidate/Leader options analytics; also available read-only when advertised by the static snapshot

/options/:symbol

Options Detail

Strike structure, model-estimate GEX, IV smile, and discontinuous observed history for one current symbol

Tech stack

Backend: FastAPI, SQLAlchemy, Alembic, Celery, Redis, PostgreSQL Frontend: React 18, Vite, Material-UI, TanStack Query / Table, Recharts Data: yfinance, Finviz, SEC EDGAR, official X API (optional)

Documentation

Guide

Audience

Live App Guide

Users of the server-backed live application

Group Matrix Guide

Grid/Clusters, return periods, stock RS, data coverage, and live/static delivery

Operations Guide

Live-app operators and maintainers

Static Site Guide

Static demo users and maintainers

Options Command Center

Understanding the options cohort, metrics, history, and limitations

Docker Deployment

Server, homelab, VPS users

Development Guide

Contributors, developers

Architecture

Understanding the system design

Environment Variables

Configuration reference

MCP Integration

AI copilot workflows (12 tools via stdio / Streamable HTTP)

Backend API & Architecture

Backend developers

Frontend Components

Frontend developers

Contributing

Getting started as a contributor

Disclaimer

This software is for educational and research purposes only. It is not financial advice. Always do your own research and consult a licensed financial advisor before making investment decisions.

License

Released under the Apache License 2.0.

Available Tools

6 tools
get_stockA
Read-only

Everything the daily scan knows about one stock: RS ratings, stage, scores, growth, group rank, setup/pattern fields, and which preset screens it currently passes.

NameRequiredDescriptionDefault
marketNoMarket code, e.g. US, HK, JP, IN, DE. See list_markets.US
symbolYesTicker as listed in that market, e.g. NVDA, 0700.HK, 7203.T.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds genuinely new behavioral context: the data is sourced from a 'daily scan', which signals freshness/staleness characteristics, plus that the response includes current screen-pass status. It stops short of stating refresh timing or caching.

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?

A single dense sentence with the subject ('one stock') up front and the payload enumerated after the colon. No filler, no restatement of the tool name.

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?

An output schema exists, so explaining return values is optional; the description instead usefully previews them. For a read-only two-parameter getter this covers what an agent needs, with only the routing question (when to prefer a screen or market view) left open.

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% and both parameters carry examples and a pointer to list_markets, so the schema does the heavy lifting. The description adds no parameter-level detail (no mention of the market dimension or its US default), which is acceptable at this coverage level but earns no bonus.

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 names a single specific resource ('one stock') and enumerates the exact payload an agent can expect (RS ratings, stage, scores, growth, group rank, setup/pattern fields, passing preset screens). That makes it clearly distinguishable in spirit from aggregate siblings like market_overview and group_rankings, though it never names or contrasts them directly. Strong but not sibling-differentiating.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no condition selecting this over run_screen or market_overview, and no note that list_markets should be consulted for valid market codes. The single-stock framing implies the use case, but nothing is stated explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

group_rankingsB
Read-only

IBD-style industry group rankings by relative strength, with 1W/1M/3M/6M rank changes and this week's biggest movers. Pass a group name for its rank history and strongest stocks.

NameRequiredDescriptionDefault
groupNoIndustry group name for its detail and constituents.
limitNo
marketNoMarket code, e.g. US, HK, JP, IN, DE. See list_markets.US

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds analytic context (relative strength, 1W/1M/3M/6M rank change windows, weekly movers, constituent detail), but says nothing about data freshness, rate limits, or how the ranking universe is derived.

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?

Two tight sentences with no filler; the analytical scope is front-loaded and the group-passing instruction follows. Slightly dense/run-on in the first sentence but well structured overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers ranking content and the group-detail mode adequately. However, the 'limit' parameter is completely undocumented and no relationship to sibling tools is given, leaving gaps for a 3-param listing tool.

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 67% and the description adds real meaning only for 'group' (its rank history and strongest stocks), which extends the schema's terse 'detail and constituents'. The 'limit' parameter is undocumented in both schema and description, and 'market' is already covered by the schema, so the description does not fully compensate for the gap.

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 names a specific analysis (IBD-style industry group rankings by relative strength) plus the timeframes and extras returned, so the resource and verb are unambiguous. It does not differentiate itself from siblings like market_overview or run_screen, which is the only thing keeping it from a 5.

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?

The sentence 'Pass a group name for its rank history and strongest stocks' implicitly tells the agent the two modes of use (list rankings vs. drill into one group), which is useful. There is no explicit when-not-to-use guidance and no sibling alternative is named, so usage remains implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_marketsC
Read-only

Markets in the current publish, with each one's data date, status and published features.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds only the vague scope 'current publish'; it says nothing about pagination, filtering, data freshness guarantees, or what 'published features' actually means.

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?

It is a single short sentence with no filler, which is appropriately sized for a zero-parameter list tool. It reads as a fragment rather than a front-loaded statement of purpose, which slightly weakens the structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. Still, for a tool whose sibling set contains a directly overlapping market_overview, the description omits the routing information an agent needs to choose correctly.

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?

The tool takes zero parameters, so per the rubric the baseline is 4. Nothing in the description is needed to disambiguate inputs, and no misleading parameter claims are made.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (markets) and scopes it to the 'current publish', and lists the fields surfaced (data date, status, published features). However it is a noun phrase with no verb and gives no differentiation from siblings like market_overview or list_screens, leaving the agent to infer that this is a listing tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusions, and no mention of alternatives such as market_overview, which overlaps heavily with this tool. The agent gets no signal about which sibling to pick.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_screensA
Read-only

Preset screens (Minervini, CANSLIM, VCP, chart patterns, momentum...) with their exact rules.

Pass a screen's id to run_screen.

NameRequiredDescriptionDefault
marketNoMarket code, e.g. US, HK, JP, IN, DE. See list_markets.US

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds that the output includes exact rules per screen and that ids are the handoff key to run_screen, but says nothing about auth, pagination, or catalog size, which is a modest addition over annotations.

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?

Two short sentences with zero filler. The purpose and the id/run_screen handoff are both front-loaded and immediately actionable.

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?

An output schema exists, so the description needn't explain return values, and the catalog-plus-id workflow is fully conveyed. The only minor gap is that market filtering is left entirely to the schema.

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% and the single market parameter is fully documented in the schema (including the pointer to list_markets), so the schema does the heavy lifting. The description mentions no parameters at all, so baseline 3 applies.

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 states the resource concretely โ€” preset screens such as Minervini, CANSLIM, VCP โ€” and adds that each carries its exact rules, so the agent knows it is retrieving a catalog of screening strategies rather than screen results. It doesn't explicitly contrast itself with siblings beyond naming run_screen as the consumer, so it falls short of a 5.

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?

"Pass a screen's id to run_screen" gives the agent a clear two-step workflow: call list_screens to discover ids, then feed them to run_screen. That is real guidance on when this tool is appropriate versus run_screen, though no exclusions or edge cases are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

market_overviewA
Read-only

Market health in one call: exposure score and stance (distribution days, follow-through day, trend), StockBee-style breadth (4% movers, 5/10-day ratios, T2108, 52-week highs/lows), key index/asset moves, and the strongest industry groups.

NameRequiredDescriptionDefault
marketNoMarket code, e.g. US, HK, JP, IN, DE. See list_markets.US

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety and external-data scope are covered. The description adds the content scope of the payload but says nothing about data freshness/delay, caching, or cost โ€” relevant for market data, though not required given the annotations and the output schema.

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?

A single front-loaded sentence with no filler; every clause maps to a returned data category. The parenthetical enumerations are dense but each earns its place by telling the agent what the payload contains.

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?

With an output schema defining the return shape, read-only/open-world annotations covering the safety profile, and a single well-documented optional parameter, the definition is largely sufficient. The missing piece is usage routing โ€” when to prefer this over group_rankings or run_screen โ€” and any note on data recency.

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?

There is one optional parameter (market) with 100% schema description coverage, including a default of 'US' and a pointer to list_markets. The description adds nothing about the parameter, so the baseline 3 applies since the schema carries the semantics.

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?

Names a concrete deliverable (a market-health snapshot) and enumerates the specific content it aggregates: exposure score/stance, breadth metrics, index moves, and leading industry groups. An agent can tell it apart from get_stock or run_screen, though no sibling is named explicitly to sharpen the boundary.

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?

The phrase 'in one call' implies this is the consolidated first-stop for market context, which is a weak usage signal. There is no explicit when-to-use statement, no prerequisites, and no named alternative (e.g., group_rankings for drill-down).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_screenA
Read-only

Run a preset screen and/or custom filters over a market's full daily scan (every listed stock).

A preset matches exactly the stocks the project's website shows for it. Filters are combined with AND, including with the preset.

NameRequiredDescriptionDefault
limitNo
marketNoMarket code, e.g. US, HK, JP, IN, DE. See list_markets.US
screenNoPreset id from list_screens, e.g. minervini, canslim, vcp.
filtersNoExtra conditions, all of which must hold.
sort_byNoField to sort by; defaults to the screen's own sort.
descendingNoDirection for sort_by; ignored without sort_by.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds real behavioral context beyond that: the scan covers every listed stock daily, a preset reproduces exactly what the website shows, and filters AND together with the preset. It omits pagination/limit behavior and result shape, though an output schema exists.

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?

Three short sentences, front-loaded with the core action and scope, and each sentence carries information. The parenthetical on 'every listed stock' and the website-fidelity sentence are justified, though slightly more text than strictly needed.

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?

With six optional parameters, an output schema, and read-only annotations, the description supplies the missing conceptual glue (preset vs filter, AND semantics, scan scope). The main gap is routing guidance among siblings and any note on the 1-100 limit default of 25, which the agent must read from the schema.

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 83%, so the baseline is 3, but the description genuinely adds semantics the schema does not: filters are AND-combined and are also ANDed with the preset. It does not explain limit, sort_by inheritance from the preset, or descending beyond what the schema says.

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?

States a specific verb+resource ('Run a preset screen and/or custom filters') and scopes it to a market's full daily scan over every listed stock, which separates it from list_screens (preset ids) and get_stock (single symbol). It stops short of naming any sibling explicitly, so it is clear but not sibling-differentiated by name.

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?

'and/or' plus 'Filters are combined with AND, including with the preset' implies both are optional and combinable, and 'the project's website shows for it' hints at what a preset returns. However, there is no explicit when-to-use guidance, no statement of prerequisites (e.g. that screen ids come from list_screens), and no exclusions versus market_overview or group_rankings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updates
    • First observedget_stock
    • First observedgroup_rankings
    • First observedlist_markets
    • First observedlist_screens
    • First observedmarket_overview
    • First observedrun_screen

TDQS

A3.7/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a clearly distinct resource: market-level health (market_overview), stock screening (run_screen), single-stock detail (get_stock), group rankings (group_rankings), and two metadata enumerators. The list_screens/run_screen relationship is explicitly documented (pass the screen id to run_screen), preventing confusion.

Naming Consistency4/5

All names use snake_case and are highly readable. get_stock, run_screen, list_markets, and list_screens follow a verb_noun pattern, while market_overview and group_rankings are noun phrases, a minor deviation but internally consistent.

Tool Count5/5

Six tools is well-scoped for a stock screening server, with each tool earning its place across market, screen, stock, group, and metadata layers. No redundancy or bloat.

Completeness4/5

The surface covers the core workflow well: discover markets and screens, run screens, inspect individual stocks, and view market/group context. Minor gaps exist (no watchlist or portfolio tracking, no historical time-series beyond rank changes), but core screening needs are covered.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides access to historical stock market data from US, UK, Russian, Turkish, and Hong Kong exchanges, including company profiles, market metrics, sector performance, rankings, and visualization data for financial analysis.
    9
    8 npm
    LGPL 3.0
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Real-time financial market data MCP server. Stocks, crypto, technicals, sentiment, FDA calendar. No API keys required.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Exposes global market breadth, volume, RSI, volatility, and sentiment for 12 major equity indices (US + Asia) via 5 tools.
    -