MCP server: One MCP server.

Stock Screener

@xang1234MCP server · External

Daily stock screens, RS ratings, market breadth and group rankings for 12 markets. No API keys.

v0.1.0Apache-2.0Python
Freeno charge per call

Runs on your machine from its package; the steps are below.

Live app tour — Daily Snapshot, multi-screener Scan with stock detail, Group rankings, the Relative Rotation Graph, and the Stock Matrix
From the README · 1 of 8

What it does

  1. Reads
  2. Writes
  3. High impact

Not assessed yet.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

PyPIstockscreen-mcpv0.1.0

Run

uvx stockscreen-mcp

MCP client config

{
  "mcpServers": {
    "stock-screener": {
      "command": "uvx",
      "args": [
        "stockscreen-mcp"
      ]
    }
  }
}
README6 min read

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 tour — Daily Snapshot, multi-screener Scan with stock detail, Group rankings, the Relative Rotation Graph, and the Stock Matrix Phone tour of the static site — Daily Snapshot, Scan stock cards with a chart, Market Breadth, and the sector Relative Rotation Graph, using the bottom tab bar

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.

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:

bash
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:

bash
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.

ProviderEnv VarFree TierNotes
GroqGROQ_API_KEYYesDefault for chatbot and research
GeminiGEMINI_API_KEYYesExtraction fallback
MinimaxMINIMAX_API_KEYNoPrimary theme-extraction provider
Z.AIZAI_API_KEYNoOptional alternate provider

Optional web-search keys (TAVILY_API_KEY, SERPER_API_KEY) enable the chatbot's research mode. Full reference: Environment Variables.

Application pages

RoutePageDescription
/DailyDashboard: Daily Snapshot, Key Markets, Themes, Watchlists, Stockbee MM
/scanBulk ScannerMulti-market scanning with 80+ filters, per-market badges, CSV export
/breadthMarket BreadthStockBee-style breadth indicators and trends
/groupsGroup RankingsIBD industry group rankings, movers, RRG, and stock Matrix (Grid/Clusters)
/validationBacktestDeterministic validation of scan picks and theme alerts
/themesThemesFeature-gated AI theme discovery, review queues, pipeline controls
/chatbotAssistantFeature-gated AI research assistant with web search and watchlist actions
/stocks/:tickerStock DetailCharts, fundamentals, themes, watchlist actions, validation history
/operationsOperationsRuntime activity, queue/job inventory, telemetry alerts, safe job controls
/optionsOptions Command CenterFeature-gated US Candidate/Leader options analytics; also available read-only when advertised by the static snapshot
/options/:symbolOptions DetailStrike 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, Alpha Vantage, SEC EDGAR, official X API (optional)

Documentation

GuideAudience
Live App GuideUsers of the server-backed live application
Group Matrix GuideGrid/Clusters, return periods, stock RS, data coverage, and live/static delivery
Operations GuideLive-app operators and maintainers
Static Site GuideStatic demo users and maintainers
Options Command CenterUnderstanding the options cohort, metrics, history, and limitations
Docker DeploymentServer, homelab, VPS users
Development GuideContributors, developers
ArchitectureUnderstanding the system design
Environment VariablesConfiguration reference
MCP IntegrationAI copilot workflows (12 tools via stdio / Streamable HTTP)
Backend API & ArchitectureBackend developers
Frontend ComponentsFrontend developers
ContributingGetting 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.