{"name":"stoquant","version":"1.8.0","transport":"http","endpoint":"https://stoquant.com/api/mcp","auth":{"type":"http","scheme":"bearer","format":"sk_live_...","header":"Authorization"},"protocolVersions":["2025-06-18","2025-03-26","2024-11-05"],"methods":["initialize","ping","tools/list","tools/call","resources/list","prompts/list"],"pricingDocs":"https://stoquant.com/pricing#mcp","tools":[{"name":"stoquant_get_qscore","title":"Get Q-Score","minTier":"pro","description":"The Q-Score is StoQuant's headline 0-100 composite for a ticker, blending fundamentals, momentum/technicals, ML, analyst, and 'hidden gem' value dimensions on SECTOR-RESIDUALIZED forward returns (sector beta removed). Returns the full computeQScore bundle: qScore.score (THE headline score — the same number the website's watchlist, screener, and homepage rankings show), qScore.signal ('strong_buy'|'buy'|'hold'|'sell'|'strong_sell'|'unrated'), per-dimension components, confidence/confidenceInterval, dimensionContributions, verdict and plainLanguage summary, PLUS `honesty` ({grade, excessSpreadPp, dataSufficient, gatedNoEdge}) and soft-disable flags (`buyRecommendationsSuppressed`, `descriptiveOnly`, `caption`) from the same live /proof card as GET /public/accuracy/summary. While honesty.gatedNoEdge, treat the score as descriptive research — not a buy rating. CANONICAL FIELD: `qScore.score` — `confidenceInterval.mid` is a hypothetical complete-data estimate and `percentile` is the score's cross-sectional rank vs the universe; neither is the score. HORIZON: always computed on a fixed 30-day residualized horizon. Early in the US trading day (before ~10am ET) the score may not yet be refreshed — treat an empty result as 'not yet computed', not an error. Requires a Pro or Power plan (same gating as REST /api/q-score/:ticker).","inputSchema":{"type":"object","properties":{"ticker":{"type":"string","description":"Stock ticker symbol, e.g. NVDA"}},"required":["ticker"],"additionalProperties":false},"annotations":{"title":"Get Q-Score","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_score_ticker","title":"Score ticker (own signals + /proof honesty + sources[])","minTier":"pro","description":"Own StoQuant Q-Score for a ticker PLUS the live /proof honesty banner PLUS a `sources[]` EDGAR citation envelope ({form, accession, edgarUrl}) when CIK + accession are groundable (#157). OWN signals only — never TipRanks Smart Score or street consensus (use stoquant_compare_signal for own-Q vs street). Returns `score` / `signal` / `percentile` / `confidence`, `sources[]`, `ownSignalsOnly: true`, `note`, and `honesty` (`grade`, `excessSpreadPp`, `dataSufficient`, `gatedNoEdge`, `banner`). Empty sources when not groundable (never invented links). While honesty.gatedNoEdge (dataSufficient && excessSpreadPp < 0), treat the score as descriptive research — not TipRanks skill claims, not proven ranking edge. Requires a Pro or Power plan.","inputSchema":{"type":"object","properties":{"ticker":{"type":"string","description":"Stock ticker symbol, e.g. NVDA"}},"required":["ticker"],"additionalProperties":false},"annotations":{"title":"Score ticker (own signals + /proof honesty + sources[])","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_compare_two_tickers","title":"Compare two tickers (own signals + /proof honesty + sources[])","minTier":"pro","description":"Side-by-side own StoQuant Q-Scores for two tickers PLUS the live /proof honesty banner PLUS a `sources[]` EDGAR citation envelope ({form, accession, edgarUrl}) when CIK + accession are groundable (#157). OWN signals only — never TipRanks Smart Score or street consensus. Returns `a` / `b` (`score` / `signal` / `percentile` / `confidence`), `comparison` (`scoreDelta`, `higherScore`, `signalRelation`, `summary`), `sources[]`, `ownSignalsOnly: true`, `note`, and `honesty` (`grade`, `excessSpreadPp`, `dataSufficient`, `gatedNoEdge`, `banner`). Empty sources when not groundable (never invented links). While honesty.gatedNoEdge (dataSufficient && excessSpreadPp < 0), treat both sides as descriptive research — not TipRanks skill claims, not proven ranking edge, not a buy pick. Requires a Pro or Power plan.","inputSchema":{"type":"object","properties":{"tickerA":{"type":"string","description":"First stock ticker, e.g. NVDA"},"tickerB":{"type":"string","description":"Second stock ticker, e.g. AMD"}},"required":["tickerA","tickerB"],"additionalProperties":false},"annotations":{"title":"Compare two tickers (own signals + /proof honesty + sources[])","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_earnings_brief","title":"Earnings brief (own signals + /proof honesty + sources[])","minTier":"pro","description":"Own-signal earnings companion foil: StoQuant Q-Score PLUS own earnings_history calendar/surprises PLUS the live /proof honesty banner PLUS a `sources[]` EDGAR citation envelope ({form, accession, edgarUrl}) when CIK + accession are groundable (#157). OWN signals only — TipRanks earnings-companion foil (never TipRanks Smart Score or TipRanks earnings skill). Returns `stoquant` (`score` / `signal` / `percentile` / `confidence`), `nextEarnings`, `recentPrints`, `beatMiss` (descriptive historical beat/miss from own calendar), `summary`, `sources[]`, `ownSignalsOnly: true`, `note`, and `honesty` (`grade`, `excessSpreadPp`, `dataSufficient`, `gatedNoEdge`, `banner`). Empty sources when not groundable (never invented links). Descriptive discovery research around an earnings date — not a buy rating, not proven ranking edge. While honesty.gatedNoEdge, treat as descriptive only. Requires a Pro or Power plan.","inputSchema":{"type":"object","properties":{"ticker":{"type":"string","description":"Stock ticker symbol, e.g. NVDA"}},"required":["ticker"],"additionalProperties":false},"annotations":{"title":"Earnings brief (own signals + /proof honesty + sources[])","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_compare_signal","title":"Compare StoQuant signal vs street consensus (+ sources[])","minTier":"pro","description":"StoQuant Q-Score AND street analyst consensus in one response — the TipRanks MCP differentiator — PLUS a `sources[]` EDGAR citation envelope ({form, accession, edgarUrl}) when CIK + accession are groundable (#157). TipRanks MCP is consensus-only (Wall Street ratings/targets). This tool returns StoQuant's own predictive 0-100 Q-Score (canonical `stoquant.score` / `stoquant.signal`) beside street `rating` / `consensusScore` (0-100), price target, upside, and analystCount, plus a `divergence` block (`agree`, `direction`, `summary`), `sources[]`, `ownSignalsOnly: true`, and `note` so an agent can spot where StoQuant disagrees with the street without a second round-trip. Empty sources when not groundable (never invented links). Not TipRanks Smart Score / TipRanks skill. Requires a Pro or Power plan.","inputSchema":{"type":"object","properties":{"ticker":{"type":"string","description":"Stock ticker symbol, e.g. NVDA"}},"required":["ticker"],"additionalProperties":false},"annotations":{"title":"Compare StoQuant signal vs street consensus (+ sources[])","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_get_demand_zone","title":"Get demand-zone screener (/proof honesty)","minTier":"pro","description":"Descriptive demand-zone setup screener (NOT a buy rating) PLUS the live /proof honesty banner: liquid common stocks whose price sits 0–3% above a rising SMA200 (else SMA50) with RSI(14) Wilder in 35–55. Returns `{asOf, items:[{ticker, zone:{ma,maValue,distancePct,rsi}, insider, institutional, qScore?}], notes, ownSignalsOnly: true, note, honesty}`. Own StoQuant evaluateDemandZone only — not TipRanks Smart Score, not TipRanks skill claims. Not a Q-Score dimension and does not drive autopilot buys. While honesty.gatedNoEdge (dataSufficient && excessSpreadPp < 0), treat as descriptive research only. Insider/institutional overlays are fail-closed (null when unavailable). Requires a Pro or Power plan. Landing + share card: https://stoquant.com/demand-zone","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":50,"default":25,"description":"Max results (default 25, max 50)"}},"additionalProperties":false},"annotations":{"title":"Get demand-zone screener (/proof honesty)","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_get_morning_brief","title":"Get morning brief (/proof honesty)","minTier":"pro","description":"Descriptive own-signal pre-market morning brief (NOT a buy rating; TipRanks due-diligence-agent FOIL) PLUS the live /proof honesty banner: own StoQuant regime, VIX, SPY/QQQ/IWM session moves, own earnings_history names reporting today, optional gem spotlight. Returns `{asOf, sessionDate, regime, vix, vixTake, indices, reportingToday, spotlight, summary, notes, ownSignalsOnly: true, note, honesty}`. Own StoQuant signals only — not TipRanks Smart Score, not TipRanks skill claims, not a TipRanks due-diligence memo. While honesty.gatedNoEdge (dataSufficient && excessSpreadPp < 0), treat as descriptive research only. Requires a Pro or Power plan. Landing + share card: https://stoquant.com/morning-brief","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"title":"Get morning brief (/proof honesty)","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_get_enablers","title":"Get enablers screener","minTier":"pro","description":"Descriptive thematic/co-mover screener (NOT a buy rating, NOT a verified supply-chain bottleneck graph): finds tickers near a set of seeds via tag overlap and 60-day return correlation. Provide `seeds` (1-10 tickers) or `sector` (top gainers become the seeds). Returns `{asOf, seeds, items:[{ticker, marketCap, reasons:{tagOverlap:{count,shared}, correlation:{vsSeed,r}|null, relativeStrength}, seedLinks, qScore}], notes}`. Candidates capped to $300M-$20B market cap; index ETFs and warrants excluded. Not a Q-Score dimension and does not drive autopilot buys. While /proof excessSpreadPp < 0 (gated:no_edge), do not treat this as ranking edge. Requires a Pro or Power plan.","inputSchema":{"type":"object","properties":{"seeds":{"type":"array","items":{"type":"string"},"description":"Seed tickers (1-10), e.g. [\"NVDA\",\"AVGO\"]. Provide this or sector."},"sector":{"type":"string","description":"GICS sector name — top gainers become the seeds. Provide this or seeds."},"limit":{"type":"integer","minimum":1,"maximum":50,"default":25,"description":"Max results (default 25, max 50)"}},"additionalProperties":false},"annotations":{"title":"Get enablers screener","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_describe_ticker_sources","title":"Describe ticker sources (labels+URLs + /proof honesty)","minTier":"pro","description":"Descriptive discovery of which own StoQuant evidence sources are present for a ticker (labels + public catalog URLs only). Ask-SA foil: will not invent narrative answers, digests, theses, or TipRanks skill claims. PLUS live /proof honesty banner. Returns `{ticker, asOf, researchUrl, catalogUrl, totalPresent, differentiatedCount, catalogTotal, sources:[{key,label,category,url,differentiated,present}], notes, willNotInvent, labelsAndUrlsOnly, willNotInventBanner, ownSignalsOnly: true, note, honesty}`. Numeric signal values omitted on purpose. While honesty.gatedNoEdge, treat as descriptive only. /proof letter grade untouched as sole grade source. Requires a Pro or Power plan.","inputSchema":{"type":"object","properties":{"ticker":{"type":"string","description":"Ticker symbol"}},"required":["ticker"],"additionalProperties":false},"annotations":{"title":"Describe ticker sources (labels+URLs + /proof honesty)","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_list_public_filings_meta","title":"List public filings meta (labels+URLs + /proof honesty)","minTier":"pro","description":"Descriptive public SEC filing metadata for a ticker — labels and EDGAR/source URLs only (no digests, no invented readings). Ask-SA foil: will not invent narrative answers or TipRanks skill claims. PLUS live /proof honesty banner. Returns `{ticker, days, count, total, items:[{accession,formType,filedDate,category,label,url}], notes, willNotInvent, labelsAndUrlsOnly, willNotInventBanner, ownSignalsOnly: true, note, honesty}`. Missing CIK/accession → url null (never guessed). While honesty.gatedNoEdge, treat as descriptive only. /proof letter grade untouched as sole grade source. Requires a Pro or Power plan.","inputSchema":{"type":"object","properties":{"ticker":{"type":"string","description":"Ticker symbol"},"days":{"type":"integer","minimum":30,"maximum":730,"default":365,"description":"Lookback days (default 365, min 30, max 730)"},"limit":{"type":"integer","minimum":1,"maximum":200,"default":50,"description":"Max filings (default 50, max 200)"}},"required":["ticker"],"additionalProperties":false},"annotations":{"title":"List public filings meta (labels+URLs + /proof honesty)","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_get_alt_signals","title":"Get alternative-data signals","minTier":"free","description":"The full alternative-data dossier for a ticker in one call, under `data`. Aggregates 15 sources: sec8k (8-K event items + counts), secLate (late filings), sec13dg (activist/passive ownership), secDilution (shelf registrations + active-dilution flag), secGovernance (delisting/deregistration flags), secInsiderIntent (Form 144/3), secS8 (employee stock plans), fdaEnforcement, cpscRecalls, clinicalTrials (phase/recruiting — biotech), clinicalReadiness (biotech pivotal-trial detail — DESCRIPTIVE, not predictive: it says a readout can fire soon, never that it will succeed), github, appStore, hackerNews, gdelt. Sources with no recent activity are null. This is the platform's differentiated edge — use it to surface catalysts and red flags an ordinary data feed misses.","inputSchema":{"type":"object","properties":{"ticker":{"type":"string","description":"Stock ticker symbol, e.g. NVDA"}},"required":["ticker"],"additionalProperties":false},"annotations":{"title":"Get alternative-data signals","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_get_insider_buys","title":"Get big insider buys (market-wide)","minTier":"free","description":"Market-wide list of tickers with large recent insider (Form 4) purchases under `items` — the same data function as REST /api/insider/big-buys. Each item has the buy detail (maxTxnValue90d, totalValue90d, purchaseCount90d, distinctFilers14d, topBuyerName/Role/IsOfficer), a clusterScore (0-100), the latest quote (price, changePercent, marketCap) and the current Q-Score snapshot (qScore, signal). Cluster buying by multiple officers — especially large dollar buys — is a notable bullish signal. Tickers whose latest signal is sell/strong_sell are excluded (contradictory). `source` is `cluster` (persisted cluster table) or `raw` (computed from raw insider trades when the cluster table is empty). Read-only; works on any plan.","inputSchema":{"type":"object","properties":{"minValue":{"type":"number","minimum":0,"default":1000000,"description":"Minimum single-transaction dollar value (default $1M)"},"minFilers":{"type":"integer","minimum":1,"default":1,"description":"Minimum distinct filers in the last 14d (default 1)"},"limit":{"type":"integer","minimum":1,"maximum":50,"default":20,"description":"Max results (default 20, max 50)"},"days":{"type":"integer","minimum":1,"maximum":120,"default":30,"description":"Lookback window in days (default 30, max 120)"}},"additionalProperties":false},"annotations":{"title":"Get big insider buys (market-wide)","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_get_catalyst_watch","title":"Get catalyst watch (market-wide)","minTier":"free","description":"Cross-ticker hot list of the highest-impact near-term catalysts the platform is tracking (FDA decisions, activist stakes, dilution events, clinical readouts, etc.), under `data`. Use for market-wide 'what's about to move' discovery.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"title":"Get catalyst watch (market-wide)","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_top_q_scores","title":"Top Q-Score stocks","minTier":"pro","description":"Q-Score ranked stocks (composite quality score, 0-100) with cross-sectional universe percentile, plus per-signal counts, PLUS `honesty` ({grade, excessSpreadPp, dataSufficient, gatedNoEdge}) and soft-disable flags (`buyRecommendationsSuppressed`, `descriptiveOnly`, `caption`) from the live /proof card. While honesty.gatedNoEdge, treat the list as descriptive only — not a buy list. Requires a Pro or Power plan (same gating as REST /api/q-score/top). Optional `signal` filter narrows to one rating bucket.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":500,"default":20,"description":"Max results (default 20, max 500)"},"signal":{"type":"string","enum":["strong_buy","buy","hold","sell","strong_sell","unrated"],"description":"Optional rating filter"}},"additionalProperties":false},"annotations":{"title":"Top Q-Score stocks","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_get_accuracy_summary","title":"Get platform accuracy summary","minTier":"free","description":"Public platform scorecard from the same AccuracySummaryService as GET /public/accuracy/summary. Key fields: letter `grade`, `hitRate` (do NOT treat hitRate as skill), `excessSpreadPp` (top-minus-bottom quintile 90-day alpha; this is the real edge), `spreadPp` (raw return spread), `dataSufficient` (false = sample too small, ignore the grade), `independentWindows`, `topQuintileBeatRate`, `sampleSize`, Wilson CI. When `dataSufficient` is true AND `excessSpreadPp` < 0 the live book has an inverted tail -- auto-portfolio BUY recommendations are suppressed with gateReason `no_edge`. Call this before any buy-oriented auto-portfolio read.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"title":"Get platform accuracy summary","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_portfolio_risk","title":"Portfolio risk (own metrics + /proof honesty)","minTier":"pro","description":"Own StoQuant portfolio risk metrics (Sortino, Sharpe, VaR/CVaR, max drawdown, Calmar, downside deviation) PLUS the live /proof honesty banner. OWN risk analytics only — not TipRanks portfolio analysis. Returns `risk`, `observationCount`, `ownSignalsOnly: true`, `note`, and `honesty`. While honesty.gatedNoEdge, do not size into buys as if the live book has edge. Requires a Pro or Power plan and ownership of `portfolioId`. Read-only — does not place orders.","inputSchema":{"type":"object","properties":{"portfolioId":{"type":"integer","minimum":1,"description":"Portfolio id you own (required)"}},"required":["portfolioId"],"additionalProperties":false},"annotations":{"title":"Portfolio risk (own metrics + /proof honesty)","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_get_auto_portfolio_status","title":"Get auto-portfolio status (last eval + holdings)","minTier":"power","description":"Read-only snapshot of an auto-portfolio: last evaluation (`evalStatus.lastEvalResult`, `lastEvalAt`, `recsGenerated`) plus diagnostics (cash, holdings tickers, cascade/drawdown breakers, risk params, recent recommendations). `lastEvalResult` is `success` or `gated:<reason>`. Important gate: `gated:no_edge` means the public accuracy scorecard has dataSufficient && excessSpreadPp < 0, so BUY recommendations were suppressed -- do not treat that as a buy signal. Requires Power-tier API key and ownership of `portfolioId`. This does NOT run a new evaluation and does NOT place orders.","inputSchema":{"type":"object","properties":{"portfolioId":{"type":"integer","minimum":1,"description":"Portfolio id (required). Must be owned by the API-key user."}},"required":["portfolioId"],"additionalProperties":false},"annotations":{"title":"Get auto-portfolio status (last eval + holdings)","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_evaluate_auto_portfolio_dry","title":"Dry-run auto-portfolio evaluation (no trades)","minTier":"power","description":"Run auto-portfolio gates and return would-be recommendations WITHOUT inserting recs, executing paper trades, or moving cash. Same rec shapes as live evaluate plus `gateReason` (`static_snapshot`, `health_critical`, `no_edge`, `stale_quotes`, cash, `no_changes`, …). `executedCount` is always 0. `gated:no_edge` means the public accuracy scorecard has dataSufficient && excessSpreadPp < 0, so BUY recs were suppressed. Requires Power-tier API key and ownership of `portfolioId`. This does NOT wrap live evaluate/execute.","inputSchema":{"type":"object","properties":{"portfolioId":{"type":"integer","minimum":1,"description":"Portfolio id (required). Must be owned by the API-key user."}},"required":["portfolioId"],"additionalProperties":false},"annotations":{"title":"Dry-run auto-portfolio evaluation (no trades)","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_get_portfolio_health","title":"Get portfolio-engine health report","minTier":"power","description":"System-wide auto-portfolio health report (subsystem statuses, degraded mode, last check time). Use to see whether the engine is healthy before trusting a last-eval snapshot. Power-tier. Read-only -- does not trigger healing or reset the drawdown breaker.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"title":"Get portfolio-engine health report","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_list_backtest_templates","title":"List backtest strategy templates","minTier":"power","description":"The pre-built strategy templates you can backtest (`id`, name, parameters). Known ids include `momentum`, `growth_chaser`, `value`, `insider_follower`, `gem_composite`, and `research_*` variants. Power-tier. Read-only. Hosted MCP does not run backtests.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"title":"List backtest strategy templates","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_get_backtest","title":"Get a saved backtest run","minTier":"power","description":"Reload a previously stored backtest run by numeric id, including metrics and bias disclosure. Power-tier. Read-only. Hosted MCP does not run a new backtest.","inputSchema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Backtest run id"}},"required":["id"],"additionalProperties":false},"annotations":{"title":"Get a saved backtest run","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_get_backtest_history","title":"List past backtest runs","minTier":"power","description":"Metadata for past backtest runs (ids, strategy, dates) without the full equity curve. Filter by strategyId. Power-tier. Read-only.","inputSchema":{"type":"object","properties":{"strategyId":{"type":"string","description":"Filter to one template id"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Max rows (default 20, max 100)"}},"additionalProperties":false},"annotations":{"title":"List past backtest runs","readOnlyHint":true,"openWorldHint":true}},{"name":"stoquant_list_strategy_presets","title":"List themed strategy presets","minTier":"free","description":"Themed strategy presets (social / insider / congress, etc.) with customization knobs. Read-only signal catalog -- does not create a portfolio or place orders.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"title":"List themed strategy presets","readOnlyHint":true,"openWorldHint":true}}]}