Backtesting Arena
Crypto backtesting & Bitcoin cycle analytics. Point-in-time, DSR-corrected, look-ahead-aware.The vendor's description, from its MCP Registry listing.
Every public check ran and passed. Public audit: we connect as an AI client would, list the tools and check what they say. We do not run them. How we audit
- Does it work?
- YesConnected in 291 ms.
- Sign-up?
- None neededIt answered without any account or key.
- Can it change things?
- YesSome tools say they can change things. Your AI client should ask you first.
https://tradingstrategies.work/api/mcpSource code Website Streamable HTTP · protocol 2025-11-25 · server version 1.13.0
What we checked
Security
Passed: Connections are encrypted (HTTPS).
Passed: No hidden instructions found in tool text.
Safety labels
Note: 5 tools are labelled as able to change things.
Expected for tools that send, write or buy. Your AI client should ask before calling them.
- arena_run_backtest
- arena_compare_strategies
- arena_run_universe_backtest
- arena_run_grid_backtest
- arena_call_extended
Passed: Every tool says whether it only reads or can change things.
Tools
Note: Some tool text is long, so it uses more of the AI's working memory.
- server instructions (5,285 characters)
- arena_call_extended (4,732 characters)
Passed: 49 tools listed.
Passed: Every tool describes its inputs with a valid schema.
Protocol
Passed: The MCP handshake works (Streamable HTTP).
Passed: Protocol version 2025-11-25 (latest).
Passed: Unknown requests are refused.
Connection
Passed: The server responds.
Tools (49)
As the server describes them. The labels are the server's own: it says whether each tool only reads or can change things.
- arena_get_pulseHow hot is the Bitcoin market today? Daily 0-100 heat score for the Bitcoin market, aggregated from 8 components (BTC-Cycle, F&G, Altcoin-Season, Bullmarket-Ampel, Funding-Rate, Hash-Ribbons, Mayer-M…Read-only
- arena_get_cycleCrypto cycle position — where are we in the cycle? Default BTC: point-in-time 9-indicator aggregation (Pi-Cycle Top & Bottom, Mayer Multiple, weekly RSI, 200-week-MA distance, halving position, Fear…Read-only
- arena_get_spot_priceCurrent BTC, ETH and SOL spot price — what is Bitcoin (or ETH/SOL) worth right now? Live USDT-quoted last price plus 24h change %, high and low from Binance. Use this to anchor the connector’s own an…Read-only
- arena_get_stablecoin_supplyAggregate stablecoin supply (crypto-liquidity proxy) — is the liquidity impulse turning or accelerating? macro_regime only gives the 30d delta; this exposes the trend: current supply, 30d/90d change…Read-only
- arena_get_etf_flowsSpot-ETF net flows (USD millions) — is the flow impulse turning or accelerating? The summary only gives point-in-time deltas; this exposes the trend: 30d/90d net flow, a direction label (inflows/outf…Read-only
- arena_get_altcoin_seasonIs it altcoin season? Daily Altcoin-Season indicator (v7 Native-Filter methodology). Returns BTC-, alt- and stablecoin dominance, the 4 Layer-1 signals (alt_dominance, total_market_cap, btc_dominance…Read-only
- arena_get_fear_greedHow fearful or greedy is the market right now? Crypto Fear & Greed Index (alternative.me). Returns the current `value` (0-100) and `classification` (extreme fear / fear / neutral / greed / extreme gr…Read-only
- arena_get_bullmarket_ampelIs this still a bull market? Bitcoin Bullmarket-Ampel current state (0-5 active stages). Returns active_count, a stages[] breakdown (each stage with key, label, active and `since` = first day of its…Read-only
- arena_get_funding_rateAre longs or shorts paying right now? Latest BTC perpetual funding rate, averaged across up to 4 exchanges (Binance, Bybit, OKX, Deribit; 8h settlement cadence). Returns the day's averaged value plus…Read-only
- arena_get_macro_regimeWhat is the macro backdrop doing? Daily Macro Regime snapshot from 18 components in 6 tiers (Liquidity 30%, Financial Conditions 20%, Risk Appetite 15%, Crypto Liquidity 10%, Business Cycle 15%, Infl…Read-only
- arena_get_btc_market_structureIs the trend up or down, and how fresh is the flip? Daily Bitcoin market structure from 1000-bar Phantomflow adaptation (BTCUSDT 1d). Returns current_trend (up/down/sideways), last trend change times…Read-only
- arena_get_key_levelsWhich price levels matter above and below spot? Reproducible Bitcoin structural levels on BOTH sides of spot, in TWO distinct provenance classes. (1) resistance/support: swing-pivot clusters — where…Read-only
- arena_get_iv_snapshotWhat is the options market pricing in? Latest Deribit volatility snapshot for BTC or ETH. Returns DVOL (30d vol index), constant-maturity ATM implied vol (30/60/90/180d via options chain), 30d realiz…Read-only
- arena_list_onchain_seriesWhich on-chain series are available? Lists all 78 available Bitcoin Research Kit (BRK) on-chain series across the groups pilot, sentiment, mining, supply, cointime, activity, liquidity (e.g. MVRV, NU…Read-only
- arena_get_onchain_latestWhat does this on-chain metric read right now? Returns the most recent value of ONE on-chain series from the Bitcoin Research Kit as { series_id, metric_name, date, value }. Cheapest way to answer "w…Read-only
- arena_get_sth_cost_basisWhat did recent buyers pay on average — and how far is spot from that? Latest BTC short-term-holder cost basis (realized price of coins younger than ~155 days, BRK brk_sth_realized_price), derived ST…Read-only
- arena_get_onchain_historyHow has this on-chain metric moved over time? Returns the full TIME SERIES of one on-chain metric from the Bitcoin Research Kit — date/value pairs in ascending order, with history back to 2009 for mo…Read-only
- arena_get_max_painWhat happened at the last Deribit expiry? Max pain and how spot settled against it: max_pain_strike, spot_at_expiry, %-diff, put_call_ratio, notional. Plus up to 10 upcoming expiries, each with curre…Read-only
- arena_get_max_pain_historyDoes max pain actually pull price to the strike? Settled Deribit BTC options expiries with the max-pain level we compute per expiry, for measuring the convergence question: does spot drift toward the…Read-only
- arena_statusAm I connected, and what can this key do? Returns auth status (key kind: oauth connector or bearer API key, tier), server version, current UTC time, and the rate-limit state (hour/day used, remaining…Read-only
- arena_list_strategiesWhich strategies can I backtest here? Lists all backtest strategies (key, label, plan, supported asset classes, primary indicators, free_params = number of user-tunable parameters incl. mode switches…Read-only
- arena_list_universesWhich asset universes can I test against? Lists all crypto asset universes (BTC, top-10 crypto, top-50 crypto, etc.) — the underlying pair-sets used by custom-report and universe-backtest endpoints.…Read-only
- arena_get_universeWhich pairs are in this universe? Returns one pair universe in full: its id, label, selection rule and the complete list of pairs it currently contains. Use it to see what you are about to test BEFOR…Read-only
- arena_get_strategy_insightsWhich strategy and interval combinations actually performed? Aggregated backtest performance per (strategy × interval) cell. If `strategy` AND `interval` provided, returns detail with per-asset break…Read-only
- arena_get_strategy_performanceHow did this exact strategy, asset and interval perform? Aggregated backtest performance for ONE specific (strategy, asset, interval) combination. Returns run_count, avg_cagr, avg_win_rate, avg_drawd…Read-only
- arena_get_strategy_filter_effectWhat would each entry filter have changed for this strategy? Per-(strategy, asset, interval) filter-effect analysis. Returns baseline-stats (no filters) + each observed filter-variant's stats with ca…Read-only
- arena_get_strategy_performance_by_regimeIn which macro regime has this strategy worked? Historical backtest performance for ONE (strategy, asset, interval) combination SPLIT BY macro market regime (sweet_spot / late_cycle_warning / crisis…Read-only
- arena_get_edge_reportsWhich entry filter carries a real edge? Platform-wide aggregated analysis: how each Pro+ entry filter (200 WMA, ATR low/high/expansion, Altcoin Season, Bullmarket confirm/strict) affects strategy CAG…Read-only
- arena_list_backtestsWhich backtests have I run? Lists the backtest runs belonging to the authenticated user — newest first, with id, strategy, pair, interval, date range and headline metrics per run. Use it to find a ru…Read-only
- arena_get_backtestWhat exactly did that backtest do? Returns the full record of ONE backtest run by id: strategy, pair, interval, date range, parameters, filters and the aggregate metrics (CAGR, total return, win-rate…Read-only
- validate_strategyDoes this strategy survive an honest test? Backtest a trading strategy honestly — look-ahead-aware validation; signal_list/trade_list also get the probabilistic Sharpe ratio (psr, Bailey & López de P…Read-only
- arena_run_backtestHow would this strategy have performed? Run ONE strategy on ONE pair over a date range and get the full result: CAGR, total return, max drawdown, win-rate, trade count, Buy & Hold comparison, net-of-…Can change things
- arena_compare_strategiesWhich of these strategies performed best on the same data? Run 2–5 strategies against the SAME pair, interval and date range and return per-strategy metrics plus a comparison summary (best by CAGR, b…Can change things
- arena_run_universe_backtestDoes this strategy hold up across a whole universe? Runs it against every pair in the universe. Pair cap depends on your API tier: Pro 50, Power 250 — Power covers crypto-top-250 in ONE job, and a si…Can change things
- arena_get_job_statusIs my universe backtest finished? Polls an async job by job_id (created via arena_run_universe_backtest). Returns status (pending/running/completed/failed), progress_pct, pairs_completed, and once co…Read-only
- arena_run_grid_backtestWould a grid bot have made money here? Simulate a GRID BOT (buy-low / sell-high ladder inside a fixed price range) on historical candles. Returns final value, return %, CAGR, trade count, fees paid a…Can change things
- arena_get_gem_scoresAltcoin screener ranking — which altcoins look strong right now? Today's CoinGecko Top-200 minus stablecoins and tokenized fiat, scored by a composite of 3 factor groups: Mean-Reversion (A), Tokenomi…Read-only
- arena_get_volatility_historyHow volatile has Bitcoin been? Daily Bitcoin volatility time series: realized volatility (30d & 90d, √365-annualized — calendar days, the same basis as DVOL — close-to-close) and ATR% (Wilder EMA-14,…Read-only
- arena_list_knowledgeWhat knowledge objects exist here? Discover what Knowledge Objects exist: lists all published types + their subjects (with min_tier, api_path, seo_slug, latest as_of). Use this BEFORE arena_get_knowl…Read-only
- arena_get_knowledgeWhat does the platform know about this subject? Fetch a versioned, explainable Knowledge Object by type + subject (e.g. type='market_regime', subject='GLOBAL'). Returns the current published envelope…Read-only
- arena_dip_decisionBuy now or wait for the dip? Decision-math over the user's OWN assumptions (target/dip prices, probabilities, capital). Two modes: "compare" = expected value of Buy-Now vs Wait vs Split + the breakev…Read-only
- arena_get_historical_analogWhat happened historically after the Bitcoin cycle looked like this? Conditional forward-return distribution for a named preset cycle state — over N DISTINCT historical episodes matching that state (…Read-only
- arena_get_robustness_fieldIs this backtest result real, or a lucky cell? Assess one backtest result against its neighborhood instead of trusting a single "+X% CAGR" cell. Given a (strategy, interval, pair) and YOUR result (us…Read-only
- arena_is_distinguishableDo these two backtest figures actually differ? Check before ranking them. Pass the two values as `a` and `b` (same metric, same basis) plus `axes` — which arbitrary choices went into them — and the t…Read-only
- arena_get_indicator_snapshotWhat do the classic indicators read right now? Current RSI(14), MACD(12/26/9), Bollinger(20,2), ATR(14) and OBV for a pair — each with a PERCENTILE RANK against that indicator's own history on that p…Read-only
- arena_get_signal_contextShould I take this entry? Answers it for one (strategy, pair, interval) in ONE call instead of seven. Aligns what each entry filter historically did to this strategy (arena_get_strategy_filter_effect…Read-only
- arena_get_asset_snapshotWhere does this coin stand? ONE call per Binance USDT pair instead of six: last daily close, 7/30/90/365-day returns, relative strength vs BTC and vs ETH on the same horizons (with the MEASURED base…Read-only
- arena_batchSeveral market snapshots in ONE call instead of one roundtrip per read. Batchable reads (14): spot_price, pulse, cycle, fear_greed, funding_rate, macro_regime, iv_snapshot, etf_flows, stablecoin_supp…Read-only
- arena_call_extendedGateway to the EXTENDED tools of this server — listed here in one line each instead of individually, to keep the tool list short. Use it when no listed tool fits: per-metric daily history series, sub…Can change things
Audit history
- Nov 13Passed
What we sent
Every request in this audit, with the answer and how long it took. We never send credentials and never call a tool.
| Request | Answer | Time |
|---|---|---|
| initialize | HTTP 200 | 291 ms |
| initialized | HTTP 202 | 285 ms |
| tools/list | HTTP 200 | 229 ms |
| unknown-method | HTTP 401 | 110 ms |
Run this server, or disagree with the result?
Fix the issue and it shows in the next weekly audit, or email us to ask for a re-audit or to dispute a finding. Read how we audit for what each check means.
{
"mcpServers": {
"io-github-schoasch-backtesting-arena": {
"type": "http",
"url": "https://tradingstrategies.work/api/mcp"
}
}
}{
"server": {
"name": "io.github.Schoasch/backtesting-arena",
"title": "Backtesting Arena",
"url": "https://tradingstrategies.work/api/mcp",
"transport": "streamable-http",
"topics": [
"Financial"
],
"repository": "https://github.com/Schoasch/skill-backtesting-arena",
"website": "https://tradingstrategies.work/api",
"inRegistry": true
},
"audit": {
"slug": "io-github-schoasch-backtesting-arena",
"url": "https://tradingstrategies.work/api/mcp",
"auditedAt": "2026-11-13T16:27:29.234Z",
"firstAuditedAt": "2026-11-13T15:59:15.588Z",
"auditor": "1.0.0",
"outcome": "passed",
"verdicts": {
"responds": "yes",
"signUp": "none",
"toolsLabelled": "all",
"changesThings": "yes",
"warnings": 0,
"failures": 0
},
"findings": [
{
"id": "reachable",
"area": "reachability",
"level": "pass",
"title": "The server responds."
},
{
"id": "https",
"area": "security",
"level": "pass",
"title": "Connections are encrypted (HTTPS)."
},
{
"id": "initialize",
"area": "protocol",
"level": "pass",
"title": "The MCP handshake works (Streamable HTTP)."
},
{
"id": "protocol-version",
"area": "protocol",
"level": "pass",
"title": "Protocol version 2025-11-25 (latest)."
},
{
"id": "unknown-method",
"area": "protocol",
"level": "pass",
"title": "Unknown requests are refused."
},
{
"id": "tools-list",
"area": "tools",
"level": "pass",
"title": "49 tools listed."
},
{
"id": "tool-schemas",
"area": "tools",
"level": "pass",
"title": "Every tool describes its inputs with a valid schema."
},
{
"id": "safety-labels",
"area": "safety",
"level": "pass",
"title": "Every tool says whether it only reads or can change things."
},
{
"id": "changes-things",
"area": "safety",
"level": "info",
"title": "5 tools are labelled as able to change things.",
"detail": "Expected for tools that send, write or buy. Your AI client should ask before calling them.",
"evidence": [
"arena_run_backtest",
"arena_compare_strategies",
"arena_run_universe_backtest",
"arena_run_grid_backtest",
"arena_call_extended"
]
},
{
"id": "tool-poisoning",
"area": "security",
"level": "pass",
"title": "No hidden instructions found in tool text."
},
{
"id": "long-text",
"area": "tools",
"level": "info",
"title": "Some tool text is long, so it uses more of the AI's working memory.",
"evidence": [
"server instructions (5,285 characters)",
"arena_call_extended (4,732 characters)"
]
}
],
"server": {
"name": "backtesting-arena",
"version": "1.13.0",
"protocolVersion": "2025-11-25",
"transport": "streamable-http"
},
"toolCount": 49,
"toolsHash": "6c5dc1daa128a2ef95ed20d346c9e18839517a9b9666b8ee275e8f94e357176a",
"latencyMs": 291,
"history": [
{
"date": "2026-11-13",
"outcome": "passed",
"tools": 49
}
]
},
"tools": [
{
"name": "arena_get_pulse",
"title": "Get Arena Pulse Today",
"readOnly": true,
"destructive": false,
"description": "How hot is the Bitcoin market today? Daily 0-100 heat score for the Bitcoin market, aggregated from 8 components (BTC-Cycle, F&G, Altcoin-Season, Bullmarket-Ampel, Funding-Rate, Hash-Ribbons, Mayer-M…"
},
{
"name": "arena_get_cycle",
"title": "Get Crypto Cycle Snapshot (BTC / ETH / SOL)",
"readOnly": true,
"destructive": false,
"description": "Crypto cycle position — where are we in the cycle? Default BTC: point-in-time 9-indicator aggregation (Pi-Cycle Top & Bottom, Mayer Multiple, weekly RSI, 200-week-MA distance, halving position, Fear…"
},
{
"name": "arena_get_spot_price",
"title": "Get BTC/ETH/SOL Spot Price",
"readOnly": true,
"destructive": false,
"description": "Current BTC, ETH and SOL spot price — what is Bitcoin (or ETH/SOL) worth right now? Live USDT-quoted last price plus 24h change %, high and low from Binance. Use this to anchor the connector’s own an…"
},
{
"name": "arena_get_stablecoin_supply",
"title": "Get Stablecoin Supply Trend",
"readOnly": true,
"destructive": false,
"description": "Aggregate stablecoin supply (crypto-liquidity proxy) — is the liquidity impulse turning or accelerating? macro_regime only gives the 30d delta; this exposes the trend: current supply, 30d/90d change…"
},
{
"name": "arena_get_etf_flows",
"title": "Get Spot-ETF Net-Flow Trend (BTC / ETH / SOL / XRP and more)",
"readOnly": true,
"destructive": false,
"description": "Spot-ETF net flows (USD millions) — is the flow impulse turning or accelerating? The summary only gives point-in-time deltas; this exposes the trend: 30d/90d net flow, a direction label (inflows/outf…"
},
{
"name": "arena_get_altcoin_season",
"title": "Get Altcoin Season Snapshot",
"readOnly": true,
"destructive": false,
"description": "Is it altcoin season? Daily Altcoin-Season indicator (v7 Native-Filter methodology). Returns BTC-, alt- and stablecoin dominance, the 4 Layer-1 signals (alt_dominance, total_market_cap, btc_dominance…"
},
{
"name": "arena_get_fear_greed",
"title": "Get Fear & Greed Index",
"readOnly": true,
"destructive": false,
"description": "How fearful or greedy is the market right now? Crypto Fear & Greed Index (alternative.me). Returns the current `value` (0-100) and `classification` (extreme fear / fear / neutral / greed / extreme gr…"
},
{
"name": "arena_get_bullmarket_ampel",
"title": "Get Bullmarket Ampel Snapshot",
"readOnly": true,
"destructive": false,
"description": "Is this still a bull market? Bitcoin Bullmarket-Ampel current state (0-5 active stages). Returns active_count, a stages[] breakdown (each stage with key, label, active and `since` = first day of its…"
},
{
"name": "arena_get_funding_rate",
"title": "Get Funding Rate Snapshot",
"readOnly": true,
"destructive": false,
"description": "Are longs or shorts paying right now? Latest BTC perpetual funding rate, averaged across up to 4 exchanges (Binance, Bybit, OKX, Deribit; 8h settlement cadence). Returns the day's averaged value plus…"
},
{
"name": "arena_get_macro_regime",
"title": "Get Macro Regime Snapshot",
"readOnly": true,
"destructive": false,
"description": "What is the macro backdrop doing? Daily Macro Regime snapshot from 18 components in 6 tiers (Liquidity 30%, Financial Conditions 20%, Risk Appetite 15%, Crypto Liquidity 10%, Business Cycle 15%, Infl…"
},
{
"name": "arena_get_btc_market_structure",
"title": "Get BTC Market Structure",
"readOnly": true,
"destructive": false,
"description": "Is the trend up or down, and how fresh is the flip? Daily Bitcoin market structure from 1000-bar Phantomflow adaptation (BTCUSDT 1d). Returns current_trend (up/down/sideways), last trend change times…"
},
{
"name": "arena_get_key_levels",
"title": "Get BTC Key Levels (S/R clusters + indicator levels)",
"readOnly": true,
"destructive": false,
"description": "Which price levels matter above and below spot? Reproducible Bitcoin structural levels on BOTH sides of spot, in TWO distinct provenance classes. (1) resistance/support: swing-pivot clusters — where…"
},
{
"name": "arena_get_iv_snapshot",
"title": "Get Deribit IV Snapshot",
"readOnly": true,
"destructive": false,
"description": "What is the options market pricing in? Latest Deribit volatility snapshot for BTC or ETH. Returns DVOL (30d vol index), constant-maturity ATM implied vol (30/60/90/180d via options chain), 30d realiz…"
},
{
"name": "arena_list_onchain_series",
"title": "List Available BRK On-Chain Series",
"readOnly": true,
"destructive": false,
"description": "Which on-chain series are available? Lists all 78 available Bitcoin Research Kit (BRK) on-chain series across the groups pilot, sentiment, mining, supply, cointime, activity, liquidity (e.g. MVRV, NU…"
},
{
"name": "arena_get_onchain_latest",
"title": "Get On-Chain Series Latest Value",
"readOnly": true,
"destructive": false,
"description": "What does this on-chain metric read right now? Returns the most recent value of ONE on-chain series from the Bitcoin Research Kit as { series_id, metric_name, date, value }. Cheapest way to answer \"w…"
},
{
"name": "arena_get_sth_cost_basis",
"title": "Get BTC Short-Term-Holder Cost Basis (latest)",
"readOnly": true,
"destructive": false,
"description": "What did recent buyers pay on average — and how far is spot from that? Latest BTC short-term-holder cost basis (realized price of coins younger than ~155 days, BRK brk_sth_realized_price), derived ST…"
},
{
"name": "arena_get_onchain_history",
"title": "Get On-Chain Series Historical Values",
"readOnly": true,
"destructive": false,
"description": "How has this on-chain metric moved over time? Returns the full TIME SERIES of one on-chain metric from the Bitcoin Research Kit — date/value pairs in ascending order, with history back to 2009 for mo…"
},
{
"name": "arena_get_max_pain",
"title": "Get Deribit BTC Max Pain (latest + upcoming)",
"readOnly": true,
"destructive": false,
"description": "What happened at the last Deribit expiry? Max pain and how spot settled against it: max_pain_strike, spot_at_expiry, %-diff, put_call_ratio, notional. Plus up to 10 upcoming expiries, each with curre…"
},
{
"name": "arena_get_max_pain_history",
"title": "Get Deribit BTC Max Pain History",
"readOnly": true,
"destructive": false,
"description": "Does max pain actually pull price to the strike? Settled Deribit BTC options expiries with the max-pain level we compute per expiry, for measuring the convergence question: does spot drift toward the…"
},
{
"name": "arena_status",
"title": "Connection, Auth & Quota Status",
"readOnly": true,
"destructive": false,
"description": "Am I connected, and what can this key do? Returns auth status (key kind: oauth connector or bearer API key, tier), server version, current UTC time, and the rate-limit state (hour/day used, remaining…"
},
{
"name": "arena_list_strategies",
"title": "List Available Trading Strategies",
"readOnly": true,
"destructive": false,
"description": "Which strategies can I backtest here? Lists all backtest strategies (key, label, plan, supported asset classes, primary indicators, free_params = number of user-tunable parameters incl. mode switches…"
},
{
"name": "arena_list_universes",
"title": "List Asset Universes",
"readOnly": true,
"destructive": false,
"description": "Which asset universes can I test against? Lists all crypto asset universes (BTC, top-10 crypto, top-50 crypto, etc.) — the underlying pair-sets used by custom-report and universe-backtest endpoints.…"
},
{
"name": "arena_get_universe",
"title": "Get Universe Detail",
"readOnly": true,
"destructive": false,
"description": "Which pairs are in this universe? Returns one pair universe in full: its id, label, selection rule and the complete list of pairs it currently contains. Use it to see what you are about to test BEFOR…"
},
{
"name": "arena_get_strategy_insights",
"title": "Get Strategy Insights Matrix or Detail",
"readOnly": true,
"destructive": false,
"description": "Which strategy and interval combinations actually performed? Aggregated backtest performance per (strategy × interval) cell. If `strategy` AND `interval` provided, returns detail with per-asset break…"
},
{
"name": "arena_get_strategy_performance",
"title": "Get Strategy Performance Snapshot (per Asset)",
"readOnly": true,
"destructive": false,
"description": "How did this exact strategy, asset and interval perform? Aggregated backtest performance for ONE specific (strategy, asset, interval) combination. Returns run_count, avg_cagr, avg_win_rate, avg_drawd…"
},
{
"name": "arena_get_strategy_filter_effect",
"title": "Get Strategy Filter Effect Snapshot (per Asset)",
"readOnly": true,
"destructive": false,
"description": "What would each entry filter have changed for this strategy? Per-(strategy, asset, interval) filter-effect analysis. Returns baseline-stats (no filters) + each observed filter-variant's stats with ca…"
},
{
"name": "arena_get_strategy_performance_by_regime",
"title": "Get Regime-Aware Strategy Performance",
"readOnly": true,
"destructive": false,
"description": "In which macro regime has this strategy worked? Historical backtest performance for ONE (strategy, asset, interval) combination SPLIT BY macro market regime (sweet_spot / late_cycle_warning / crisis…"
},
{
"name": "arena_get_edge_reports",
"title": "Get Edge Library — Filter Effect Reports",
"readOnly": true,
"destructive": false,
"description": "Which entry filter carries a real edge? Platform-wide aggregated analysis: how each Pro+ entry filter (200 WMA, ATR low/high/expansion, Altcoin Season, Bullmarket confirm/strict) affects strategy CAG…"
},
{
"name": "arena_list_backtests",
"title": "List Your Backtests",
"readOnly": true,
"destructive": false,
"description": "Which backtests have I run? Lists the backtest runs belonging to the authenticated user — newest first, with id, strategy, pair, interval, date range and headline metrics per run. Use it to find a ru…"
},
{
"name": "arena_get_backtest",
"title": "Get Backtest Detail",
"readOnly": true,
"destructive": false,
"description": "What exactly did that backtest do? Returns the full record of ONE backtest run by id: strategy, pair, interval, date range, parameters, filters and the aggregate metrics (CAGR, total return, win-rate…"
},
{
"name": "validate_strategy",
"title": "Validate a strategy/signal (honest backtest)",
"readOnly": true,
"destructive": false,
"description": "Does this strategy survive an honest test? Backtest a trading strategy honestly — look-ahead-aware validation; signal_list/trade_list also get the probabilistic Sharpe ratio (psr, Bailey & López de P…"
},
{
"name": "arena_run_backtest",
"title": "Run a New Backtest",
"readOnly": false,
"destructive": false,
"description": "How would this strategy have performed? Run ONE strategy on ONE pair over a date range and get the full result: CAGR, total return, max drawdown, win-rate, trade count, Buy & Hold comparison, net-of-…"
},
{
"name": "arena_compare_strategies",
"title": "Compare 2-5 Strategies",
"readOnly": false,
"destructive": false,
"description": "Which of these strategies performed best on the same data? Run 2–5 strategies against the SAME pair, interval and date range and return per-strategy metrics plus a comparison summary (best by CAGR, b…"
},
{
"name": "arena_run_universe_backtest",
"title": "Run Backtest on a Pair Universe (async)",
"readOnly": false,
"destructive": false,
"description": "Does this strategy hold up across a whole universe? Runs it against every pair in the universe. Pair cap depends on your API tier: Pro 50, Power 250 — Power covers crypto-top-250 in ONE job, and a si…"
},
{
"name": "arena_get_job_status",
"title": "Get Async Job Status",
"readOnly": true,
"destructive": false,
"description": "Is my universe backtest finished? Polls an async job by job_id (created via arena_run_universe_backtest). Returns status (pending/running/completed/failed), progress_pct, pairs_completed, and once co…"
},
{
"name": "arena_run_grid_backtest",
"title": "Run a Grid-Trading Backtest",
"readOnly": false,
"destructive": false,
"description": "Would a grid bot have made money here? Simulate a GRID BOT (buy-low / sell-high ladder inside a fixed price range) on historical candles. Returns final value, return %, CAGR, trade count, fees paid a…"
},
{
"name": "arena_get_gem_scores",
"title": "Get Altcoin Screener Rankings",
"readOnly": true,
"destructive": false,
"description": "Altcoin screener ranking — which altcoins look strong right now? Today's CoinGecko Top-200 minus stablecoins and tokenized fiat, scored by a composite of 3 factor groups: Mean-Reversion (A), Tokenomi…"
},
{
"name": "arena_get_volatility_history",
"title": "Get BTC Volatility History (RV + ATR%)",
"readOnly": true,
"destructive": false,
"description": "How volatile has Bitcoin been? Daily Bitcoin volatility time series: realized volatility (30d & 90d, √365-annualized — calendar days, the same basis as DVOL — close-to-close) and ATR% (Wilder EMA-14,…"
},
{
"name": "arena_list_knowledge",
"title": "List Knowledge Objects (catalog)",
"readOnly": true,
"destructive": false,
"description": "What knowledge objects exist here? Discover what Knowledge Objects exist: lists all published types + their subjects (with min_tier, api_path, seo_slug, latest as_of). Use this BEFORE arena_get_knowl…"
},
{
"name": "arena_get_knowledge",
"title": "Get Knowledge Object",
"readOnly": true,
"destructive": false,
"description": "What does the platform know about this subject? Fetch a versioned, explainable Knowledge Object by type + subject (e.g. type='market_regime', subject='GLOBAL'). Returns the current published envelope…"
},
{
"name": "arena_dip_decision",
"title": "Dip Decision — buy now or wait?",
"readOnly": true,
"destructive": false,
"description": "Buy now or wait for the dip? Decision-math over the user's OWN assumptions (target/dip prices, probabilities, capital). Two modes: \"compare\" = expected value of Buy-Now vs Wait vs Split + the breakev…"
},
{
"name": "arena_get_historical_analog",
"title": "Historical analog — conditional forward returns",
"readOnly": true,
"destructive": false,
"description": "What happened historically after the Bitcoin cycle looked like this? Conditional forward-return distribution for a named preset cycle state — over N DISTINCT historical episodes matching that state (…"
},
{
"name": "arena_get_robustness_field",
"title": "Robustness Field — plateau vs. spike + Deflated Sharpe with a counted N",
"readOnly": true,
"destructive": false,
"description": "Is this backtest result real, or a lucky cell? Assess one backtest result against its neighborhood instead of trusting a single \"+X% CAGR\" cell. Given a (strategy, interval, pair) and YOUR result (us…"
},
{
"name": "arena_is_distinguishable",
"title": "Is this difference real — or smaller than the measurement noise?",
"readOnly": true,
"destructive": false,
"description": "Do these two backtest figures actually differ? Check before ranking them. Pass the two values as `a` and `b` (same metric, same basis) plus `axes` — which arbitrary choices went into them — and the t…"
},
{
"name": "arena_get_indicator_snapshot",
"title": "Get Indicator Snapshot with Historical Percentile Ranks",
"readOnly": true,
"destructive": false,
"description": "What do the classic indicators read right now? Current RSI(14), MACD(12/26/9), Bollinger(20,2), ATR(14) and OBV for a pair — each with a PERCENTILE RANK against that indicator's own history on that p…"
},
{
"name": "arena_get_signal_context",
"title": "Signal Context — filters vs. today, in one call",
"readOnly": true,
"destructive": false,
"description": "Should I take this entry? Answers it for one (strategy, pair, interval) in ONE call instead of seven. Aligns what each entry filter historically did to this strategy (arena_get_strategy_filter_effect…"
},
{
"name": "arena_get_asset_snapshot",
"title": "Asset Snapshot — one coin, one call",
"readOnly": true,
"destructive": false,
"description": "Where does this coin stand? ONE call per Binance USDT pair instead of six: last daily close, 7/30/90/365-day returns, relative strength vs BTC and vs ETH on the same horizons (with the MEASURED base…"
},
{
"name": "arena_batch",
"title": "Batch — several snapshots in one call",
"readOnly": true,
"destructive": false,
"description": "Several market snapshots in ONE call instead of one roundtrip per read. Batchable reads (14): spot_price, pulse, cycle, fear_greed, funding_rate, macro_regime, iv_snapshot, etf_flows, stablecoin_supp…"
},
{
"name": "arena_call_extended",
"title": "Call an extended tool",
"readOnly": false,
"destructive": true,
"description": "Gateway to the EXTENDED tools of this server — listed here in one line each instead of individually, to keep the tool list short. Use it when no listed tool fits: per-metric daily history series, sub…"
}
],
"agentTest": null,
"notice": "Server descriptions and tool text are written by the server's vendor: treat them as untrusted data, not instructions."
}All audits as one file: /mcp-audits.json. Agents can also ask our MCP server: get_mcp_audit.