stockmarketscan avatar

StockMarketScan

stockmarketscan/mcp-server

Connects Claude or Cursor to StockMarketScan's API with 18 tools spanning screeners, chart patterns, options flow, and market momentum. You can ask which stocks appear in multiple screeners, pull options flow timelines, find stocks forming cup-and-handle patterns, or generate composite reports with technical and flow data in one shot. Requires a Basic or Pro plan at stockmarketscan.com and passes your API key via header. Options flow tools need the add-on. Useful when you want to filter, cross-reference, or research US equities inside your editor without switching to a web dashboard. Runs over SSE, installs via npx and mcp-remote, or you can self-host with Docker.

tools
20
auth
Secret needed
transport
SSE
last updated
Apr 9, 2026

Install

From registry metadata
$ npx add-mcp https://mcp.stockmarketscan.com/mcp --name stockmarketscan --transport sse --header 'X-API-Key: ${X_API_KEY}'

Run in your terminal. add-mcp asks which agents to add it to, then asks for each value it needs. Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport sse stockmarketscan https://mcp.stockmarketscan.com/mcp --header 'X-API-Key: YOUR_X_API_KEY'

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 20 tools

Verified live against the running server on Nov 6, 2026.

pingMinimal sanity check. Returns { status, version, timestamp, cache_size }. No auth needed. Use this to verify the MCP server is reachable and responsive.

Minimal sanity check. Returns { status, version, timestamp, cache_size }. No auth needed. Use this to verify the MCP server is reachable and responsive.

No parameters. Call it with no arguments.

list_screenersReturn metadata for all 24 stock screeners on the platform: slug, name, description, category, tier, whether the caller can read it, and its row fields with their JSON value types. Use this to discover which screeners are available before calling get_screener_data. Call this o...

Return metadata for all 24 stock screeners on the platform: slug, name, description, category, tier, whether the caller can read it, and its row fields with their JSON value types. Use this to discover which screeners are available before calling get_screener_data. Call this o...

No parameters. Call it with no arguments.

get_screener_dataReturn the rows of a single stock screener for its latest snapshot. Use this when the user asks about a specific screener like 'hot prospects' or 'golden cross'. Common slugs: hot-prospects, golden-cross, death-cross, rsi-oversold, rsi-overbought, defensive-stocks, dividend-pr...3 params

Return the rows of a single stock screener for its latest snapshot. Use this when the user asks about a specific screener like 'hot prospects' or 'golden cross'. Common slugs: hot-prospects, golden-cross, death-cross, rsi-oversold, rsi-overbought, defensive-stocks, dividend-pr...

