Skip to main content

crashtestyourstrategy

io.github.fnobbe/crashtestyourstrategyVersion 1.0.1

Portfolio and strategy stress diagnostics with hedge-break detection and regime outlook. Free tier.

Status

Responds68 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 14:51 UTC
Latency
68 ms
Remotes responding
1 of 1
Sign-in
No sign-in
Hosting
EU hosting detected (detected, not a legal statement)
Registry data as of
Nov 14, 2026, 22:14 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://mcp.crashtestyourstrategy.ai/mcpResponds68 ms
No sign-in

Claude Code

claude mcp add --transport http crashtestyourstrategy https://mcp.crashtestyourstrategy.ai/mcp

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: crashtestyourstrategy
Remote MCP server URL: https://mcp.crashtestyourstrategy.ai/mcp

Cursor

{
  "mcpServers": {
    "crashtestyourstrategy": {
      "url": "https://mcp.crashtestyourstrategy.ai/mcp"
    }
  }
}

VS Code

code --add-mcp '{"name":"crashtestyourstrategy","type":"http","url":"https://mcp.crashtestyourstrategy.ai/mcp"}'

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

24 tools

Tools of crashtestyourstrategy
Read-only
Idempotent
Open world
backtest_integrityUSE WHEN you have a backtest result (Sharpe, trials tried, window) and want to know whether it is likely overfit. Given an annualized Sharpe, the number of configurations tried and the window (YYYY-MM-DD), returns the DEFLATED Sharpe (the expected maximum Sharpe by chance grows with the trial count: Bailey & Lopez de Prado), which CRISIS regimes the window never contained, and a base-rate caveat. An unknown trial count flags the Sharpe as not-deflatable / UNPROVEN. All inputs optional; give as many as known. Descriptive, not advisory.NoYesYesNo
build_portfolioFULL TIER ONLY. Use when you want to stress a portfolio of arbitrary tickers, or construct a low-drawdown one from a universe. On this free endpoint the call returns the coded error UPGRADE_REQUIRED with how to get a token. Free alternative: portfolio_stress_test for books made of SPY, TLT, GOLD and BTC.NoYesYesNo
challenge_strategyUSE WHEN you want to know which market regimes break a strategy (buy_and_hold or rsi_30_70) and why. Adversarial evaluation in 3 layers: (1) outcome metrics in the worst regimes, (2) a vulnerability profile over 8 dimensions with severity, (3) the regime descriptors that couple most strongly to failure. Only strategies in the pre-computed outcome matrix can be challenged: 'buy_and_hold' and 'rsi_30_70' ('-' accepted for '_'). `asset` (optional) limits the worst-regime list to one catalogue asset; the vulnerability profile still spans all 63 regimes. Other strategies: tier2_stress_test (full tier, needs an access token). Vocabulary: ontology://strategy-vulnerabilities.NoYesYesNo
describe_regimeUSE WHEN you want to understand what one named synthetic regime is, and its nearest historical episodes. Single-regime introspection: median behavioural descriptors, z-scores vs the catalogue (what makes THIS regime distinct), an English characterisation, the 2 nearest neighbours, the nearest real historical episodes and a stylized-facts audit against real history. find_similar_regime ranks neighbours of a target; this says what one regime IS.NoYesYesNo
factor_decompositionUSE WHEN you suspect a capital-diversified portfolio hides one dominant risk factor. A portfolio can be capital-diversified while its RISK is dominated by one factor. Returns the Euler risk contribution of each holding (RC_i = w_i*(Sigma*w)_i / w'Sigma*w, summing to 1) beside the capital weights, from the empirical covariance of real returns. Proxies: SPY=equity beta, TLT=duration, GOLD=real asset, BTC=crypto. E.g. a 60/40 is ~83% equity risk, a 50/50 SPY/BTC ~86% BTC risk. Descriptive, not advisory.NoYesYesNo
find_similar_regimeUSE WHEN you want the synthetic regimes closest to a profile or to a descriptor target. Nearest-neighbour search over the regime catalogue. Give EITHER reference_profile_hint (that bundle's median descriptors become the target) OR descriptor_target (partial {descriptor: value}; only given dimensions count). `asset_filter` restricts to one asset. Returns top_n matches with similarity (0..1), z-score distance and per-descriptor signed deltas that show WHY it matched. Valid hints and descriptor names: get_started.NoYesYesNo
get_dossierUSE WHEN you want one citable record of the diagnostics you ran, with their gate flags. Every enveloped response is recorded by request_id. Give request_ids from your own responses (compiled chronologically) or last_n for your own most recent entries (API token required). Returns the entries with their gate signals (revision_required + grounding_summary) and a ready-to-cite markdown document; the dossier's own revision_required is true when any listed entry carried a gate flag (it does not know whether you later revised). One entry's full payload and call manifest: get_run. A factual record, never advisory.NoYesYesNo
get_investment_thesisUSE WHEN you want the full framework, portfolio and stress evidence of one thesis slug. Returns the framework (pillars with [E]/[M]/[K] evidence grades, falsifiers), the rule-based portfolio (asset blocks x conservative/balanced/offensive weights + sizing rationale) and the stress evidence (per-tier backtest, per-regime drawdown, historical episodes, claim verdicts marked by whether their rule was pre-registered, hedge behaviour). Slugs: list_investment_theses. Descriptive, not advisory; the agent decides suitability.NoYesYesNo
get_regime_dataUSE WHEN you want the raw price series behind a synthetic regime or a historical episode, to recompute a claim yourself. source='historical' + ref=<case_id> returns a real-market anchor episode (dates, closes; OHLCV with include_ohlcv) and the descriptors computed on it; source='synthetic' + ref=<profile_hint> [+ seed] returns one cached replica (closes, warmup_index) and its descriptors. An empty ref lists the available ids and sample seeds. Recompute the descriptors from the closes to verify any claim the platform made. Same data as the regime-data:// resources, for clients that cannot read resources.NoYesYesNo
get_runUSE WHEN you want to see exactly how an earlier result was produced, or reproduce it. Returns the run manifest (tool, the arguments sent, the seed where the result has one, the data window, the release, the schema version) and the stored response of one earlier call, by request_id. Works for MCP and REST calls and needs no API token (a request_id is an unguessable capability). Entries recorded before manifests existed come back with tool and arguments marked unknown. Rerun with the same arguments to reproduce: seeds are fixed, so reruns are identical while the underlying data is unchanged.NoYesYesNo
get_startedUSE WHEN you are new here, or need the valid values and the right tool for a task. Returns, for this deployment's tier: the tools that exist and work, an intent-to-tool map, every valid value for the enumerated inputs (profile hints, strategy slugs, descriptor names, assets per tool, thesis slugs), the Generate/Challenge/Revise/Present workflow, sign and unit conventions, and how to get a full-tier token. Needs no arguments.NoYesYesNo
historical_replayFULL TIER ONLY. Use when you want a strategy's rules run on an asset's real price history, with buy-and-hold alongside. On this free endpoint the call returns the coded error UPGRADE_REQUIRED with how to get a token. Free alternative: backtest_integrity to check a backtest you already ran for overfitting.NoYesYesNo
ips_gateUSE WHEN you have an Investment Policy Statement (drawdown tolerance, horizon, liquidity need) and want a portfolio checked against it. Flags a violation when the MEDIAN sustained drawdown exceeds max_drawdown_tolerance (a fraction, e.g. 0.15) or the tolerance is breached in a third or more of paths (the worst path and p90 may lie beyond it; see worst_stress); when time_horizon_years < 3 with a median drawdown of 15% or more; or when material holdings are less liquid than liquidity_need. A hard gate, not a score. Descriptive, not advisory.NoYesYesNo
list_investment_thesesUSE WHEN you want to browse the investment-thesis case studies. Each entry is a descriptive case study pairing an economic framework with a rule-based portfolio and its stress evidence. Returns one compact summary per thesis (slug, title, one-liner, tags, risk tiers, framework summary, headline finding). Full detail: get_investment_thesis(slug). Descriptive, not advisory; the agent decides suitability.NoYesYesNo
list_strategiesUSE WHEN you need to know which strategy slugs tier2_stress_test (full tier, needs an access token) accepts, with their rules and intended asset. Returns each catalogue slug with its plain-language rules, stop, take-profit, direction and the asset it is defined for (null = any ticker). Needs no arguments.NoYesYesNo
long_horizon_stressUSE WHEN you want multi-year wealth paths for a savings plan or a withdrawal plan. Distribution of multi-year wealth paths for a savings plan (monthly_contribution) or a withdrawal plan (monthly_withdrawal, inflation-indexed by default) on a SPY/TLT/GOLD/BTC portfolio. Multi-year paths chain ~2y model blocks (block-bootstrap); long-run drift is RE-ANCHORED to stated round-number assumptions (overridable via long_run_drift; see assumptions.long_run_drift) while the model's path shape is kept; both are echoed. Costs are ON by default. Returns terminal-wealth quantiles (nominal + real), ruin/shortfall probabilities, a sequence-of-returns diagnosis and a drift sensitivity (assumptions - 2pp). Descriptive, not advisory; no rate, allocation or product is recommended.NoYesYesNo
market_regime_mapUSE WHEN you want to know what the market is doing now across 18 category proxies. One call, 18 category proxies (US large-cap + tech, 9 SPDR sectors, developed ex-US, emerging markets, long Treasuries, high-yield credit, gold, oil, Bitcoin): the operational regime, model-conditional regime probabilities on trading day 5 or 21, stress probability vs its baseline, a descriptive forward-return distribution conditional on the regime label, and an equity-factor commonality flag (US sectors re-express one factor). Per cell, only the tier that passed the preregistered out-of-sample rule ships (raw p<0.05, see tier_pvalues; tier_correction shows which survive a multiple-testing correction). No directional forecast. For one asset with as_of support: regime_outlook. Descriptive, not advisory.NoYesYesNo
portfolio_compareUSE WHEN you revised a portfolio and want to know whether the revision made the tail better or worse. Compares A (reference) with B (candidate) on IDENTICAL simulated paths, so every delta is attributable to the weights, not seed noise. Returns drawdown-distribution deltas, probability-weighted scenario summaries, per-scenario deltas, the risk-concentration shift and which diversification failures B introduces or resolves. revision_required flags a B that deepens the worst-path drawdown or adds a failure. Provide holdings_a and holdings_b as [{asset, weight}]. Descriptive, not advisory; neither portfolio is ranked.NoYesYesNo
portfolio_frontierFULL TIER ONLY. Use when you want the whole return-versus-drawdown trade-off map for a set of tickers. On this free endpoint the call returns the coded error UPGRADE_REQUIRED with how to get a token. Free alternative: portfolio_compare for two SPY/TLT/GOLD/BTC books on identical paths.NoYesYesNo
portfolio_stress_testUSE WHEN you want to stress a portfolio of SPY, TLT, GOLD and BTC across cross-asset regimes. Provide `holdings` as [{asset, weight}] (weights normalised; GLD accepted for GOLD, BTC-USD for BTC). Returns per regime (baseline / risk_off_crisis / rate_shock): return, worst-episode drawdown, per-leg decomposition and a cross_asset_finding (diversification_intact / hedge_holds / hedge_breaks / shared_drawdown / concentrated_loss), plus sustained drawdowns over the simulated paths. The joint correlation structure, including the bond hedge that can break under rate shocks, comes from a pre-computed substrate, so the call is instant. Optional `costs` ({rebalance: none|daily|monthly|quarterly|band, annual_costs: {asset: fraction}, transaction_cost_bps}) adds a cost_impact block paired on identical paths. Other tickers: build_portfolio (full tier, needs an access token) in assess mode (portfolios={name:{ticker:weight}}). Descriptive, not advisory.NoYesYesNo
regime_outlookUSE WHEN you want the probability that SPY, QQQ, GLD or TLT is in each market regime on trading day 5 or 21. Model-conditional probabilities of BULL / SIDEWAYS / BEAR / CRISIS (operational trailing-vol/drift labels) on trading day 5 or 21, not at any point before it: stress tools answer 'what happens GIVEN regime X', this answers 'how likely is X from today's state'. Uses the preregistered covariate logit; persistence and unconditional baselines are reported beside it. On GLD at 21 days it did not beat persistence (p=0.64), so that cell uses persistence, as market_regime_map does; model.tier says which. Assets: SPY, QQQ, GLD, TLT (GOLD accepted for GLD). Optional as_of (YYYY-MM-DD) evaluates a past date. Class membership on a future day, not a forecast of returns or direction, not advisory.NoYesYesNo
run_stress_testUSE WHEN you want buy-and-hold stressed against one named synthetic regime. Returns a 0-100 robustness score, failure-behaviour classification with confidence and the resolved regime parameters. Evaluates buy-and-hold only and takes exactly one argument, profile_hint (valid values: get_started); for other strategies use challenge_strategy or tier2_stress_test (full tier, needs an access token). Descriptive, not advisory.NoYesYesNo
submit_feedbackUSE WHEN something in a response was wrong, unclear or missing and you want to tell the operator. Persists structured feedback on a previous response: your agent identity, the request_id, and items {category, severity, observation, suggested_action?, agent_confidence 0..1}. Aggregates are readable at feedback://insights.NoNoNoNo
tier2_stress_testFULL TIER ONLY. Use when you want to stress a strategy (a catalogue slug or an inline rule set) on any ticker. On this free endpoint the call returns the coded error UPGRADE_REQUIRED with how to get a token. Free alternative: challenge_strategy (buy_and_hold, rsi_30_70 across the regime catalogue) or run_stress_test (buy-and-hold on one cached regime).NoYesYesNo

Details

Registry status
Active
Published
Aug 1, 2026
Updated
Aug 1, 2026
Categories (suggested)
Finance and paymentsSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
GDPR
Not declared

Are you the operator? Claim this listing