Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.fnobbe/crashtestyourstrategy

REMOTE · MCP.CRASHTESTYOURSTRATEGY.AI · SCANNED AUG 3

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

+13 this week 73 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security74
Transport & Reachability100
Schema Quality & AI Usability74
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 4772 tokens (~159/item across 30 items; 16 tools + 14 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · mcp.crashtestyourstrategy.ai

# add to Claude Code
claude mcp add --transport http fnobbe-crashtestyourstrategy https://mcp.crashtestyourstrategy.ai/mcp
# ~/.codex/config.toml
[mcp_servers.fnobbe-crashtestyourstrategy]
url = "https://mcp.crashtestyourstrategy.ai/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "fnobbe-crashtestyourstrategy": {
      "type": "remote",
      "url": "https://mcp.crashtestyourstrategy.ai/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add fnobbe-crashtestyourstrategy --url https://mcp.crashtestyourstrategy.ai/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  fnobbe-crashtestyourstrategy:
    url: "https://mcp.crashtestyourstrategy.ai/mcp"
// mcp.json
{
  "mcpServers": {
    "fnobbe-crashtestyourstrategy": {
      "type": "http",
      "url": "https://mcp.crashtestyourstrategy.ai/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +9
    • Authorization: unverified → partial security
    • Schema quality: 123 → 159 functional
    • Tool coverage: 0% → 100% functional
    • “submit_feedback” reworded the description of “agent_vendor” cosmetic
    • “submit_feedback” reworded the description of “feedback_items” cosmetic
    • “submit_feedback” reworded the description of “overall_confidence” cosmetic
    • “submit_feedback” reworded the description of “platform_version_evaluated” cosmetic
    • “submit_feedback” reworded the description of “request_id” cosmetic
    • “submit_feedback” reworded the description of “session_context” cosmetic
    • “backtest_integrity” reworded the description of “annualized_sharpe” cosmetic
    • “backtest_integrity” reworded the description of “asset” cosmetic
    • “backtest_integrity” reworded the description of “backtest_end” cosmetic
    • “backtest_integrity” reworded the description of “backtest_start” cosmetic
    • “backtest_integrity” reworded the description of “frequency” cosmetic
    • “backtest_integrity” reworded the description of “kurt” cosmetic
    • “backtest_integrity” reworded the description of “n_trials” cosmetic
    • “backtest_integrity” reworded the description of “skew” cosmetic
    • “challenge_strategy” reworded the description of “strategy_id” cosmetic
    • “describe_regime” reworded the description of “profile_hint” cosmetic
    • “factor_decomposition” reworded the description of “holdings” cosmetic
    • “find_similar_regime” reworded the description of “asset_filter” cosmetic
    • “find_similar_regime” reworded the description of “descriptor_target” cosmetic
    • “find_similar_regime” reworded the description of “reference_profile_hint” cosmetic
    • “find_similar_regime” reworded the description of “top_n” cosmetic
    • “get_dossier” reworded the description of “last_n” cosmetic
    • “get_dossier” reworded the description of “request_ids” cosmetic
    • “get_investment_thesis” reworded the description of “slug” cosmetic
    • “ips_gate” reworded the description of “holdings” cosmetic
    • “ips_gate” reworded the description of “liquidity_need” cosmetic
    • “ips_gate” reworded the description of “max_drawdown_tolerance” cosmetic
    • “ips_gate” reworded the description of “time_horizon_years” cosmetic
    • “long_horizon_stress” reworded the description of “annual_inflation” cosmetic
    • “long_horizon_stress” reworded the description of “holdings” cosmetic
    • “long_horizon_stress” reworded the description of “horizon_years” cosmetic
    • “long_horizon_stress” reworded the description of “initial_investment” cosmetic
    • “long_horizon_stress” reworded the description of “long_run_drift” cosmetic
    • “long_horizon_stress” reworded the description of “monthly_contribution” cosmetic
    • “long_horizon_stress” reworded the description of “monthly_withdrawal” cosmetic
    • “long_horizon_stress” reworded the description of “rebalance” cosmetic
    • “long_horizon_stress” reworded the description of “target_amount” cosmetic
    • “long_horizon_stress” reworded the description of “withdrawal_inflation_indexed” cosmetic
    • “market_regime_map” reworded the description of “horizon_days” cosmetic
    • “portfolio_compare” reworded the description of “holdings_a” cosmetic
    • “portfolio_compare” reworded the description of “holdings_b” cosmetic
    • “portfolio_stress_test” reworded the description of “costs” cosmetic
    • “portfolio_stress_test” reworded the description of “holdings” cosmetic
    • “regime_outlook” reworded the description of “as_of” cosmetic
    • “regime_outlook” reworded the description of “asset” cosmetic
    • “regime_outlook” reworded the description of “horizon_days” cosmetic
    • “run_stress_test” reworded the description of “profile_hint” cosmetic
    • “submit_feedback” reworded the description of “agent_name” cosmetic
  • 1 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 59

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://mcp.crashtestyourstrategy.ai/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=api.crashtestyourstrategy.ai CN=YE2,O=Let's Encrypt,C=US 2 Aug 2026 31 Oct 2026 ECDSA 256 ECDSA-SHA384 5e568d7effeb372f147a8e19d7286b9dcda
SANs: api.crashtestyourstrategy.ai, mcp.crashtestyourstrategy.ai
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd
DNSSEC insecure

Validation of mcp.crashtestyourstrategy.ai. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
ai. present 3799 8 Verified
crashtestyourstrategy.ai. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.crashtestyourstrategy.ai/mcp Verified 200
http (plaintext) http://mcp.crashtestyourstrategy.ai/mcp HTTPS enforced 301 https://mcp.crashtestyourstrategy.ai/mcp
MCP tools — 16 exposed · ~3,882 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
backtest_integrity ~346

Confront a backtest claim with its over-optimism failure modes before trusting it. Given an annualized Sharpe + the number of configurations tried + the backtest window (YYYY-MM-DD), returns: the DEFLATED Sharpe — the expected MAXIMUM Sharpe achievable by chance grows with the trial count, so a high in-sample Sharpe is a selection artifact (Bailey & López de Prado); which CRISIS REGIMES were ABSENT from the backtest window (untested, from the historical-anchor catalogue); and a base-rate caveat. If the trial count is unknown — the usual case for an agent reasoning from a backtest — the Sharpe is flagged as not-deflatable / UNPROVEN. All inputs optional; supply as many as known. Descriptive, not advisory.

NameTypeReqDescription
annualized_sharpeThe claimed annualized Sharpe ratio of the backtest.
assetAsset context for the regime-coverage check (default: SPY as the equity-crisis reference).
backtest_endBacktest window end (YYYY-MM-DD).
backtest_startBacktest window start (YYYY-MM-DD) — used to detect crisis regimes the window never contained.
frequencynumberReturn observations per year (252 = daily bars).
kurtnumberKurtosis of the strategy's returns (3 = normal).
n_trialsNumber of configurations tried before selecting this backtest — drives the deflated-Sharpe correction. Unknown → the claim is flagged UNPROVEN.
skewnumberSkewness of the strategy's returns (0 = symmetric).
NameTypeReqDescription
resultobjectyes

No examples provided.

challenge_strategy ~155

Adversarial-evaluation primitive — the semantic integration layer of the platform. Given a strategy identifier, returns a 3-layer analysis: (1) outcome metrics in the worst regimes the strategy was evaluated against, (2) vulnerability profile in the 8-dimension strategy vulnerability ontology with severity classification, (3) descriptor attribution showing which regime descriptors most strongly couple to the strategy's failure. v1 supports only 'buy_and_hold' (the outcome matrix is built once per strategy); future versions will support arbitrary strategy specs once the parser-driven strategy backtest pipeline is wired in. Read ontology://strategy-vulnerabilities for the vulnerability vocabulary.

NameTypeReqDescription
strategy_idstringStrategy identifier; v1 supports only 'buy_and_hold'.
NameTypeReqDescription
resultobjectyes

No examples provided.

describe_regime ~144

Single-regime introspection: returns the median behavioural descriptors of a known regime, the z-scores vs the catalogue population (so you can see what makes THIS regime distinct from the average), an English characterisation generated from the most extreme descriptors, and the top 2 nearest neighbours as a preview. Complements find_similar_regime: that tool ranks neighbours of a target, this tool tells you what a single regime IS. Read this before searching if you want to reason about one regime first.

NameTypeReqDescription
profile_hintstringyesSynthetic stress-regime identifier, e.g. 'whipsaw_synthetic_spy'. Discover valid values via the regimes://available resource.
NameTypeReqDescription
resultobjectyes

No examples provided.

factor_decomposition ~249

Reveal HIDDEN risk concentration: a portfolio can be capital-diversified while its RISK is dominated by one factor. Returns the Euler risk-contribution decomposition (RC_i = w_i*(Sigma*w)_i / w'Sigma*w, summing to 1) alongside the capital weights, using the empirical covariance of real returns. For this universe each asset proxies a factor (SPY=equity-beta, TLT=duration, GOLD=real-asset, BTC=crypto). E.g. a 60/40 is ~83% equity risk; a 50/50 SPY/BTC is ~86% BTC risk despite 50/50 capital. Descriptive, not advisory.

NameTypeReqDescription
holdingsarrayyesPortfolio legs: list of {asset, weight} objects, e.g. [{'asset': 'SPY', 'weight': 0.6}, {'asset': 'TLT', 'weight': 0.4}]. Weights are normalised to sum to 1; assets must be in the substrate universe.…
NameTypeReqDescription
resultobjectyes

No examples provided.

find_similar_regime ~222

Nearest-neighbour retrieval over the cached regime catalogue. Provide EITHER a reference_profile_hint (use that bundle's median descriptors as target) OR a descriptor_target dict (partial spec, missing dimensions are ignored — only the provided ones contribute to distance). Optional asset_filter restricts to one asset. Returns top_n matches with similarity_score (0..1), euclidean distance in z-score space, and per-descriptor signed deltas so the agent can see WHY a regime matched. Read ontology://regime-descriptors for the descriptor definitions, and regimes://descriptors for the full catalogue.

NameTypeReqDescription
asset_filterRestrict matches to one asset (e.g. 'SPY', 'BTC').
descriptor_targetPartial target spec {descriptor_name: value}; only the provided dimensions contribute to the distance. Definitions: ontology://regime-descriptors.
reference_profile_hintUse this catalogue bundle's median descriptors as the search target (mutually exclusive with descriptor_target).
top_nintegerNumber of nearest regimes to return.
NameTypeReqDescription
resultobjectyes

No examples provided.

get_dossier ~182

Compile recorded diagnostic responses into ONE citable record — a proper process documents itself. Every envelope response (MCP and REST) is recorded automatically, keyed by its request_id. Provide explicit request_ids (compiled chronologically) or last_n for the most recent entries. Returns the entries with their gate signals (revision_required + grounding_summary each) plus a ready-to-cite markdown document; revision_required on the dossier itself flags workflows containing unaddressed gate signals. Single verbatim entries: GET /api/v1/dossier/{request_id} on the REST surface. A factual record, not an assessment — descriptive, never advisory.

NameTypeReqDescription
last_nintegerAlternatively: compile the N most recent recorded entries (ignored when request_ids is given).
request_idsExplicit request_ids to compile chronologically (take them from previous responses' request_id fields).
NameTypeReqDescription
resultobjectyes

No examples provided.

get_investment_thesis ~155

Return the complete thesis for `slug`: the economic framework (pillars with [E]/[M]/[K] evidence grades, falsifiers and a deep-dive), the rule-based portfolio (asset blocks × conservative/balanced/offensive weights + sizing rationale), and the stress evidence (per-tier backtest, per-regime median drawdown, real historical episodes, pre-registered claim verdicts, and the hedge hold/break behaviour). This is the 'instant portfolio with all tested attributes'. Discover slugs with list_investment_theses(). Descriptive, not advisory — the agent decides suitability.

NameTypeReqDescription
slugstringyesThesis slug — discover valid values via list_investment_theses().
NameTypeReqDescription
resultobjectyes

No examples provided.

ips_gate ~286

Check a portfolio against an Investment Policy Statement BEFORE accepting it — the planning step a proper process does FIRST (CFA). Provide holdings + IPS constraints (max_drawdown_tolerance as a fraction e.g. 0.15, time_horizon_years, liquidity_need 'low'|'medium'|'high'). Runs the stress test internally and flags where the proposal VIOLATES the stated policy: worst stress drawdown exceeds tolerance; a short horizon cannot absorb a deep drawdown; material holdings are less liquid than the stated need. A HARD GATE, not a score. Descriptive, not advisory.

NameTypeReqDescription
holdingsarrayyesPortfolio legs: list of {asset, weight} objects, e.g. [{'asset': 'SPY', 'weight': 0.6}, {'asset': 'TLT', 'weight': 0.4}]. Weights are normalised to sum to 1; assets must be in the substrate universe.
liquidity_need'low' | 'medium' | 'high' — violated when material holdings are less liquid than the stated need.
max_drawdown_toleranceIPS drawdown tolerance as a fraction, e.g. 0.15 = a -15% maximum acceptable drawdown.
time_horizon_yearsInvestment horizon stated in the IPS; short horizons cannot absorb deep drawdowns.
NameTypeReqDescription
resultobjectyes

No examples provided.

list_investment_theses ~116

Discover the investment-thesis catalog. Each entry is a descriptive case study that pairs an economic framework with a rule-based portfolio and the synthetic + historical stress evidence for that allocation. Returns one compact summary per thesis (slug, title, one-liner, tags, risk tiers, framework summary, headline finding). Call get_investment_thesis(slug) for the full framework / portfolio / stress evidence, or read the thesis://{slug} resource. Descriptive, not advisory — the agent decides what is suitable.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultobjectyes

No examples provided.

long_horizon_stress ~491

Distribution of multi-year wealth paths for a savings plan (monthly_contribution) or a withdrawal plan (monthly_withdrawal, inflation-indexed by default) on a portfolio from the substrate universe. Multi-year paths chain ~2y model blocks (block-bootstrap, disclosed); long-run drift is RE-ANCHORED to stated capital-market assumptions (overridable via long_run_drift; the substrate's raw stress drift would compound a structural bear universe — both are echoed in the output) while the model's path shape (vol, clustering, correlations, hedge-breaks) is kept. Costs are ON by default. Returns terminal-wealth quantiles (nominal + real), ruin/shortfall probabilities, a sequence-of-returns diagnosis (same plan, bad vs good first two years), and a drift-sensitivity block (assumptions − 2pp). Amounts in the caller's currency unit. Descriptive, not advisory — no rate, allocation, or product is recommended.

NameTypeReqDescription
annual_inflationnumberAnnual inflation assumption for indexing and real-value reporting (fraction, default 0.02).
holdingsarrayyesPortfolio legs: list of {asset, weight} objects, e.g. [{'asset': 'SPY', 'weight': 0.6}, {'asset': 'TLT', 'weight': 0.4}]. Weights are normalised to sum to 1; assets must be in the substrate universe.
horizon_yearsnumberyesPlan horizon in years (multi-year paths are chained from ~2-year model blocks).
initial_investmentnumberStarting capital (account currency).
long_run_driftOverride the re-anchored long-run drift per asset: {ASSET: annual drift fraction}; omit for the stated capital-market assumptions.
monthly_contributionnumberFixed monthly savings contribution (savings-plan mode).
monthly_withdrawalnumberMonthly withdrawal (withdrawal-plan mode); inflation-indexed when withdrawal_inflation_indexed is true.
rebalancestringRebalancing frequency: 'daily' | 'monthly' | 'quarterly'.
target_amountOptional wealth target; the output reports the probability of reaching it.
withdrawal_inflation_indexedbooleanIndex the monthly withdrawal to inflation.
NameTypeReqDescription
resultobjectyes

No examples provided.

market_regime_map ~251

Compressed cross-category map of the current market state in ONE call: for 18 category proxies (US large-cap + tech, the 9 SPDR sectors, developed ex-US, emerging markets, long Treasuries, high-yield credit, gold, oil, Bitcoin) the operational regime (BULL/SIDEWAYS/BEAR/CRISIS), model-conditional regime probabilities over a 5- or 21-trading-day horizon, stress probability vs its unconditional baseline, a descriptive historical forward-return distribution conditional on the current regime label, and an equity-factor commonality flag (US sectors largely re-express one factor — the map is fewer independent signals than rows). Per (asset, horizon) cell only the preregistered, out-of-sample-validated model tier ships (covariate logit / persistence / unconditional — see tier_pvalues). Deliberately ships NO directional up/down forecast: regime membership is the validated signal, not return direction. Use regime_outlook for single-asset depth with as_of support. Descriptive, not a market prediction, not advisory.

NameTypeReqDescription
horizon_daysintegerValidated horizons only: 5 or 21 trading days.
NameTypeReqDescription
resultobjectyes

No examples provided.

portfolio_compare ~254

Compare two portfolios (A = reference, B = candidate revision) on IDENTICAL simulated substrate paths — a paired design, so every delta is attributable to the weights, not seed noise. Returns drawdown-distribution deltas (median/worst/quantiles), probability-weighted scenario summaries, per-scenario outcome deltas, risk-concentration shift (Euler decomposition), and which diversification failures the candidate introduces or resolves. revision_required flags a candidate that deepens the worst-path drawdown or introduces a new diversification failure — the case where a revision made robustness worse. Provide holdings_a / holdings_b as lists of {asset, weight}. Descriptive, not advisory; neither portfolio is recommended or ranked.

NameTypeReqDescription
holdings_aarrayyesReference portfolio A. Portfolio legs: list of {asset, weight} objects, e.g. [{'asset': 'SPY', 'weight': 0.6}, {'asset': 'TLT', 'weight': 0.4}]. Weights are normalised to sum to 1; assets must be in…
holdings_barrayyesCandidate revision B, same shape — evaluated on paths identical to A's, so every delta is attributable to the weights.
NameTypeReqDescription
resultobjectyes

No examples provided.

portfolio_stress_test ~403

Stress a multi-asset portfolio across cross-asset regimes (baseline / risk_off_crisis / rate_shock). Provide `holdings` as a list of {asset, weight}; weights are normalised. Returns, per regime: portfolio return, worst-episode drawdown, a per-leg decomposition, and a cross_asset_finding (diversification_intact / hedge_holds / hedge_breaks / shared_drawdown) describing how the holdings behaved TOGETHER. The joint correlation structure (incl. the bond hedge that can break under rate shocks) is baked into a pre-computed substrate, so Tier-1 is instant over a fixed universe (read portfolio://universe). Optional `costs` ({rebalance: none|daily|monthly|quarterly|band, annual_costs: {asset: fraction}, transaction_cost_bps}) adds a cost_impact block: frictionless vs the stated rebalancing policy + costs via a path-loop engine with real unit accounting, paired on identical paths. The substrate is a fixed 4-asset universe (SPY, TLT, GOLD, BTC; read portfolio://universe). For ANY other ticker or a custom multi-asset book, use build_portfolio in assess mode (portfolios={name:{ticker:weight}}), which calibrates and stresses an arbitrary universe live. Descriptive, not advisory.

NameTypeReqDescription
costsOptional cost model: {'rebalance': 'monthly', 'transaction_cost_bps': float, 'annual_costs': {ASSET: annual fraction}}. Omit for the frictionless default.
holdingsarrayyesPortfolio legs: list of {asset, weight} objects, e.g. [{'asset': 'SPY', 'weight': 0.6}, {'asset': 'TLT', 'weight': 0.4}]. Weights are normalised to sum to 1; assets must be in the substrate universe.
NameTypeReqDescription
resultobjectyes

No examples provided.

regime_outlook ~263

Model-conditional probabilities that an asset is in each market regime (BULL / SIDEWAYS / BEAR / CRISIS, operational trailing-vol/drift labels) after a 5- or 21-trading-day horizon — the probability complement to the conditional stress tools: stress tools answer 'what happens GIVEN regime X', this answers 'how likely is regime X from today's observable state'. Ships only the preregistered, out-of-sample-validated tier (covariate logit; seasonality was tested and falsified); the persistence and unconditional baselines are reported alongside so an agent can see how much the model adds. Validated assets: SPY, QQQ, GLD, TLT. Optional as_of (YYYY-MM-DD) computes the outlook at a historical date. Probabilities describe membership in operationally defined regime classes — descriptive, not a market prediction, not advisory.

NameTypeReqDescription
as_ofstringOptional historical evaluation date (YYYY-MM-DD); empty = latest data.
assetstringOne of the out-of-sample-validated assets: 'SPY', 'QQQ', 'GLD', 'TLT'.
horizon_daysintegerValidated horizons only: 5 or 21 trading days.
NameTypeReqDescription
resultobjectyes

No examples provided.

run_stress_test ~134

Run a buy-and-hold backtest against the synthetic stress regime identified by profile_hint. Returns a structured diagnostic: robustness score (0-100), per-FM-bucket failure-behavior classification with confidence + context, and the resolved regime parameters that were actually evaluated. v1 supports only buy-and-hold. To discover available regime profile_hints, read the `regimes://available` resource. Diagnostic is descriptive, not advisory.

NameTypeReqDescription
profile_hintstringyesSynthetic stress-regime identifier, e.g. 'whipsaw_synthetic_spy'. Discover valid values via the regimes://available resource.
NameTypeReqDescription
resultobjectyes

No examples provided.

submit_feedback ~231

Persist structured improvement feedback about a previous tool response. Provide your agent identity, the request_id you are commenting on, and one or more feedback items each carrying category (from the FeedbackCategory ontology), severity, observation, optional suggested_action, and agent_confidence (0..1). Read `feedback://insights` to see aggregated cross-agent feedback.

NameTypeReqDescription
agent_namestringyesYour agent identity (model or product name).
agent_vendorVendor of the submitting agent (e.g. 'Anthropic', 'OpenAI').
feedback_itemsarrayyesOne or more items, each {category (FeedbackCategory ontology), severity, observation, suggested_action?, agent_confidence (0..1)}.
overall_confidencenumberyesOverall confidence in this feedback, 0..1.
platform_version_evaluatedSchema/platform version the feedback refers to (e.g. 'ctys-agent-v1').
request_idrequest_id of the response this feedback refers to.
session_contextOptional free-text context of the session/workflow the feedback arose in.
NameTypeReqDescription
resultobjectyes

No examples provided.