Parameters* required
cursorstring
meta.pagination.next_cursor from the previous page. Omit for the first page.
limitinteger
Rows per page (max 500)default: 50
slug*string
The screener slug, e.g. 'hot-prospects', 'golden-cross', 'rsi-oversold'
search_stocks_in_screenersFind stocks that appear in multiple screeners simultaneously. Useful for finding overlap across screeners. Use when the user asks 'which stocks are in both X and Y' or 'find stocks in 3+ bullish screeners'. Returns { screeners_queried, mode, count, symbols: [{symbol, screeners...3 params

Find stocks that appear in multiple screeners simultaneously. Useful for finding overlap across screeners. Use when the user asks 'which stocks are in both X and Y' or 'find stocks in 3+ bullish screeners'. Returns { screeners_queried, mode, count, symbols: [{symbol, screeners...

Parameters* required
limitinteger
default: 50
modestring
intersection = stocks in ALL screeners; union = stocks in ANY screenerone of intersection · uniondefault: intersection
screener_slugs*array
List of screener slugs to query (1-24)
get_chart_patternsReturn all chart patterns currently detected for a single stock symbol. Detectable pattern ids: double_top, double_bottom, triple_top, triple_bottom, head_shoulders, inv_head_shoulders, round_bottom, cup_handle, asc_triangle, desc_triangle, sym_triangle, channel_up, channel_do...2 params

Return all chart patterns currently detected for a single stock symbol. Detectable pattern ids: double_top, double_bottom, triple_top, triple_bottom, head_shoulders, inv_head_shoulders, round_bottom, cup_handle, asc_triangle, desc_triangle, sym_triangle, channel_up, channel_do...

Parameters* required
intervalstring
Chart intervalone of 1d · 1wkdefault: 1d
symbol*string
Stock ticker, e.g. AAPL, TSLA, MSFT
search_patternsFind all stocks across one or more screeners that currently exhibit specific chart patterns. Much faster than calling get_chart_patterns in a loop. Use when the user asks 'which stocks have a cup and handle' or 'find me hot prospects with bullish reversal patterns'. Requires a...4 params

Find all stocks across one or more screeners that currently exhibit specific chart patterns. Much faster than calling get_chart_patterns in a loop. Use when the user asks 'which stocks have a cup and handle' or 'find me hot prospects with bullish reversal patterns'. Requires a...

Parameters* required
intervalstring
Chart intervalone of 1d · 1wkdefault: 1d
limitinteger
Max matching stocks per screener group (default 100)default: 100
pattern_idsarray
Pattern ids to filter by. Empty = all patterns. Valid ids: double_top, double_bottom, triple_top, triple_bottom, head_shoulders, inv_head_shoulders, round_bottom, cup_handle, asc_triangle, desc_tri...
screener_slugs*array
Screener slugs to search within
get_options_flow_overviewReturn the daily options flow table for one trading day: aggregated call/put volume, premium, implied volatility, and consecutive-day streaks for every notable symbol. Use when the user asks 'what's the options flow today' or 'show me the largest premium'. Each row includes ca...4 params

Return the daily options flow table for one trading day: aggregated call/put volume, premium, implied volatility, and consecutive-day streaks for every notable symbol. Use when the user asks 'what's the options flow today' or 'show me the largest premium'. Each row includes ca...

Parameters* required
cursorstring
meta.pagination.next_cursor from the previous page
datestring
Trading day (YYYY-MM-DD). Default = latest available day.
limitinteger
Rows to return (max 500)default: 100
sortstring
Sort order: streak=longest streaks first, volume=highest volume, callput=most extreme C/P, premium=biggest dollarone of streak · volume · callput · premiumdefault: streak
get_options_flow_timelineReturn the historical options flow for a single stock: most recent days first. Use when the user asks 'show me X's options flow history' or 'how long has X been bullish'. Returns { data: [daily rows, newest first], meta: { as_of, pagination: { next_cursor } } }. Tier: Pro only.3 params

Return the historical options flow for a single stock: most recent days first. Use when the user asks 'show me X's options flow history' or 'how long has X been bullish'. Returns { data: [daily rows, newest first], meta: { as_of, pagination: { next_cursor } } }. Tier: Pro only.

Parameters* required
cursorstring
meta.pagination.next_cursor from the previous page
limitinteger
Days of history (max 365)default: 60
symbol*string
Stock ticker
get_options_flow_rankedReturn ranked options flow records for a date range: the records that stand out by long consecutive-day streaks, large premium, and screener confluence. Each record includes data-only performance tracking measured from a realistic entry reference: entry_price = open of the tra...4 params

Return ranked options flow records for a date range: the records that stand out by long consecutive-day streaks, large premium, and screener confluence. Each record includes data-only performance tracking measured from a realistic entry reference: entry_price = open of the tra...

Parameters* required
cursorstring
meta.pagination.next_cursor from the previous page
date_fromstring
Start date (YYYY-MM-DD)
date_tostring
End date (YYYY-MM-DD)
limitinteger
Max records returned (default 500)default: 500
get_options_flow_sentimentReturn daily options market sentiment: one row per trading day. Combines NYSE/NASDAQ market breadth (advance/decline + new highs/lows) with the market-wide call/put ratio. Each row includes market_breadth_score (0-100), market_call_put_ratio, the daily filter context (bullish_...3 params

Return daily options market sentiment: one row per trading day. Combines NYSE/NASDAQ market breadth (advance/decline + new highs/lows) with the market-wide call/put ratio. Each row includes market_breadth_score (0-100), market_call_put_ratio, the daily filter context (bullish_...

Parameters* required
cursorstring
meta.pagination.next_cursor from the previous page
date_fromstring
Start date (YYYY-MM-DD)
date_tostring
End date (YYYY-MM-DD)
get_unusual_options_activityReturn individual options contracts flagged as unusual activity (Vol/OI > 1.5). Each row is one contract, not one stock. Use when the user wants contract-level detail. Filter by symbol, side (call/put/both), minimum vol/oi, minimum premium, or max days to expiration. For aggre...7 params

Return individual options contracts flagged as unusual activity (Vol/OI > 1.5). Each row is one contract, not one stock. Use when the user wants contract-level detail. Filter by symbol, side (call/put/both), minimum vol/oi, minimum premium, or max days to expiration. For aggre...

Parameters* required
cursorstring
meta.pagination.next_cursor from the previous page
limitinteger
default: 300
max_dteinteger
min_premium_usdnumber
default: 25000
min_vol_oinumber
default: 1.5
sidestring
one of call · put · bothdefault: both
symbolstring
Filter to one symbol
get_stock_infoReturn basic metadata for a stock: full company name, exchange, industry, last price, and daily percent change. Use this when you first encounter a symbol and need to identify it. Lighter than get_stock_report (composite) or get_candles (full history). Returns { data: { symbol...1 params

Return basic metadata for a stock: full company name, exchange, industry, last price, and daily percent change. Use this when you first encounter a symbol and need to identify it. Lighter than get_stock_report (composite) or get_candles (full history). Returns { data: { symbol...

Parameters* required
symbol*string
Stock ticker, e.g. AAPL
get_candlesReturn OHLCV price candles for a single stock, oldest first. Use when you need price history to compute indicators or answer 'how much is X up this month'. date is the trading day (YYYY-MM-DD; weekly candles use the Monday). Default range is 6mo. Use larger ranges like '1y' or...3 params

Return OHLCV price candles for a single stock, oldest first. Use when you need price history to compute indicators or answer 'how much is X up this month'. date is the trading day (YYYY-MM-DD; weekly candles use the Monday). Default range is 6mo. Use larger ranges like '1y' or...

Parameters* required
intervalstring
Daily or weekly candlesone of 1d · 1wkdefault: 1d
rangestring
Range: 1d, 5d, 1y, 2y, 5y, max, or {N}mo (1-240)default: 6mo
symbol*string
Stock ticker
search_stocksSearch for stocks by ticker prefix or company name. THE tool to use when the ticker is unknown ('what's the symbol for Palantir?') or ambiguous: resolve the name to a symbol here, then use get_stock_info / get_stock_report with the symbol. No API key required. Returns { data:...2 params

Search for stocks by ticker prefix or company name. THE tool to use when the ticker is unknown ('what's the symbol for Palantir?') or ambiguous: resolve the name to a symbol here, then use get_stock_info / get_stock_report with the symbol. No API key required. Returns { data:...

Parameters* required
limitinteger
Max results (default 10)default: 10
query*string
Symbol prefix or part of the company name, e.g. 'Apple' or 'NVD'
get_stock_reportReturn a comprehensive report on a single stock in one call: metadata, screener appearances, chart patterns, options flow, signal status, price summary, and upcoming earnings. THIS IS THE PREFERRED FIRST TOOL when a user asks about a single stock. It replaces 5-7 separate tool...2 params

Return a comprehensive report on a single stock in one call: metadata, screener appearances, chart patterns, options flow, signal status, price summary, and upcoming earnings. THIS IS THE PREFERRED FIRST TOOL when a user asks about a single stock. It replaces 5-7 separate tool...

Parameters* required
intervalstring
Pattern detection intervalone of 1d · 1wkdefault: 1d
symbol*string
Stock ticker, e.g. AAPL
search_setupsList today's options flow records for one side (bullish or bearish), ranked by a descriptive composite score (strength score + consecutive-day streak + premium size). Use when the user asks which symbols had the most notable options flow today. This is descriptive market data,...2 params

List today's options flow records for one side (bullish or bearish), ranked by a descriptive composite score (strength score + consecutive-day streak + premium size). Use when the user asks which symbols had the most notable options flow today. This is descriptive market data,...

Parameters* required
limitinteger
Max setups to returndefault: 20
sidestring
Side of setups to returnone of bullish · bearishdefault: bullish
get_market_momentumReturn NYSE and NASDAQ market breadth: advancing/declining/unchanged issues, their percentages, and new highs/lows. Use when the user asks 'how's the market today' or 'is breadth strong'. Default (no params): last 7 trading days. Send either date or date_from/date_to (either e...3 params

Return NYSE and NASDAQ market breadth: advancing/declining/unchanged issues, their percentages, and new highs/lows. Use when the user asks 'how's the market today' or 'is breadth strong'. Default (no params): last 7 trading days. Send either date or date_from/date_to (either e...

Parameters* required
datestring
Single day (YYYY-MM-DD)
date_fromstring
Range start
date_tostring
Range end
get_trendsReturn AI-detected trending topics in tech & science, patents, or funding events. Use when the user asks 'what's trending in tech' or 'show me patent trends'. Use one of latest, date, or days. Returns { data: [{ date, topic, weight }], meta: { as_of } } where weight is 0-1. Ti...4 params

Return AI-detected trending topics in tech & science, patents, or funding events. Use when the user asks 'what's trending in tech' or 'show me patent trends'. Use one of latest, date, or days. Returns { data: [{ date, topic, weight }], meta: { as_of } } where weight is 0-1. Ti...

Parameters* required
categorystring
Trend categoryone of techscience · patents · fundingeventsdefault: techscience
datestring
Exact date lookup
daysinteger
Lookback windowdefault: 10
latestboolean
If true, only return most recent daydefault: false
get_trend_connectionsReturn AI-computed connections between trending topics across categories (tech → patents, tech → funding, etc). Useful for spotting meta-trends. Use when the user asks 'what trends are connected' or 'show me cross-category signals'. Use one of latest, date, or days. Returns {...4 params

Return AI-computed connections between trending topics across categories (tech → patents, tech → funding, etc). Useful for spotting meta-trends. Use when the user asks 'what trends are connected' or 'show me cross-category signals'. Use one of latest, date, or days. Returns {...

Parameters* required
datestring
daysinteger
default: 14
latestboolean
default: false
limitinteger
Max connections returned (default 200)default: 200
explain_conceptReturn a plain-language explanation of a platform-specific term, metric, or screener. Use ONLY for terms that are specific to StockMarketScan (e.g. 'strength_score' which is our internal scoring, or 'hot_prospects' which is our curated screener). Do NOT use for generic finance...1 params

Return a plain-language explanation of a platform-specific term, metric, or screener. Use ONLY for terms that are specific to StockMarketScan (e.g. 'strength_score' which is our internal scoring, or 'hot_prospects' which is our curated screener). Do NOT use for generic finance...

Parameters* required
term*string
Term to explain, e.g. 'call_put_ratio', 'golden_cross', 'consecutive_days', 'strength_score', 'vol_oi_ratio', 'streak'

Sponsors

Readme

StockMarketScan MCP Server

Stock screeners, chart patterns, options flow, and signals — 18 tools for US equities research, inside your LLM client.

  • Server URL: https://mcp.stockmarketscan.com/mcp
  • Transport: HTTP/SSE (Server-Sent Events)
  • Auth: BYOK — pass your personal sms_* API key as the X-API-Key header
  • Plan: Requires a Basic or Pro plan at stockmarketscan.com. Options flow tools require the Options Flow add-on.
  • Get your API key: stockmarketscan.com/settings
  • Full install guide & examples: stockmarketscan.com/mcp

What you get — 18 tools


View the full README on GitHub

Details

Repository
github.com/stockmarketscan/mcp-server
Website
stockmarketscan.com/mcp
Transport
SSE
Auth
Required
Registry
MCP registry, active
Tools verified
Nov 6, 2026