{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T15:53:13.573Z","url":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp","markdownUrl":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp.md","server":{"slug":"ohadf2015-stoquant-mcp","name":"StoQuant — Quantitative Stock Research","registryName":"io.github.ohadf2015/stoquant-mcp","description":"StoQuant: 61 tools — Q-Score, ML, screeners, alt-data, portfolio, backtest, strategy.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"stoquant-mcp","type":"npm","identifier":"stoquant-mcp","withdrawn":false,"url":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp","version":"0.6.0","transport":"stdio","scoredAt":"2026-11-05T00:16:54.947Z"},"score":{"total":73,"tier":"medium","status":"scored","weekDelta":3,"history":[{"date":"2026-11-05","total":73},{"date":"2026-11-04","total":73},{"date":"2026-11-03","total":72},{"date":"2026-11-02","total":72},{"date":"2026-11-01","total":72},{"date":"2026-10-31","total":71},{"date":"2026-10-30","total":71},{"date":"2026-10-29","total":70},{"date":"2026-10-28","total":70},{"date":"2026-10-27","total":69},{"date":"2026-10-26","total":69},{"date":"2026-10-25","total":68},{"date":"2026-10-24","total":68},{"date":"2026-10-23","total":72},{"date":"2026-10-22","total":72},{"date":"2026-10-21","total":71},{"date":"2026-10-20","total":71},{"date":"2026-10-19","total":70},{"date":"2026-10-18","total":70}]},"categories":[{"name":"Supply Chain Security","score":81,"verdict":"fail","reasons":["No malware found by supply-chain analysis.","CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available.","No install/post-install scripts declared.","30 of 93 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.direct","args":{"package":"zod","version":"3.25.76","severity":"high"}},{"code":"installscript.none","args":{}},{"code":"dephealth.assessed","args":{"deps":"93","unhealthy":"30"}}]},{"name":"Provenance & Transparency","score":45,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Provenance check failed: no build-provenance attestation is published.","Clear OSI-approved license (MIT).","Actively maintained (last published 64 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.none","args":{}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"64"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":81,"verdict":"fail","reasons":["100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).","AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 7692 tokens (~120/item across 64 items; 61 tools + 3 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.descriptions","args":{"pct":"100"}},{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"120","items":"64","tools":"61","tokens":"7692","resources":"3"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":60,"verdict":"partial","reasons":["Stability observed for 18 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"18"}}]},{"name":"Tool Coverage","score":88,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","63% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"63"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 61 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 63 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"61"}},{"code":"toolsafety.manipulation_clean","args":{"units":"63","judged":"63"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"stoquant-mcp","type":"npm","identifier":"stoquant-mcp","withdrawn":false,"score":73,"current":true,"url":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp","markdownUrl":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"stoquant-mcp"},{"label":"Version","value":"0.6.0"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"stoquant_get_quote","title":"Get stock quote","description":"Real-time quote for ONE ticker: last price, day change (absolute and percent), bid/ask, day high/low, and volume. Use for a single symbol; for 2+ symbols use stoquant_get_quotes_batch (one call, far fewer requests). Prices are delayed per the data vendor, not tick-by-tick.","inputs":[{"name":"ticker","type":"string","required":true,"description":"Stock ticker symbol, e.g. AAPL or BRK.B"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":98},{"name":"stoquant_get_quotes_batch","title":"Get quotes (batch)","description":"Current quotes for up to 50 tickers in a single call. Preferred over calling stoquant_get_quote in a loop — same data, one request, stays well under rate limits. Returns one quote object per ticker (price, change, volume).","inputs":[{"name":"tickers","type":"array","required":true,"description":"Up to 50 ticker symbols"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":75},{"name":"stoquant_get_extended_quote","title":"Get quote with technicals","description":"Quote plus computed technical indicators for one ticker: RSI(14), MACD, Bollinger Bands, and moving-average context. Use when you need momentum/overbought-oversold context, not just price. Heavier than stoquant_get_quote; can occasionally time out on cold cache — retry once if so.","inputs":[{"name":"ticker","type":"string","required":true,"description":null},{"name":"timezone","type":"string","required":false,"description":"IANA timezone, e.g. America/New_York"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":100},{"name":"stoquant_get_sparklines","title":"Get price history (sparklines)","description":"Historical price series (~90 days) for up to 50 tickers, for charting or trend/return computation. interval controls granularity (1d daily, 1wk weekly, 1mo monthly). Returns an array of close prices per ticker, not full OHLCV.","inputs":[{"name":"interval","type":"string","required":false,"description":"Bar granularity"},{"name":"tickers","type":"array","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":89},{"name":"stoquant_get_benchmarks","title":"Get index benchmarks","description":"Current performance of major index ETFs (SPY, QQQ, IWM, and peers): 1-day and year-to-date return. Use to frame an individual stock against the market. Early in the trading day the response may be `{error:'Benchmarks not yet computed'}` until the daily compute runs — treat that as 'not ready', not a failure.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":86},{"name":"stoquant_get_sector_performers","title":"Get sector leaders/laggards","description":"Top and bottom performing stocks within a GICS sector, by recent return. Use to find what is leading or lagging inside a sector. sector must be a full GICS name (see stoquant_get_macro_dashboard sectorRotation for valid names), e.g. 'Technology', 'Health Care', 'Financials'.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Max performers per side (default 10, max 50)"},{"name":"sector","type":"string","required":true,"description":"GICS sector name, e.g. 'Technology' or 'Health Care'"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":117},{"name":"stoquant_get_qscore","title":"Get Q-Score","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: score (0-100), signal ('strong_buy'|'buy'|'hold'|'sell'|'strong_sell'|'unrated'), per-dimension `components` (each with rawValue, normalizedScore, weight, and an `available` flag — unavailable dims contribute 0), `confidence`/`confidenceInterval`, `dimensionContributions`, a `verdict` and `plainLanguage` summary, and `riskAlerts`. This is the best single tool for 'is this a good stock right now'. period selects the scoring horizon. Note: early in the US trading day (before ~10am ET), the score may not yet be refreshed with intraday data — a `null` or empty score should be treated as 'not yet computed' rather than an error.","inputs":[{"name":"period","type":"string","required":false,"description":"Scoring horizon"},{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":240},{"name":"stoquant_get_signals_v2","title":"Get stage-adjusted signals","description":"Returns both the raw Q-Score (`originalQScore`) and a `stage`/regime-adjusted variant (`adjusted`) for a ticker. Use this when you want the score adjusted for the stock's lifecycle stage and current market regime rather than the raw composite. For the full breakdown use stoquant_get_qscore.","inputs":[{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":86},{"name":"stoquant_get_ml_prediction","title":"Get ML outperformance prediction","description":"ML model's probability that the ticker will OUTPERFORM the S&P 500 over the horizon (NOT a buy/hold/sell call). Returns `data.prediction` with: `probability` (0-1, chance of outperformance), `classification` ('bull' = predicted to outperform, 'bear' = underperform), `modelVersion`, `modelAuc`, `plainLanguage` (headline/summary/topDrivers), and `isHeuristic` (true when the trained model is gated for distribution drift and a heuristic fallback is used — weight it less). Use stoquant_explain_ml_prediction for the feature-level 'why'. horizon is in trading days. Note: early in the US trading day (before ~10am ET), the prediction may not yet be refreshed with intraday data — a `null` or empty prediction should be treated as 'not yet computed' rather than an error.","inputs":[{"name":"horizon","type":"string","required":false,"description":"Forecast horizon in trading days"},{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":215},{"name":"stoquant_explain_ml_prediction","title":"Explain ML prediction","description":"Top feature contributions behind a ticker's ML outperformance prediction — which signals pushed the probability up or down, with signed magnitudes. Use after stoquant_get_ml_prediction when the user asks WHY the model is bullish/bearish. horizon must match the prediction you are explaining.","inputs":[{"name":"horizon","type":"string","required":false,"description":null},{"name":"ticker","type":"string","required":true,"description":null},{"name":"top","type":"integer","required":false,"description":"Top N features to return (default 10, max 50)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":101},{"name":"stoquant_get_strategic_edges","title":"Get competitive intelligence","description":"Qualitative competitive intelligence for a ticker: economic moats, structural weaknesses, upcoming catalysts, and peer comparison. Best for mid/small-caps; mega-caps and thinly-covered names may return `{data:null}` (no edges computed) — treat that as 'no data', not an error.","inputs":[{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":81},{"name":"stoquant_get_quant_analytics","title":"Get quant analytics","description":"Quantitative analytics for a ticker under `data`: factor exposures, correlation/quality metrics, and risk decomposition. Use for portfolio-construction and factor-tilt questions. Complements stoquant_get_qscore (verdict) with the underlying quant detail.","inputs":[{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":70},{"name":"stoquant_get_evidence","title":"Get named evidence (bull/bear case)","description":"The named, two-sided evidence behind a ticker's Q-Score — the 'bull case vs bear case' as concrete facts rather than scores. Returns five grids (`momentum`, `sentiment`, `earnings`, `valuation`, `risk`), each with `cells`: every cell has a human-readable `label` (e.g. 'Price above 50-day average', 'Short interest'), a formatted `value`, and a `tone` ('bullish'|'bearish'|'neutral'|'unknown'). To assemble a balanced case, collect cells with tone 'bullish' (the bull case) and 'bearish' (the bear case) across all five grids. Use this AFTER stoquant_get_qscore when the user asks WHY the score is what it is, or wants the specific positives and negatives to weigh — it is the evidence layer the research page shows above the dimension breakdown.","inputs":[{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":201},{"name":"stoquant_get_market_regime","title":"Get market regime","description":"Current market-regime classification from the Hidden Markov Model over S&P 500 returns: regime label (e.g. Bull/Range/Bear) and the probability vector across states. Use to set top-down context before stock-level calls. If the model reports it could not fit, probabilities fall back to roughly uniform — read that as 'regime undetermined', not a confident Range call.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":91},{"name":"stoquant_get_signal_accuracy","title":"Get signal hit-rates","description":"Historical track record per signal type: an array of records with `signalType`, `hitRate` (0-1), `totalObservations`, `avgReturnPercent`, `precision`, and `windowDays`. Use to weight how much to trust a given signal before acting on it — prefer signals with high hitRate AND large totalObservations.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":81},{"name":"stoquant_get_accuracy_summary","title":"Get platform accuracy summary","description":"Public, unauthenticated platform scorecard from /public/accuracy/summary (no Pro gate). Key fields: letter `grade`, `hitRate` (do NOT treat hitRate as skill — a high hit-rate on a negatively-skewed book still loses money), `excessSpreadPp` (top-minus-bottom quintile 90-day *alpha*; this is the real edge), `spreadPp` (raw return spread, not alpha), `dataSufficient` (false = sample too small, ignore the grade), `independentWindows` (independent 90-day windows behind the Wilson CI), `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 or optimizer read.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":199},{"name":"stoquant_get_top_conviction","title":"Get top-conviction picks","description":"StoQuant's current highest-conviction names: the stocks with the strongest Q-Scores backed by multiple corroborating signals. Use as the starting point for 'what does the platform like right now'. May be empty between scans (`{stocks:{}}`).","inputs":[{"name":"limit","type":"integer","required":false,"description":"Max results (default 10, max 50)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":81},{"name":"stoquant_get_hidden_gems","title":"Get hidden gems","description":"Undervalued small-caps with confirming signals (the 'hidden gem' screen: low valuation, healthy balance sheet, low analyst coverage, plus momentum/ML/insider confirmation). Returns `{gems:[...], totalCount, lastScanAt}`. freshness filters by how recently a gem's signals fired. Use for value-oriented idea generation distinct from momentum.","inputs":[{"name":"freshness","type":"string","required":false,"description":"Filter by signal age: 'fresh' (within 2 hours), 'aging' (within 24 hours), 'stale' (24+ hours). Omit to exclude stale gems."},{"name":"limit","type":"integer","required":false,"description":"Max results (default 20, max 100)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":147},{"name":"stoquant_get_multibagger_candidates","title":"Get multibagger candidates","description":"Small/mid-caps flagged with high (>5x) upside potential: revenue acceleration, improving fundamentals, and pre-discovery setups. Higher risk/variance than hidden gems. Use for aggressive growth idea generation.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Max results (default 20, max 100)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":72},{"name":"stoquant_get_related_stocks","title":"Get related/peer stocks","description":"Find peers of a ticker under `peers`, each with qScore, quote, and market cap. `by` selects the relation: 'sector' (same sector), 'tag' (shared thematic tags), 'setup' (same technical setup firing), or 'correlation' (highest 60-day return correlation). Use to build a comparison set or find alternatives to a name.","inputs":[{"name":"by","type":"string","required":false,"description":null},{"name":"limit","type":"integer","required":false,"description":"Max peers (default 12, max 25)"},{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":121},{"name":"stoquant_get_signal_accuracy_heatmap","title":"Get accuracy heatmap","description":"Hit-rate heatmap of signals over time/ticker for a date range — which signal types worked when. Use for backtest-style 'has this signal been reliable lately' questions. Dates are YYYY-MM-DD; omit for the default recent window.","inputs":[{"name":"endDate","type":"string","required":false,"description":"YYYY-MM-DD"},{"name":"startDate","type":"string","required":false,"description":"YYYY-MM-DD"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":84},{"name":"stoquant_list_prebuilt_screens","title":"List prebuilt screens","description":"List the curated prebuilt screens with their id, name, and description. Available screens: 'undervalued-gems' (low P/E, P/B value plays), 'momentum-leaders' (strong price momentum), 'oversold-bounce' (RSI reversal setup), 'ml-outperform' (ML-predicted S&P 500 outperformance), 'hidden-gems' (small-cap value with confirmation signals), 'growth-explosion' (high-growth micro/mid-caps before discovery), 'pre-explosion' (multibagger pattern: revenue acceleration + insider + fundamentals). Call this first, then run one with stoquant_run_prebuilt_screen — it is faster and better-tuned than hand-built filters.","inputs":[{"name":"universe","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":169},{"name":"stoquant_run_prebuilt_screen","title":"Run a prebuilt screen","description":"Run one curated screen by its id (from stoquant_list_prebuilt_screens) and get the ranked matching stocks. Prefer this over stoquant_run_screener for common intents (value, momentum, oversold, ML picks, hidden gems, growth) — the filters are pre-tuned. universe defaults to sp500; use 'full' for the broadest set. Result count is fixed by the screen definition.","inputs":[{"name":"screenId","type":"string","required":true,"description":"Screen id, e.g. 'undervalued-gems' or 'momentum-leaders'"},{"name":"universe","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":131},{"name":"stoquant_run_screener","title":"Run a custom screen","description":"Run a custom stock screen. Read-only — nothing is mutated. All filters are AND-combined; returns an ARRAY of matching stocks (ticker, name, price, plus the requested metrics and overlays like valueScore/qScore/mlProbability). Valid filter fields (camelCase, case-sensitive): trailingPE, forwardPE, priceToBook, marketCap, epsTrailingTwelveMonths, dividendYield, bookValue, regularMarketPrice, fiftyDayAverage, twoHundredDayAverage, fiftyDayAverageChangePercent, twoHundredDayAverageChangePercent, regularMarketChangePercent, fiftyTwoWeekHighChangePercent, regularMarketVolume, averageDailyVolume3Month, sector, industry, rsi14, twentyDayAverageChangePercent, oneHundredFiftyDayAverageChangePercent, shortPercentOfFloat, grossMargins, operatingMargins, profitMargins, returnOnEquity, returnOnAssets, debtToEquity, revenueGrowth, earningsGrowth, pegRatio, currentRatio, numberOfAnalystOpinions. Additional sort-only fields: valueScore, qScore, marginOfSafety, mlProbability. Margins/growth are decimals (0.25 = 25%); marketCap is raw USD (250M = 250000000). An unknown field is rejected with a suggestion (it would otherwise silently return zero matches). For per-field units and typical ranges, read the stoquant://screener-fields resource. Tip: a full-universe scan can be slow and time out — prefer universe='sp500' and a handful of filters, or use stoquant_run_prebuilt_screen.","inputs":[{"name":"filters","type":"array","required":true,"description":"Filter conditions, all must match (AND)"},{"name":"limit","type":"integer","required":false,"description":"Max results (default 50, max 100)"},{"name":"sortDirection","type":"string","required":false,"description":null},{"name":"sortField","type":"string","required":false,"description":"Field to sort by (any valid field, or valueScore/qScore/marginOfSafety)"},{"name":"universe","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":406},{"name":"stoquant_get_insider_trades","title":"Get insider trades","description":"Recent insider (Form 4) transactions for a ticker under `data`, plus a `summary` (net buy/sell counts and dollar value). Cluster buying by officers/directors — especially large dollar buys — is a notable bullish signal. Use to check whether insiders are accumulating or distributing.","inputs":[{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":78},{"name":"stoquant_get_institutional_holders","title":"Get institutional holders","description":"Top institutional holders for a ticker: organization name, shares held, and percent ownership. Use to gauge institutional concentration and who the big holders are.","inputs":[{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":50},{"name":"stoquant_get_institutional_ratings","title":"Get institutional sentiment","description":"Aggregated institutional sentiment for a ticker: holder additions vs reductions and a net `signal` direction. Use as a 'smart money' flow read distinct from analyst ratings.","inputs":[{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":55},{"name":"stoquant_get_analyst_estimates","title":"Get analyst estimates","description":"Sell-side analyst forward estimates for a ticker under `data` (per fiscal period: estimated EPS avg/high/low, estimated revenue avg/high/low, number of analysts) with a `count`. Use for consensus expectations and dispersion. Some future periods may have null estimates until coverage fills in.","inputs":[{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":80},{"name":"stoquant_get_analyst_price_targets","title":"Get analyst price targets","description":"Analyst price targets for a ticker with a `consensus` block (avgTarget, highTarget, lowTarget, numAnalysts) and the underlying `data`. Use to gauge implied upside/downside vs the current price and the dispersion of targets.","inputs":[{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":71},{"name":"stoquant_get_analyst_changes","title":"Get analyst upgrades/downgrades","description":"Recent analyst rating changes for a ticker — upgrades, downgrades, reiterations, and initiations — with a 90-day action breakdown. Use to see the direction of sell-side revisions (momentum in sentiment), not just the static consensus.","inputs":[{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":70},{"name":"stoquant_get_short_interest","title":"Get short interest","description":"Short-interest history for a ticker: append-only `snapshots` plus a `summary` (latestFloat = % of float short, latestRatio = days-to-cover, and window deltas). Rising short interest with a price squeeze can signal a short squeeze; falling can signal covering. Use for crowded-short reads.","inputs":[{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":81},{"name":"stoquant_get_insider_cluster","title":"Get insider cluster metrics","description":"Insider-buying cluster metrics for a ticker under `data`: distinctFilers14d, officerCount14d, purchaseCount90d, totalValue90d, clusterScore, and a clusterMomentum flag. Cluster buying by multiple insiders (especially officers, large dollar value) is a strong bullish signal — this scores it. Pairs with stoquant_get_insider_trades (the raw transactions).","inputs":[{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":99},{"name":"stoquant_get_big_insider_buys","title":"Get big insider buys (market-wide)","description":"Market-wide list of tickers with large recent insider purchases (default >= $1M) under `items`, each with the buy detail plus a current quote and Q-Score. Use for 'where are insiders putting real money right now' discovery across the whole market.","inputs":[{"name":"days","type":"integer","required":false,"description":"Lookback window in days (default 30)"},{"name":"limit","type":"integer","required":false,"description":"Max tickers (default 20, max 50)"},{"name":"minValue","type":"integer","required":false,"description":"Minimum total buy value in USD (default 1000000)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":123},{"name":"stoquant_get_macro_indicator","title":"Get macro indicator (FRED)","description":"Latest values for one FRED macro series under `data` (recent observations) with a `count`. Common ids: DGS10 (10y Treasury yield), DGS2 (2y), T10Y2Y (10y-2y spread), UNRATE (unemployment), CPIAUCSL (CPI), VIXCLS (VIX), FEDFUNDS (fed funds). Use for a single specific indicator; for the full picture use stoquant_get_macro_dashboard.","inputs":[{"name":"seriesId","type":"string","required":true,"description":"FRED series id, e.g. DGS10, UNRATE, VIXCLS, T10Y2Y"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":142},{"name":"stoquant_get_macro_dashboard","title":"Get macro dashboard","description":"Full top-down macro picture in one call: `regime` classification, key `indicators`, `macroStress` gauge, `sectorRotation` (which sectors are favored, with valid GICS sector names), forward `calendar`, and current `themes`. Best first call for 'what's the macro backdrop' before drilling into stocks.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":79},{"name":"stoquant_get_macro_calendar","title":"Get economic calendar","description":"Forward (~14 day) economic calendar: scheduled releases with forecast, prior value, and expected market impact. Use to flag upcoming macro events (CPI, FOMC, jobs) that could move positions.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":53},{"name":"stoquant_get_macro_themes","title":"Get macro themes","description":"Current macro investment themes with their related sectors — the narrative layer (e.g. rate-cut beneficiaries, AI capex). Use for thematic idea generation that ties stocks to a macro thesis.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":49},{"name":"stoquant_get_sec_filings","title":"Get SEC filings","description":"Recent SEC filings for a ticker under `items` (with `count`/`total`), unioning the whole suite: 8-K events (with item labels like 'Item 2.02 Results of Operations'), NT-10K/Q late filings, 13D/13G activist/passive ownership, S-1/S-3/424B dilution, DEF 14A / Form 25 / Form 15 governance, and Form 144/3 insider intent. Each item has accession, formType, filedDate, category, and a human-readable label. Use to read the actual regulatory record behind a thesis.","inputs":[{"name":"days","type":"integer","required":false,"description":"Lookback window in days (default 365)"},{"name":"limit","type":"integer","required":false,"description":"Max filings (default 50, max 200)"},{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":180},{"name":"stoquant_get_news","title":"Get news headlines","description":"Recent news headlines for a ticker under `items`: each with publishedAt, headline, source/provider, category, and a sentiment label. Use for the latest narrative around a stock. For news plus filings plus earnings in one combined view, use stoquant_get_news_events.","inputs":[{"name":"days","type":"integer","required":false,"description":"Lookback window in days (default 14)"},{"name":"limit","type":"integer","required":false,"description":"Max articles (default 30, max 50)"},{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":104},{"name":"stoquant_get_news_events","title":"Get news, filings & earnings","description":"Combined event view for a ticker under `data`: `news` (headlines), `filings` (SEC), and `earnings` (calendar). The single best call for 'what is happening with this stock' — recent coverage, regulatory activity, and upcoming/just-reported earnings together.","inputs":[{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":79},{"name":"stoquant_get_social_sentiment","title":"Get social sentiment","description":"Current social-media buzz for a ticker: `totalMentions`, `recentPostCount24h`, `sentimentBreakdown` (bullish/bearish/neutral), `topPlatforms`, and a sample of `recentPosts`. Use to read retail attention and crowd sentiment. Sources are credibility-weighted platform aggregates, not raw noise.","inputs":[{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":87},{"name":"stoquant_get_social_trend","title":"Get social sentiment trend","description":"Daily social mention-volume and sentiment trend for a ticker over the last ~30 days. Use to see whether attention and bullishness are building or fading, not just the current snapshot.","inputs":[{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":55},{"name":"stoquant_get_trending_social","title":"Get trending tickers (social)","description":"Most-mentioned tickers across social platforms in the last few hours, each with mentionCount, prevMentionCount, deltaPercent, velocityScore, bullishPct, and platforms. Use for market-wide 'what is retail talking about right now' discovery and early momentum.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":64},{"name":"stoquant_get_social_momentum","title":"Get social momentum surges","description":"Tickers with a sharp (2x+) surge in social mentions in the last hour vs the prior hour — the earliest social-momentum signal, with sentiment and a recent post snippet per name. Use to catch breakouts in attention before they are widely noticed.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":64},{"name":"stoquant_get_source_credibility","title":"Get social source credibility","description":"Leaderboard of social sources ranked by true directional accuracy (Wilson lower-bound on their calls). Use to judge how much weight to give a platform or author's sentiment — high-credibility sources earn more trust than raw mention volume.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Max sources (default 25, max 100)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":75},{"name":"stoquant_get_catalysts","title":"Get catalysts","description":"Upcoming and recent catalysts under `data`, each with ticker, type (e.g. earnings_soon, activist_stake, dilution, fda), date, label, direction (bullish/bearish/neutral), and source. Omit ticker for the market-wide feed; pass a ticker to filter to one name (may be empty if that stock has no tracked catalysts right now). Use to find date-driven, event-based opportunities.","inputs":[{"name":"ticker","type":"string","required":false,"description":"Filter to one ticker; omit for the market-wide feed"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":118},{"name":"stoquant_get_alt_signals","title":"Get alternative-data signals","description":"The full alternative-data dossier for a ticker in one call, under `data`. Aggregates 15 sources: sec8k (8-K event items + counts), secLate (NT-10K/Q late filings), sec13dg (13D/13G activist/passive ownership), secDilution (S-1/S-3/424B shelf + active-dilution flag), secGovernance (DEF 14A, Form 25 delisting, Form 15 deregistration flags), secInsiderIntent (Form 144/Form 3 counts), secS8 (employee stock plans), fdaEnforcement (Class I/II/III actions), cpscRecalls (consumer recalls), clinicalTrials (phase/recruiting — biotech), github (stars/forks/issues/push activity), appStore (iOS rank deltas), hackerNews (story velocity), gdelt (news tone). Sources with no recent activity for the ticker are null (e.g. clinicalTrials for a non-biotech). This is the platform's differentiated edge — use it to surface catalysts and red flags an ordinary data feed misses.","inputs":[{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":247},{"name":"stoquant_get_alt_data","title":"Get web alt-data (trends, IV, pageviews)","description":"Generic cached alternative-data for a ticker under `data`, keyed by source: google_trends (search interest), wikipedia_pageviews (attention), options_iv (implied-vol metrics), openinsider (insider feed), edgar_8k. Each source carries its latest values and fetchedAt. Complements stoquant_get_alt_signals with retail-attention and options-positioning reads.","inputs":[{"name":"ticker","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":96},{"name":"stoquant_get_catalyst_watch","title":"Get catalyst watch (market-wide)","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.). Use for market-wide 'what's about to move' discovery, distinct from per-ticker stoquant_get_catalysts.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":70},{"name":"stoquant_get_unusual_options","title":"Get unusual options activity","description":"Options contracts trading far above their open interest, ranked by notional (volume x price x 100). Each row under `data.rows` has ticker, optType (call/put), strike, expiry, dte, volume, openInterest, volOi, newPosition (open interest was 0), notional, priceSource (mid/last), lastVsMid and ageHours. IMPORTANT: this is a delayed QUOTE snapshot, front-month expiry only — there is no trade tape, so no buyer/seller side and no sweep detection; `lastVsMid` is only where the last print sat between bid (0) and ask (1). Open interest is published next day, so volume/OI compares today against yesterday. Descriptive, not a buy or sell signal.","inputs":[{"name":"limit","type":"number","required":false,"description":"Max rows, default 100, cap 500"},{"name":"minNotional","type":"number","required":false,"description":"Minimum dollars traded, e.g. 250000"},{"name":"newPositionsOnly","type":"boolean","required":false,"description":"Only contracts where open interest was 0"},{"name":"ticker","type":"string","required":false,"description":"Filter to one ticker; omit for the market-wide feed"},{"name":"type","type":"string","required":false,"description":"Contract side (NOT the side of the trade)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":258},{"name":"stoquant_get_auto_portfolio_status","title":"Get auto-portfolio status (last eval + holdings)","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. Other gates include `static_snapshot`, `health_critical`, `cascade_breaker_paused`, `no_cash_buys_suppressed`, `no_changes`. Requires Power-tier API key and ownership of portfolioId. This does NOT run a new evaluation and does NOT place orders.","inputs":[{"name":"portfolioId","type":"integer","required":false,"description":"Portfolio id (required by the API; default 1)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":198},{"name":"stoquant_get_auto_portfolio_history","title":"Get auto-portfolio recommendation history","description":"Read-only recommendation history for an auto-portfolio (ticker, action, status, timestamps). Use to inspect what the engine last proposed — including rows that stayed pending or were gated. Does not execute or cancel anything. Power-tier; requires portfolio ownership.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Max rows (default 100, max 1000)"},{"name":"portfolioId","type":"integer","required":false,"description":"Portfolio id (default 1)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":95},{"name":"stoquant_get_portfolio_health","title":"Get portfolio-engine health report","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. Read-only — does not trigger healing or reset the drawdown breaker.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":61},{"name":"stoquant_optimize_portfolio","title":"Optimize portfolio weights (Black-Litterman)","description":"Compute target weights via Black-Litterman (HRP blend fallback). Returns an `optimization` object with weights — it does NOT place orders, rebalance, or move cash. If `predictions` is omitted the server fills views from ML forecasts (up to 20 tickers). Pro/Power tier. Use the weights as a recommendation; call stoquant_get_accuracy_summary first and do not size into buys while excessSpreadPp is negative and dataSufficient is true.","inputs":[{"name":"initialCapital","type":"number","required":false,"description":"Starting capital in USD (informational)"},{"name":"method","type":"string","required":false,"description":"Optimizer method (only black-litterman is supported)"},{"name":"predictions","type":"object","required":false,"description":"Optional views keyed by ticker. Omit to auto-fetch ML predictions."},{"name":"tickers","type":"array","required":true,"description":"Universe to allocate across"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":174},{"name":"stoquant_list_backtest_templates","title":"List backtest strategy templates","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. Call this before stoquant_run_backtest so you pass a real strategyId. Power-tier. Read-only.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":83},{"name":"stoquant_run_backtest","title":"Run a historical backtest","description":"Run a historical backtest for a strategy template over [startDate, endDate]. Returns the full run (metrics at 0% slippage plus bias disclosure: Deflated Sharpe, iteration count). This is a simulation — it does NOT place live or paper orders. It does persist a run record you can reload with stoquant_get_backtest. Power-tier; computationally expensive (this call can take tens of seconds). Prefer universe=sp500. Dates are YYYY-MM-DD.","inputs":[{"name":"endDate","type":"string","required":true,"description":"YYYY-MM-DD inclusive end"},{"name":"initialCapital","type":"number","required":false,"description":"Starting capital USD (default 100000)"},{"name":"startDate","type":"string","required":true,"description":"YYYY-MM-DD inclusive start"},{"name":"strategyId","type":"string","required":true,"description":"Template id from stoquant_list_backtest_templates, e.g. momentum, value, gem_composite"},{"name":"universe","type":"string","required":false,"description":"Default sp500"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":189},{"name":"stoquant_get_backtest","title":"Get a saved backtest run","description":"Reload a previously stored backtest run by numeric id, including metrics and bias disclosure. Use after stoquant_run_backtest or to inspect history. Power-tier. Read-only.","inputs":[{"name":"id","type":"integer","required":true,"description":"Backtest run id returned by stoquant_run_backtest"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":64},{"name":"stoquant_get_backtest_history","title":"List past backtest runs","description":"Metadata for past backtest runs (ids, strategy, dates) without the full equity curve. Filter by strategyId. Power-tier. Read-only.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Max rows (default 20, max 100)"},{"name":"strategyId","type":"string","required":false,"description":"Filter to one template id"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":72},{"name":"stoquant_get_strategy_performance","title":"Get strategy performance","description":"Read-only strategy performance for a portfolio. `view` selects the slice: `kpis` (headline returns), `equity-curve` (vs SPY, normalized to 100), `monthly-returns`, `risk-metrics` (Sharpe/Sortino/max drawdown/capture), `attribution` (P/L by signal type), `comparison` (all active portfolios). Pro-tier. Does not trade.","inputs":[{"name":"portfolioId","type":"integer","required":false,"description":"Portfolio id (default 1; ignored for comparison)"},{"name":"view","type":"string","required":false,"description":"Which slice to return (default kpis)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":132},{"name":"stoquant_list_strategy_presets","title":"List themed strategy presets","description":"Themed strategy presets (social / insider / congress, etc.) with customization knobs. Read-only signal catalog — does not create a portfolio. Use stoquant_get_strategy_preset_candidates to see the current ranked basket for one preset.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":58},{"name":"stoquant_get_strategy_preset_candidates","title":"Get ranked candidates for a strategy preset","description":"Current ranked candidate tickers and target-weight basket for a themed preset (`social`, `insider`, `congress`, …). Returns `{preset, appliedOptions, candidates, basket}`. This is a signal read — it does NOT create or rebalance a paper portfolio.","inputs":[{"name":"presetId","type":"string","required":true,"description":"Preset id from stoquant_list_strategy_presets"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":86}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T00:16:54.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"none","label":"No attestation","reason":null,"reasonLabel":null,"discovery":null,"discoveryLabel":null,"sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[{"id":"GHSA-mrhx-c7xc-m3w5","cve":"CVE-2023-54404","severity":"high","fixAvailable":true}],"vulnerabilitiesTotal":1,"dependencies":{"nodes":93,"partial":false,"deprecated":null,"stale":30,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-18","recent":[{"id":"chg_01a1a3f0-c6fa-7313-9028-09620a074523","kind":"score.total_changed","summary":"Trust score (72 → 73)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp#chg-chg_01a1a3f0-c6fa-7313-9028-09620a074523"},{"id":"chg_01a199b1-2418-7dad-94d0-4e5320f90fcf","kind":"check.reverified","summary":"Security disclosure (unverified → fail)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp#chg-chg_01a199b1-2418-7dad-94d0-4e5320f90fcf"},{"id":"chg_01a19492-3611-7bde-a9b6-897bb11279a8","kind":"check.unverifiable","summary":"Security disclosure (fail → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp#chg-chg_01a19492-3611-7bde-a9b6-897bb11279a8"},{"id":"chg_01a19492-3613-71a8-9714-06be77591dc8","kind":"score.total_changed","summary":"Trust score (71 → 72)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp#chg-chg_01a19492-3613-71a8-9714-06be77591dc8"},{"id":"chg_01a18a21-622f-7e05-b6d9-825838f20b20","kind":"score.total_changed","summary":"Trust score (70 → 71)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp#chg-chg_01a18a21-622f-7e05-b6d9-825838f20b20"},{"id":"chg_01a17fcf-3f4d-7536-b163-4048086fda76","kind":"score.total_changed","summary":"Trust score (69 → 70)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp#chg-chg_01a17fcf-3f4d-7536-b163-4048086fda76"},{"id":"chg_01a17582-7a82-720b-8f20-bc6448351fde","kind":"score.total_changed","summary":"Trust score (68 → 69)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp#chg-chg_01a17582-7a82-720b-8f20-bc6448351fde"},{"id":"chg_01a16b35-f4c8-7b04-9f01-b20bebe900ad","kind":"advisory.identified","summary":"CVE-2023-54404 affects this package (high)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-24","url":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp#chg-chg_01a16b35-f4c8-7b04-9f01-b20bebe900ad"},{"id":"chg_01a16b35-f4cc-787d-ba9e-f939f4681014","kind":"check.verdict","summary":"Known CVEs (pass → fail)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-24","url":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp#chg-chg_01a16b35-f4cc-787d-ba9e-f939f4681014"},{"id":"chg_01a16b35-f4ce-73e5-a160-246e5288ecb5","kind":"score.total_changed","summary":"Trust score (72 → 68)","materiality":"functional","direction":"regression","scoreDelta":-4,"occurredOn":"2026-10-24","url":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp#chg-chg_01a16b35-f4ce-73e5-a160-246e5288ecb5"},{"id":"chg_01a160e9-47e6-71bc-bdd3-e074008ef8f1","kind":"score.total_changed","summary":"Trust score (71 → 72)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-22","url":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp#chg-chg_01a160e9-47e6-71bc-bdd3-e074008ef8f1"},{"id":"chg_01a1569c-d456-7d1c-b823-ae1b33c8c969","kind":"score.total_changed","summary":"Trust score (70 → 71)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-20","url":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp#chg-chg_01a1569c-d456-7d1c-b823-ae1b33c8c969"},{"id":"chg_01a14ebb-ff65-7f2a-a1ed-adb3bf1343ee","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-18","url":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp#chg-chg_01a14ebb-ff65-7f2a-a1ed-adb3bf1343ee"},{"id":"chg_01a14ead-94b8-735d-b166-23425fdd4e43","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-18","url":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp#chg-chg_01a14ead-94b8-735d-b166-23425fdd4e43"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp","markdown":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp.md","changelogJson":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/ohadf2015-stoquant-mcp/stoquant-mcp.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/stoquant-mcp"},{"label":"Socket report","href":"https://socket.dev/npm/package/stoquant-mcp"},{"label":"Repository","href":"https://github.com/ohadf2015/stoquant-mcp"},{"label":"Website","href":"https://stoquant.com/mcp"}]}}