{"name":"com.stockmarketscan/mcp-server","slug":"stockmarketscan-mcp-server","title":"StockMarketScan","description":"18 tools for US stock screeners, chart patterns, options flow signals and equities research.","url":"https://mcp.market/server/stockmarketscan-mcp-server","rating":null,"grade":"B","score":80,"certified":false,"status":"active","category":"finance","tags":["finance"],"presence":{"score":17,"stars":1,"forks":0,"downloads_week":null,"last_push_at":"2026-04-14T10:33:17.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T04:30:47.267Z","last_ok_at":"2026-11-04T04:30:47.267Z","latency_ms":256},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/stockmarketscan/mcp-server","website":"https://stockmarketscan.com/mcp","version":"1.0.5","remotes":[{"type":"sse","url":"https://mcp.stockmarketscan.com/mcp","headers":[{"description":"Your personal StockMarketScan API key (sms_*). Generate at https://stockmarketscan.com/settings — requires a Basic or Pro plan.","isRequired":true,"isSecret":true,"name":"X-API-Key"}]}],"packages":[],"tools":[{"name":"explain_concept","description":"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 terms the model already knows — answer those directly. Returns { term, title, explanation, interpretation, related_terms }.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"term":{"type":"string","minLength":1,"description":"Term to explain, e.g. 'call_put_ratio', 'golden_cross', 'consecutive_days', 'strength_score', 'vol_oi_ratio', 'streak'"}},"required":["term"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"get_candles","description":"Return OHLCV price candles for a single stock. Use when you need price history to compute indicators or answer 'how much is X up this month'. time is a Unix epoch in seconds (UTC midnight for daily). Default range is 6mo. Use larger ranges like '1y' or '2y' only when the user explicitly asks for long history — max range is 20 years. Returns { symbol, interval, range, count, data: [{time, open, high, low, close, volume}] }.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","pattern":"^[A-Z0-9.^=\\-]{1,20}$","description":"Stock ticker"},"interval":{"description":"Daily or weekly candles","default":"1d","type":"string","enum":["1d","1wk"]},"range":{"description":"Range: 1d, 5d, 1y, 2y, 5y, max, or {N}mo (1-240)","default":"6mo","type":"string"}},"required":["symbol"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"get_chart_patterns","description":"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_down, rectangle, flag, wedge_rising, wedge_falling, abcd, gartley, bat, butterfly, crab, impulse_wave, corrective_wave. Use when the user asks 'what patterns does X have' or 'is X forming a head and shoulders'. Requires a Basic or Pro API key. Returns { symbol, interval, computedAt, candleCount, patterns: [...] }. Empty patterns array if none detected.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","pattern":"^[A-Z0-9.^=\\-]{1,20}$","description":"Stock ticker, e.g. AAPL, TSLA, MSFT"},"interval":{"description":"Chart interval","default":"1d","type":"string","enum":["1d","1wk"]}},"required":["symbol"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"get_market_momentum","description":"Return NYSE and NASDAQ market breadth data — advancing/declining issues, new highs/lows, percent advancing. Use when the user asks 'how's the market today' or 'is breadth strong'. Default (no params): last 7 trading days. Returns { dates, count, data: [{exchange, advancing_issues, declining_issues, new_highs, new_lows, percent_advancing_issues, data_date}] }. Two rows per date (NYSE + NASDAQ). Tier: Basic+.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"date":{"description":"Single day (YYYY-MM-DD)","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"date_from":{"description":"Range start","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"date_to":{"description":"Range end","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"get_options_flow_overview","description":"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 top premium plays'. Each row includes call_put_volume_ratio (bullish if > 1.0), consecutive_days (streak length), total_premium (dollar size), call_avg_iv/put_avg_iv. Returns { date, sort, limit, data: [...], stats, dates }. Tier: Pro only — Basic users get 403.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"date":{"description":"Trading day (YYYY-MM-DD). Default = latest available day.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"sort":{"description":"Sort order: streak=longest streaks first, volume=highest volume, callput=most extreme C/P, premium=biggest dollar","default":"streak","type":"string","enum":["streak","volume","callput","premium"]},"limit":{"description":"Rows to return (max 500)","default":100,"type":"integer","minimum":1,"maximum":500}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"get_options_flow_ranked","description":"Return ranked options flow entries for a date range — the entries that stand out by long consecutive-day streaks, large premium, and screener confluence. Each entry includes data-only performance tracking measured from a realistic entry reference: entry_price = open of the trading day AFTER signal_date (the close of signal_date is unreachable for live trading). max_gain_pct/max_drawdown_pct/price_change_pct are computed against entry_price; if that day's US open hasn't happened yet, these fields and entry_price are null ('pending'). This is descriptive market data for your own research, not a recommendation. If date_from/date_to omitted, returns last 60 days. Returns { count, signals: [...] }. Tier: Pro only.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"date_from":{"description":"Start date (YYYY-MM-DD)","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"date_to":{"description":"End date (YYYY-MM-DD)","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"limit":{"description":"Max signals returned (default 500)","default":500,"type":"integer","minimum":1,"maximum":2000}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"get_options_flow_sentiment","description":"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_only/bearish_only/mixed), bullish_count/bearish_count of signals that day, plus a derived sentiment_score (0-100) and sentiment_label (bullish/neutral/bearish). Use when the user asks 'what's market sentiment today', 'how bullish is the market', 'show me sentiment over the last week'. If date_from/date_to omitted, returns last 60 days. Returns { dateFrom, dateTo, count, data: [...] }. Tier: Pro only.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"date_from":{"description":"Start date (YYYY-MM-DD)","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"date_to":{"description":"End date (YYYY-MM-DD)","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"get_options_flow_timeline","description":"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 { symbol, limit, count, data: [daily rows, newest first] }. Tier: Pro only.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","pattern":"^[A-Z0-9.^=\\-]{1,20}$","description":"Stock ticker"},"limit":{"description":"Days of history (max 365)","default":60,"type":"integer","minimum":1,"maximum":365}},"required":["symbol"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"get_screener_data","description":"Return the current rows of a single stock screener for its latest data date. 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-prospects, j-pattern, nearing-6-month-highs, week-52-high-top-picks, top-penny-pops, strong-volume-gains, top-tech-stocks, fundamentally-fine, income-and-growth, best-reits. If you don't know the slug, call list_screeners first. Returns { screener, pagination, data: [stock rows] }.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"type":"string","minLength":1,"description":"The screener slug, e.g. 'hot-prospects', 'golden-cross', 'rsi-oversold'"},"page":{"description":"Page number (1-based)","default":1,"type":"integer","minimum":1,"maximum":10000},"limit":{"description":"Rows per page (max 500)","default":50,"type":"integer","minimum":1,"maximum":500}},"required":["slug"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"get_stock_info","description":"Return basic metadata for a stock — full company name, exchange, industry, last close price, and 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 { symbol, symbol_name, last_price, percent_change, exchange, industry }. Returns NOT_FOUND for unknown tickers.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","pattern":"^[A-Z0-9.^=\\-]{1,20}$","description":"Stock ticker, e.g. AAPL"}},"required":["symbol"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"get_stock_report","description":"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 calls (get_stock_info + get_chart_patterns + get_options_flow_timeline + get_options_flow_ranked + screener lookups + get_candles). Do NOT also call the primitives after calling this — the composite already has everything. Parallel fetch under the hood, graceful partial failures (if one source errors, that section returns null with a note). Returns { symbol, info, screeners, patterns, options_flow, signal, candle_summary, upcoming_earnings, overall_bias }. overall_bias is a heuristic hint, not financial advice.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","pattern":"^[A-Z0-9.^=\\-]{1,20}$","description":"Stock ticker, e.g. AAPL"},"interval":{"description":"Pattern detection interval","default":"1d","type":"string","enum":["1d","1wk"]}},"required":["symbol"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"get_trend_connections","description":"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'. Returns { count, connections: [{source_category, source_topic, target_category, target_topic, strength, rationale}] }. Tier: Pro only.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"days":{"default":14,"type":"integer","minimum":1,"maximum":90},"latest":{"default":false,"type":"boolean"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"limit":{"description":"Max connections returned (default 200)","default":200,"type":"integer","minimum":1,"maximum":1000}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"get_trends","description":"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'. Returns { category, count, trends: [{date, topic, weight}] } where weight is 0-1. Tier: Pro only.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"description":"Trend category","default":"techscience","type":"string","enum":["techscience","patents","fundingevents"]},"days":{"description":"Lookback window","default":10,"type":"integer","minimum":1,"maximum":180},"latest":{"description":"If true, only return most recent day","default":false,"type":"boolean"},"date":{"description":"Exact date lookup","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"get_unusual_options_activity","description":"Return individual options contracts flagged as unusual (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 aggregated stock-level flow use get_options_flow_overview instead. Returns { date, count, contracts: [...] }.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"description":"Filter to one symbol","type":"string","pattern":"^[A-Z0-9.^=\\-]{1,20}$"},"side":{"default":"both","type":"string","enum":["call","put","both"]},"min_vol_oi":{"default":1.5,"type":"number","minimum":0},"min_premium_usd":{"default":25000,"type":"number","minimum":0},"max_dte":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"default":300,"type":"integer","minimum":1,"maximum":1000}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"list_screeners","description":"Return metadata for all 24 stock screeners on the platform, including each screener's slug, name, description, category, and tier. Use this to discover which screeners are available before calling get_screener_data. Call this once per session — the list changes very rarely. Returns { tier, total, accessible, screeners: [...] }.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[]}},{"name":"ping","description":"Minimal sanity check. Returns { status, version, timestamp, cache_size }. No auth needed. Use this to verify the MCP server is reachable and responsive.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[]}},{"name":"search_patterns","description":"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 Basic or Pro API key. Results are capped per screener group via `limit` (default 100); capped groups carry `truncated: true`. Returns { interval, selectedPatterns, totalUniqueStocks, groups: [...] }.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"screener_slugs":{"minItems":1,"maxItems":24,"type":"array","items":{"type":"string"},"description":"Screener slugs to search within"},"pattern_ids":{"description":"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_triangle, sym_triangle, channel_up, channel_down, rectangle, flag, wedge_rising, wedge_falling, abcd, gartley, bat, butterfly, crab, impulse_wave, corrective_wave","default":[],"type":"array","items":{"type":"string"}},"interval":{"description":"Chart interval","default":"1d","type":"string","enum":["1d","1wk"]},"limit":{"description":"Max matching stocks per screener group (default 100)","default":100,"type":"integer","minimum":1,"maximum":500}},"required":["screener_slugs"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"search_setups","description":"Find the strongest trading setups today by combining options flow signals and screener confluence into a ranked list. Use when the user asks 'what should I trade today', 'best setups', 'top bullish plays'. Returns a ranked list with a composite score (signal strength + screener confluence + streak length). Present the top 3-5 to the user with narrative context, don't dump the raw JSON. Use get_stock_report if the user wants to dig deeper into any specific result. Returns { side, date, count, setups: [{symbol, score, signal, screeners_hit, ...}] }.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"side":{"description":"Side of setups to return","default":"bullish","type":"string","enum":["bullish","bearish"]},"limit":{"description":"Max setups to return","default":20,"type":"integer","minimum":1,"maximum":100}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"search_stocks","description":"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 { query, count, data: [{symbol, name}] } ordered by best match.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":60,"description":"Symbol prefix or part of the company name, e.g. 'Apple' or 'NVD'"},"limit":{"description":"Max results (default 10)","default":10,"type":"integer","minimum":1,"maximum":50}},"required":["query"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"search_stocks_in_screeners","description":"Find stocks that appear in multiple screeners simultaneously. Powerful for high-confidence picks where the user wants confluence across strategies. 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, match_count}] }. Intersection mode returns only stocks in ALL listed screeners; union returns stocks in ANY.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"screener_slugs":{"minItems":1,"maxItems":24,"type":"array","items":{"type":"string"},"description":"List of screener slugs to query (1-24)"},"mode":{"description":"intersection = stocks in ALL screeners; union = stocks in ANY screener","default":"intersection","type":"string","enum":["intersection","union"]},"limit":{"default":50,"type":"integer","minimum":1,"maximum":500}},"required":["screener_slugs"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}}],"scan":{"score":80,"grade":"B","scanned_at":"2026-09-27T22:36:15.058Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T22:36:14.917Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 958ms"]},"poisoning":{"score":15,"max":15,"notes":["20 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":8,"max":15,"notes":["last push 167 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","website matches verified namespace"]}},"findings":[],"inputs":{"probes":[{"url":"https://mcp.stockmarketscan.com/mcp","reachable":true,"authRequired":false,"latencyMs":958,"serverInfo":{"name":"stockmarketscan","version":"1.0.2"}}],"packages":[],"repo":{"found":true,"owner":"stockmarketscan","repo":"mcp-server","archived":false,"pushedAt":"2026-04-14T10:33:17Z","stars":1,"forks":0,"openIssues":1,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/274628339?v=4","ownerCreatedAt":"2026-04-08T20:29:00Z","license":"MIT"},"icon":{"url":"https://stockmarketscan.com/icon.svg","source":"registry"},"presence":{"stars":1,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-04-14T10:33:17.000Z","score":17}}}},"grade_history":[],"reviews":[]}