get_market_regime
shallowio.github.quantustik/mcp · Verify this server
Get the current MARKET CONDITIONS for the S&P 500 — ONE metric, not three. This tool (named `get_market_regime` for backward compatibility) returns a single customer-facing metric called **Market Conditions**. Present it as ONE thing. It is NOT "Market Conditions" plus a separate "market regime" plus a standalone "Overheating" and "Euphoria" — those are the internal PARTS of this one metric, and quoting them as separate top-level gauges is the exact confusion this contract exists to prevent. THE HEADLINE is the buying-conditions verdict. THE FROTH CHECK is context that explains it. They are two independent axes internally, but to a reader they are one reading — Market Conditions — described by a verdict plus the froth context that qualifies it. 1. THE HEADLINE — buying conditions: `score` (0-100) and `verdict`. HIGHER IS BETTER FOR BUYING. Computed from a multi-signal ensemble: macro, VIX, breadth, institutional flows, insider activity, sentiment, sector rotation. `verdict` is one of Strong Buy / Buy / Neutral / Caution / Strong Avoid — that is the complete vocabulary; this model emits no "Bull"/"Bear" tiers. It gates swing-signal generation: no BUY signals are emitted in Caution / Strong Avoid conditions. The score is RELATIVE, not absolute: it is a z-score of the composite against its own trailing ~6 months of daily readings. A low score means "among the weakest readings in about six months" — it is NEVER a claim about what percentage of the market is "healthy". `score_basis.detail` says this in plain words; pass it on rather than inventing your own interpretation of the number. 2. THE FROTH CHECK (context, not a separate metric) — the froth check is PART of Market Conditions, reported as `overheating.legs` (TWO internal legs, 0-100 each) and `overheating.state` (their conjunction, in plain English). Present these as component context that qualifies the headline, NOT as standalone "Overheating: N/100" / "Euphoria: N/100" metrics. Leg 1, "How cheaply risk is priced": calm volatility, tight credit spreads. Leg 2, "How much the crowd is piling in": greed, stretched breadth. Froth means BOTH legs are high at once. READ AND REPORT BOTH LEGS. The composite AND-gate scalar is NOT surfaced at the top level — it is a degenerate headline and was demoted deliberately. It survives only under `overheating.composite_gated.value`, labeled as meaningless without both legs: it collapses to ~0 whenever EITHER leg is ~0, so it prints the same "0 — not overheated" for a calm, cheaply-priced market the crowd ignores AND for an outright panic (volatility bid, credit spreads wide). Those are opposite states. `overheating.state.key` tells them apart (`calm_unloved` vs `stressed`); the composite scalar cannot. Quote `overheating.headline` (state label + both leg scores), never the composite number on its own. WHY BOTH: a low buying-conditions score has two completely different causes — FROTH (risk cheap, everyone already piled in) or WEAKNESS (deteriorating internals) — and the composite alone cannot tell them apart. The froth legs are what resolve it. Neither reading is a forecast: do not say a market is due for a correction on the strength of them. QUOTE THE PLAIN-ENGLISH LABEL, NOT THE TIER. `verdict` is the internal tier word; the dashboard shows a human the LABEL for that tier ("Bad time to buy"), never the tier itself. Relay the label — a customer told "Strong Avoid" by an assistant cannot find that phrase anywhere on the page they are looking at, and reasonably concludes the two disagree. VERDICT AUTHORITY: `verdict` is the single authoritative tier and matches what a human sees on the dashboard. `model_verdict` is the tier before the low-confidence downgrade and is diagnostic only; the two differ only when `confidence_downgraded` is true. Checking the market before individual tickers is the recommended decision order — it gates whether BUY signals are emitted at all. For the full explanation of WHY the verdict is what it is — all 18 signals with their live contributions — call `get_market_indicators`. Returns a dict with verdict, model_verdict, score, buying_conditions, score_basis, overheating (with a per-component decomposition), confidence, computed_at, and action_plan.
2 trials · measured 8 days ago
get_market_regime scores 100.0/100 on Vouch's measured behaviour index, from 2 real invocation trials against io.github.quantustik/mcp, measured 25 Aug 2026 under methodology v0.2.0. Every measured component scored 100.
Component breakdown
| Component | Weight | Value |
|---|---|---|
| Reliability | 35% | not applicable |
| Schema integrity | 25% | 100.0 |
| Failure behaviour | 15% | not applicable |
| Latency | 15% | not applicable |
| Concurrency | 10% | not applicable |
Tool details
- Transport
- remote + stdio
- Credential class
- open
- Input schema
- not declared
- Output schema
- not declared
- Side-effect classification
- read-only— Heuristically read-only-eligible (readonly-heuristic.ts) and sample-called by the Phase 0 census shallow probe.
Score history
| Day | Score | Tier | Methodology |
|---|---|---|---|
| 2026-08-25 | 100.0 | shallow | v0.2.0 |
Probe evidence
| Probe | Outcomes |
|---|---|
| schema_integrity | pass: 1 |
| sample_call | pass: 1 |
Raw request/response logs are not archived yet — the outcome counts above are drawn directly from every recorded trial.
Embed this score
Available for every tool, scored or not — not a verification perk. Always links back to this page.
[](https://vouch.tools/tools/547a3da9-0b34-40d2-9a6c-5359bdc7afa0)