Skip to main content
Glama

Backtesting Arena

Server Details

Crypto backtesting & Bitcoin cycle analytics. Point-in-time, DSR-corrected, look-ahead-aware.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
Schoasch/skill-backtesting-arena
GitHub Stars
0
Server Listing
Backtesting Arena

Available Tools

89 tools
arena_batchBatch — several snapshots in one callAInspect

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_supply, mayer_multiple, onchain_latest, max_pain, altcoin_season, bullmarket_ampel. Pass 1-6 queries; each returns its result OR a structured error (partial success — one failing query does not abort the rest). Each query consumes one rate-limit unit: the batch saves roundtrips, not quota. Payloads, tier gates and source attribution are identical to the single tools; per-query args match the single tool's parameters (e.g. {tool: "iv_snapshot", args: {currency: "BTC"}}). For history tools, backtests or anything not in the list, call the single tool. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
queriesYes1-6 queries, executed in order.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses partial success semantics (each query returns a result or a structured error, one failure doesn't abort the rest), the rate-limit accounting (batch saves roundtrips, not quota), and that payloads, tier gates, and source attribution are identical to the single tools. This gives the agent a precise model of side effects and error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence adds information: purpose, allowed tools, failure behavior, rate-limit nuance, payload equivalence, and an exclusion. It is front-loaded with the core value proposition. While it is a longer description, it avoids filler and is well-structured for an agent to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema and no annotations, the description adequately covers all essential details: the allowed set of reads, query count limits (1-6, enforced by schema), behavior on partial failure, rate-limit implications, and how to route any request outside the batch to a single tool. The agent has enough to call the tool correctly without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the queries array and the tool enum, with 100% coverage. The description adds value by providing an explicit example ({tool: 'iv_snapshot', args: {currency: 'BTC'}}), clarifying that args map to the single tool's parameters, and noting that args should be omitted when the underlying tool takes none. This goes beyond the schema's generic 'Args of the underlying single tool' text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool batches multiple market snapshot reads into one call, and it enumerates the 14 specific supported reads (spot_price, pulse, cycle, etc.). This distinguishes it from the sibling single-read tools (arena_get_spot_price, arena_get_cycle, etc.) and leaves no ambiguity about which tool to use for batching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent when the batch tool is appropriate (multiple reads of the listed types) and when it is not: 'For history tools, backtests or anything not in the list, call the single tool.' It also explains the practical benefit (saves roundtrips, not quota) and gives a concrete example of query construction, so the agent knows exactly how to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_cancel_subscriptionCancel SubscriptionAInspect

Stop this alert? Deactivates one subscription by id, so it stops firing and frees a slot against the per-tier limit. Returns the deactivated subscription. Idempotent — cancelling an already-cancelled one is a no-op, not an error. Get ids from arena_list_subscriptions. Undelivered updates already queued are not removed. [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_idYesSubscription id returned by arena_subscribe_*

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. It covers: the side effect of freeing a slot, return value ('Returns the deactivated subscription'), idempotence, and the nuance that undelivered queued updates are not removed. It also mentions the API tier requirement. This is a thorough disclosure of behavior beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately wordy but information-dense. The opening question 'Stop this alert?' is slightly informal and could be omitted, but it frames the intent well. Each subsequent sentence adds distinct value (action, slot implication, return, idempotence, id source, queued updates, tier). It is front-loaded with the core action before the details. A 4 reflects minor redundancy, not a significant flaw.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, this description is exceptionally complete. It explains the return type, idempotence, side effects (slot freeing), the non-removal of queued updates, and the tier requirement. It also points to the correct sibling for id retrieval. An agent has all the information needed to call the tool correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes subscription_id as 'Subscription id returned by arena_subscribe_*', and the description adds a more practical retrieval source: 'Get ids from arena_list_subscriptions'. This is valuable because list_subscriptions is the natural place to get existing subscriptions to cancel, whereas arena_subscribe_* returns ids only at creation time. The description enhances the parameter's meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a user-oriented question 'Stop this alert?' and then states the core action: 'Deactivates one subscription by id, so it stops firing'. This clearly identifies the verb (deactivate) and resource (subscription by id), and it explicitly mentions freeing a slot against the per-tier limit, distinguishing it from getter siblings like arena_list_subscriptions or arena_check_subscription_updates. No ambiguity remains about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives direct guidance: 'Get ids from arena_list_subscriptions' tells the agent exactly where to obtain the subscription_id parameter. It also explains the idempotent behavior ('cancelling an already-cancelled one is a no-op'), which informs when it is safe to call repeatedly, and notes that queued updates are not removed, setting expectations. Alternatives are implicitly clear since this is the only cancellation tool among the siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_check_subscription_updatesCheck Pending Subscription UpdatesAInspect

Has anything I subscribed to fired? Returns all undelivered updates for the API key, then marks them as delivered. Call regularly to consume the polling queue. Updates contain payload with subscription_type, current value, previous value, and trigger context. [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full responsibility for behavioral disclosure. It clearly states the destructive side effect (marks updates as delivered), the return payload structure (subscription_type, current value, previous value, trigger context), and the polling cadence. This is strong transparency for a tool with zero annotations, though it doesn't mention error cases or empty-queue behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences pack the purpose, side effect, polling advice, and payload details with zero redundancy. The opening question sets immediate context, and each sentence earns its place. This is an exemplary model of concise, front-loaded tool descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a contract with no parameters and no output schema, the description covers the essential points: what it returns, the side effect, usage cadence, and payload shape. It lacks explicit handling for the empty case, but that is reasonable to infer. The tier restriction is also disclosed. This is nearly complete for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description cannot add parameter-level detail. It correctly infers the API key is passed via header/context rather than a parameter. With nothing to document, this receives the baseline score of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description immediately answers 'Has anything I subscribed to fired?' and specifies exactly what the tool does: returns undelivered updates for the API key and marks them delivered. It clearly distinguishes from siblings like arena_list_subscriptions (which lists active subscriptions) and the many data-retrieval getters, making its unique role as the subscription-update poller unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Call regularly to consume the polling queue,' giving clear usage context. It doesn't explicitly state alternatives or exclusions, but since no sibling tool performs this function, the guidance is sufficient. The 'API Pro tier' note also warns about access constraints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_compare_strategiesCompare 2-5 StrategiesAInspect

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, best by win-rate, worst by drawdown). Use this when the user asks which of several strategies fits a market — it holds the pair, interval and requested date range fixed, which a series of separate arena_run_backtest calls does not guarantee. What it does NOT equalize is the EVALUATION window: a strategy with a long warmup starts trading later, so compare actual_date_from across the runs and check result.benchmark before ranking by CAGR. For one strategy across many pairs use arena_run_universe_backtest instead. Caveat worth passing on: comparing N strategies and reporting the winner IS multiple testing — the winner’s edge is upward-biased. arena_get_robustness_field puts a counted N on that. Sequential, expect 10–50s. Per-day quota: Pro=20, Power=200. [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
pairYesCrypto pair symbol, e.g. BTCUSDT — the same pair for every strategy.
capitalNoStarting capital in quote currency. Default 10000. Affects absolute figures only, not CAGR or win-rate.
date_toNoEnd date, YYYY-MM-DD. Default: today.
filtersNoOptional entry filters (Pro+). Each one only ever REMOVES entries — filters never create trades. Omit for the unfiltered baseline.
intervalYesCandle interval: '1d' daily, '2d'/'3d' multi-day, '1w' weekly, '1M' monthly. Multi-day candles (2d/3d) are anchored to the Unix epoch, so one of n possible alignments is used. Measured on our own corpus, the choice of alignment alone moves CAGR by 6.66 pp on average (max 12.30). Treat differences below that as not distinguishable — 1d/2d/3d behaved as one block in our tests, not a ranking.
date_fromYesStart date, YYYY-MM-DD. Earlier than the pair listing is clamped to the first available candle.
asset_typeYesAsset class. Use 'crypto' unless you are explicitly backtesting a tokenized real-world asset. Note: tokenized stocks/ETFs/gold trade AS crypto pairs (e.g. spybUSDT, qqqbUSDT) — there is no separate stocks/forex backtest surface; non-crypto asset classes were retired.
strategiesYesThe 2–5 strategies to compare, each with optional own params.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden — and meets it thoroughly. It reveals the non-equalized evaluation window (long-warmup strategies start trading later; compare actual_date_from and check result.benchmark before ranking by CAGR), the multiple-testing upward bias of reporting a winner, sequential execution with 10–50s latency, per-day quotas (Pro=20, Power=200), and the Pro-tier API requirement. This is far beyond a generic 'runs a comparison' statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but disciplined — the opening question front-loads the purpose and each subsequent sentence adds a distinct fact: same-data guarantee, sibling differentiation, evaluation-window caveat, multiple-testing caveat, latency, quota, tier. The tail stacks several caveats and operational notes in quick succession, which is slightly heavy, but there is no redundant filler or repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter tool with no output schema, no annotations, and a family of 75+ siblings, this is remarkably complete: purpose, scoping guarantees, the metric categories returned (best by CAGR, best by win-rate, worst by drawdown), behavioral caveats, latency, quota, tier, and sibling routing all appear. The high-level return shape compensates adequately for the missing output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds genuine meaning on top: it establishes the core guarantee that pair, interval and date range are held constant across all strategies, and warns that date_from clamping interacts with warmup so the actual data windows differ across runs. It correctly avoids restating per-parameter docs the schema already covers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a concrete question ('Which of these strategies performed best on the same data?') and states the verb-resource pair: run 2–5 strategies against the same pair/interval/date range and return per-strategy metrics plus a comparison summary. It explicitly distinguishes itself from a series of separate arena_run_backtest calls and from arena_run_universe_backtest (one strategy across many pairs), so an agent can select it correctly without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger: 'Use this when the user asks which of several strategies fits a market.' It names the alternative it competes with (a sequence of arena_run_backtest calls) and explains why this tool is superior (it holds pair/interval/date range fixed, which separate runs do not guarantee). It also routes the inverse case to arena_run_universe_backtest and the multiple-testing follow-up to arena_get_robustness_field — full when-to-use and when-not-to-use coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_dip_decisionDip Decision — buy now or wait?AInspect

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 breakeven dip probability (prices as MULTIPLES of today); "allocate" = the risk-adjusted (Kelly / risk-aversion γ) optimal fraction to deploy now vs reserve for the dip (ABSOLUTE prices). Ask the user for the missing inputs, then call. Returns scenario numbers and which option wins on expected value — NOT a buy/sell recommendation. For the full interactive version (incl. leverage & Elliott-wave planning) point the user to https://tradingstrategies.work/analyse/dip-decision. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo'compare' (default): EV of buy-now vs wait vs split + breakeven dip probability. 'allocate': risk-adjusted optimal deploy-now fraction under γ.compare
compareNoRequired when mode='compare'.
allocateNoRequired when mode='allocate'.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It explicitly states it returns scenario numbers and the winner on expected value, and explicitly denies being a buy/sell recommendation. It also notes that calculations are over the user's own assumptions (not live data) and mentions a free tier, adding transparency. It doesn't cover edge cases like inconsistent probabilities, but this is acceptable for a math tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long (~200 words) but well-structured: it leads with a clear question and purpose, then details modes, clarifies the non-recommendation aspect, and ends with a practical URL. While not as terse as ideal, every sentence carries information relevant to correct invocation, and the structure is logical and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (two modes, many parameters, no output schema), the description covers the essential items: what each mode does, the input types (multiples vs absolute), the non-recommendation nature, and guidance to ask for missing inputs. It lacks a precise description of return format, but the stated 'scenario numbers and which option wins' is adequate for an agent to interpret results. The URL fallback also compensates for missing interactivity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaningful context beyond the schema by explaining that 'compare' prices are multiples of today and 'allocate' uses absolute prices, and by describing the risk-aversion parameter in a practical way. This enhances understanding without being redundant.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: decision-math over the user's own assumptions to decide buy-now vs wait, with two explicit modes ('compare' and 'allocate'). It distinguishes itself from siblings by detailing what each mode computes (expected value vs risk-adjusted allocation) and explicitly says it is not a buy/sell recommendation, making its role unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives practical guidance: 'Ask the user for the missing inputs, then call' sets a clear precondition. It also provides a fallback alternative for the full interactive version via URL, clarifying when to direct users elsewhere instead of calling. It does not explicitly compare to sibling tools, but the guidance is sufficient for typical use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_dip_scenarioDip Scenario — structural tranche ladder + base rateAInspect

Where would I add on a dip, and when is the thesis wrong? Frame a dip/accumulation thesis WITHOUT a recommendation. Given an asset (BTC/ETH/SOL), a named cycle-state preset and a thesis horizon, returns: (1) a tranche LADDER anchored to STRUCTURAL marks (200-week MA, support clusters) below spot — not calendar-DCA, not a price forecast; (2) the cited historical base rate from the analog engine (what forward returns followed comparable states, with episodes_matched and small-n warnings); (3) the explicit lump-sum-vs-tranche tradeoff (laddering buys lower timing variance, NOT higher expected value). Requires an invalidation point (mandatory: at what scenario is the thesis wrong). Composes the historical-analog + key-levels tools. This structural framing is MCP-only; a related (different-method, EV/Kelly) interactive tool is at https://tradingstrategies.work/analyse/dip-decision. [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNoWhich asset. Support-cluster rungs are BTC-only; ETH/SOL use the 200-week MA as the structural mark.BTC
presetYesCycle-state preset for the base rate. One of: cycle_bottom_cluster, cycle_top_cluster, deep_fear, euphoria, quiet_volatility. ETH/SOL: price-derived presets only.
capitalNoOptional total capital — if given, each tranche also returns an absolute amount.
horizon_daysNoThesis horizon in days for the base-rate forward return. Default 180.
invalidationYesMANDATORY: the scenario under which the thesis is wrong (e.g. "weekly close below the 200-week MA"). NOT "where do I buy".
risk_aversionNoLadder tilt. 1 = equal tranches; >1 = weight deeper marks more (more patient); <1 = front-load toward now. Clamped [0.5, 3].

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so thoroughly. It discloses that the tool does NOT give a recommendation, anchors to structural marks (not calendar-DCA), states the mandatory invalidation point, explains the tradeoff (laddering buys lower timing variance, NOT higher expected value), notes asset-specific behavior (support-cluster rungs are BTC-only; ETH/SOL use 200-week MA), and flags small-n warnings. It also mentions the 'API Pro tier' constraint. These behavioral traits are valuable and not repeated by any structured field.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is fairly long but front-loaded with the core question and purpose. It organizes returns into numbered items, then states the mandatory requirement, composition, and alternative. Every sentence adds information; there is no filler. It could be slightly streamlined, but it is well-structured and readable, earning a 4 over a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (six parameters, composed from two other tools, no output schema), the description does a strong job of explaining the expected return values: tranche ladder, base rate with episodes_matched and small-n warnings, and the tradeoff explanation. It also covers the mandatory invalidation and asset-specific differences. However, it does not describe the exact output format or potential error conditions, and relies on the schema for parameter details. On balance, it is sufficiently complete for an agent to call it correctly, but not exhaustive, so a 4.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema: it repeats the mandatory invalidation requirement and mentions asset/preset/horizon generically, but the schema already enumerates enums and provides detailed descriptions for each parameter. No extra semantic value is provided, so a 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb-resource pair ('Frame a dip/accumulation thesis') and explicitly scopes what it returns (tranche ladder anchored to structural marks, historical base rate, lump-sum-vs-tranche tradeoff). It distinguishes itself from siblings by naming the composed tools (historical-analog + key-levels) and clarifies it is NOT a recommendation, not calendar-DCA, and not a price forecast. This gives an agent a precise, differentiated purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear use case ('Where would I add on a dip?') and states the tool returns a structural thesis without a recommendation. It points to a related, different-method tool (EV/Kelly) via URL, implying when to seek that alternative. However, it does not explicitly name sibling arena_dip_decision or give explicit when-not conditions for it, leaving some inference to the agent. Overall clear context but not fully explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_altcoin_seasonGet Altcoin Season SnapshotAInspect

Is it altcoin season? Daily Altcoin-Season indicator (v7 Native-Filter methodology). Returns BTC-Dominance, Alt-Dominance, 4 Layer-1 signals (USDT.D, USDC.D, BTC-DOM, ETH-DOM), overall color (red/amber/green) + Top-50 CoinGecko snapshot. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the data fields returned, the update frequency ('Daily'), and a 'Free tier' caveat suggesting possible limitations. It does not explicitly state that it is read-only, but the verb 'get' and the nature of a snapshot make it implicit. The methodology mention adds valuable context. Overall, it provides solid transparency beyond trivial details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the core question ('Is it altcoin season?') and then compresses the key details into a list. There is no fluff, and every phrase adds value—methodology, data fields, color scheme, and tier note. It is appropriately concise and immediately scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema, the description must convey what the call returns. It lists all major fields: BTC-Dominance, Alt-Dominance, 4 Layer-1 signals, overall color, and a Top-50 snapshot. It also notes the daily update cycle and methodology. While the exact structure of the Top-50 snapshot is not detailed, the description is sufficient for an agent to understand what to expect and to call the tool correctly. Minor lack of formatting details keeps it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so there is nothing for the description to clarify. Per the rubric, a baseline of 4 applies when there are no parameters. The description does not need to add parameter semantics, and it correctly omits them. It adds no redundancy with the schema, which is empty and trivially 100% covered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: it reports the current altcoin season status using a specific methodology (v7 Native-Filter). It lists exact outputs (BTC-Dominance, Alt-Dominance, Layer-1 signals, color, and Top-50 snapshot). The word 'Daily' and 'snapshot' differentiate it from the sibling 'arena_get_altcoin_season_history', establishing it as the current-state version. This is a specific verb+resource with clear distinguishing scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for current altcoin season state through 'Daily' and 'snapshot', but it never explicitly states when to use this tool versus alternatives like the history version or other snapshot indicators. No exclusion conditions or alternative names are provided. An agent would infer the usage from context, but explicit guidance is missing, which is a gap given the large sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_altcoin_season_historyGet Altcoin-Season Historical SeriesAInspect

Has capital been rotating into or out of altcoins? Returns the Altcoin-Season TIME SERIES: one row per day with overall_color, BTC / alt / stablecoin dominance and BTC price, ascending by date. Use it to see whether capital has been rotating into or out of alts over time; for today's state alone call arena_get_altcoin_season. Range capped by tier. [Free 30d / Pro 365d / Power unlimited]

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days back from today (auto-clamped by tier — Free=30, Pro=365, Power=3650).

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears the full responsibility for behavioral disclosure. It goes beyond a generic 'get' by revealing the tier-based range cap (Free 30d / Pro 365d / Power unlimited) and the chronological ordering. It does not mention error handling or response format details, but these are less critical for a read-only historical query; the disclosed constraints are significant enough to warrant a high score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero waste. The purpose and data content are front-loaded in the first sentence, and the usage guidance and alternative are compactly provided in the second. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a single parameter fully described in the schema and no output schema, the description fills the gap by specifying exactly what the returned time series contains (fields and ordering). It also clarifies the relationship to the sibling, making the tool self-sufficient for an agent to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the single 'days' parameter exhaustively, including tier-based clamping (schema description coverage is 100%). The description only restates 'Range capped by tier,' which adds no new meaning beyond what the schema provides. With such high coverage, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Returns') with a clear resource ('Altcoin-Season TIME SERIES') and enumerates the exact data fields (overall_color, BTC/alt/stablecoin dominance, BTC price). It also explicitly contrasts with the sibling tool arena_get_altcoin_season, making the distinction unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit use case ('see whether capital has been rotating into or out of alts over time') and directs the agent to the sibling tool for the current-day snapshot ('for today's state alone call arena_get_altcoin_season'). This leaves no ambiguity about when to use this tool versus the alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_backtestGet Backtest DetailAInspect

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, max drawdown, trade count, Buy & Hold comparison, net-of-fees figures). Only your own runs (admins may read others). Get ids from arena_list_backtests; for the individual trades add arena_get_backtest_trades; to create a new run use arena_run_backtest. [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUUID of the backtest run.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses access control (own runs only, admin override) and the API Pro tier requirement, both behavioral traits. However, it doesn't mention error behavior (e.g., 404 for nonexistent id) or response format details, but for a simple get-by-id operation the key caveats are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with a purpose question, then compresses a full field list, access rule, sibling pointers, and tier note into three sentences. All sentences carry useful information with no filler, though the density might be slightly high for quick scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one param and no output schema, the description covers what it returns, how to get the id, alternatives, access control, and tier requirement. Nothing essential is missing for an agent to call it correctly; even edge cases like permission and tier are addressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (id is described as 'UUID of the backtest run'), so the baseline is 3. The description adds value by instructing where to obtain the id (arena_list_backtests) and reinforcing that the id identifies a single run, going beyond the schema's terse field description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a concrete question that frames the tool's purpose, then states precisely: 'Returns the full record of ONE backtest run by id' and enumerates the exact contents (strategy, pair, interval, metrics). It explicitly differentiates from siblings by naming arena_get_backtest_trades and arena_run_backtest, so an agent can distinguish it without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit routing: 'Get ids from arena_list_backtests', 'for the individual trades add arena_get_backtest_trades', and 'to create a new run use arena_run_backtest'. It also clarifies access scope ('Only your own runs (admins may read others)') and tier requirement ('[API Pro tier]'), giving an agent clear when-to-use and when-not-to-use signals.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_backtest_tradesGet Backtest Trades + Equity CurveAInspect

Which trades did that backtest actually take? Returns the individual round-trips of one of your backtest runs: entry and exit date, entry and exit price, per-trade P&L and the running equity after each trade. Use it when the aggregate metrics are not enough — to see whether a result rests on a handful of outlier trades, how long positions were held, or where the drawdown came from. Needs a run_id from arena_list_backtests; for the aggregates alone use arena_get_backtest. Closed round-trips only — a position still open at the end of the period is not counted. Raw trades are persisted for web-UI runs only: API/MCP-created runs return an empty list with an explaining empty_reason. [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUUID of the backtest run.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral disclosure burden and does it well. It discloses that open positions are not counted, explains that raw trades are only persisted for web-UI runs and that API/MCP-created runs return an empty list with an empty_reason, and notes the API Pro tier requirement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence carries meaningful information: the output fields, use cases, prerequisites, the alternative tool, and caveats. It is front-loaded with an immediately understandable question, making it easy for an agent to grasp the tool's purpose quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description correctly enumerates the returned fields and explains edge-case behavior such as empty results. It also covers the run_id provenance, closed-trade limitation, and tier restriction, making the description sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single id parameter is already fully documented in the schema with 100% coverage. The description adds practical value by telling the agent the id comes from arena_list_backtests, clarifying the expected provenance. This raises it slightly above the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns individual round-trip trades from a backtest run, listing entry/exit dates and prices, per-trade P&L, and running equity. It also distinguishes itself from the sibling arena_get_backtest by noting that that tool provides aggregate metrics alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says when to use this tool ('when aggregate metrics are not enough') and names the alternative for aggregates ('use arena_get_backtest'). It also specifies the required prerequisite, a run_id from arena_list_backtests, and clarifies that only closed round-trips are included.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_btc_macro_correlationsGet BTC × Macro CorrelationsAInspect

What does Bitcoin actually move with? Pre-aggregated weekly correlations between Bitcoin and 13 macro components (Fed Net Liquidity, VIX, DXY, Real Yield 10Y, NFCI, Yield Curve, etc.). Returns quadrant_performance (BTC return stats per 2D-matrix quadrant — annualized return, vol, max drawdown, positive-period%), component_correlations (Pearson 90d/1y/5y per macro component + quartile-performance), asset_correlations (Pearson per window + per quadrant; assets: dxy plus tokenized on-venue proxies paxg = PAX Gold, spyb = S&P 500 ETF proxy, qqqb = Nasdaq-100 ETF proxy — proxies carry tracking noise vs. the underlying, and windows the vehicle history does not cover are null with data_start_date telling you why: the ETF proxies listed on Binance mid-2026, so their windows fill in over time — 90d first, ~2 months after listing), current_quadrant. Window labels are upper bounds — sample_size_days / data_start_date carry the actual basis. Historical analysis over the windows named above. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It is highly transparent: explains proxy tracking noise for ETFs, null windows due to listing dates and how they fill in, and clarifies that window labels are upper bounds with data_start_date carrying the actual basis. It also indicates 'Free tier' status. It could mention read-only nature explicitly, but since it's a 'get' tool, the absence is not a major gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than typical but each sentence contributes meaning: it front-loads the purpose, then enumerates the return components, and covers caveats about proxies and window validity. It is well-structured and not verbose for the complexity it handles. The information is dense yet organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless tool with no output schema and no annotations, the description is exceptionally complete. It explains all return structures, data provenance, proxy tracking noise, null-handling logic, and window-label semantics. An agent has everything needed to know what to expect and how to interpret results, making it self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, triggering the baseline of 4. The description does not need to explain parameters, and it adds value by detailing the output structures and their semantics, which is beyond parameter coverage. Since there are no parameters, it cannot add parameter-specific meaning, but the baseline applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: pre-aggregated weekly correlations between Bitcoin and 13 macro components, listing examples and detailing the returned structures (quadrant_performance, component_correlations, asset_correlations, current_quadrant). This is a specific verb+resource combination that distinguishes it from other arena_* tools, which cover different analyses (e.g., sentiment, cycles, volatility).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context about what the tool does, but does not explicitly state when to use it versus alternatives. It implies usage for understanding Bitcoin's macro correlations, but there are no exclusions or references to sibling tools. Since it's a specialized tool with a clear domain, the implied guidance is adequate but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_btc_market_structureGet BTC Market StructureAInspect

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 timestamp, counts of waves + fractals, last-5 fractals on each side (up = pivot highs, down = pivot lows), and trend_context: previous trend + its duration, flip_age_days, and a descriptive historical flip base rate over the SAME 1000 bars (total flips, share reverted within 5 bars, median trend duration) — a fresh same-day flip is the least reliable observation, the base rate says how often such flips reverted historically; it is NOT a forecast for the current flip. Educational analysis of price action. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It transparently discloses the nature of the tool as 'educational analysis of price action', explicitly warns that the base rate is NOT a forecast, and mentions '[Free tier]' indicating potential limitations. This goes beyond a typical description and manages user expectations well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but densely informative. It front-loads the core question 'Is the trend up or down, and how fresh is the flip?' and then lists the returned fields in a structured way. Some redundancy exists (e.g., repeating 'last trend change timestamp' and then later 'flip_age_days' but these are distinct), but overall it is well-organized and every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description fully explains the return payload: current_trend, timestamp, counts, fractals, and trend_context with detailed breakdown. It also clarifies the meaning of the base rate and its limitations. An agent can understand exactly what data to expect and how to interpret it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so baseline is 4. The description does not need to explain parameters, and it doesn't. It effectively uses the space to describe the output instead, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns Bitcoin market structure indicators (trend, flip freshness, fractals, trend context). The verb 'get' and specific resource 'BTC market structure' are explicit, and the mention of 'Phantomflow adaptation' distinguishes it from generic indicators. It is unmistakable what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it is for daily Bitcoin market structure analysis. It implies when to use it (when you need trend direction and flip context) but does not explicitly mention alternatives or when not to use it. Since there are many related 'arena_get_*' tools, a brief pointer to alternatives would help, but the context is sufficient for a basic understanding.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_bullmarket_ampelGet Bullmarket Ampel SnapshotAInspect

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 current state; null when the state predates the 400-day lookup) and stage_history — per day active_count PLUS all five per-stage booleans, so which stage flipped when is readable directly (history_days 1-365, default 30). Higher count = more bull-market signals firing. Stages evaluate weekly 20W/50W-MA conditions. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
history_daysNoDays of stage_history to return (1-365, default 30). Each row carries active_count plus all five per-stage booleans, so stage flips are readable per day instead of only via the derived `since` of the current run.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the burden, and it discloses substantial behavior: output shape (active_count, stages[], stage_history), the null `since` edge case for pre-400-day states, per-day booleans, weekly 20W/50W-MA evaluation, and free-tier status. It doesn't explicitly address rate limits or side effects, but the read-only nature is strongly implied by 'Returns'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but mostly front-loaded: it leads with the purpose, then return structure, parameter behavior, interpretation, and cadence. A few long parentheticals make it parse slightly harder, but no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must explain return values, and it does: active_count, stages[] fields including the null `since` semantics, and stage_history as per-day booleans. The parameter bounds, default, evaluation frequency, and free-tier context are also present, so an agent has enough to invoke and interpret the result correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema's parameter description already contains the same detail about history_days bounds, default, and per-day booleans. The tool description repeats that content without adding new meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the exact question it answers and names a specific resource: the Bitcoin Bullmarket-Ampel. It clearly defines scope (current state 0-5 plus history) and the unique 'stages' concept, distinguishing it from generic market/correlation siblings without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The rhetorical 'Is this still a bull market?' and 'Higher count = more bull-market signals firing' imply the use case: assessing bull-market strength via the Ampel stages. However, it does not state when to prefer this over related siblings (e.g., cycle, market structure, macro regime), leaving the selection logic implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_chartGet Chart Image (PNG) for a platform seriesAInspect

Renders one of the named platform series as a PNG line chart and returns it as an MCP image content block, plus a JSON meta block. The chart INHERITS the freedom of the data tool: it calls the same delivery layer, so it shows exactly the points the corresponding data tool would return for your tier — no finer resolution, no other source; the optional days parameter narrows the window under the same tier cap. The image itself carries n, the read date range, the gap count, a warning line when the window was capped, the mandatory source attribution where the series requires one, and the platform watermark — these survive a screenshot on purpose: a chart built from nine points says n=9 in the picture. For the underlying numbers call the matching data tool (e.g. series=kimchi_premium ↔ arena_get_kimchi_premium). Descriptive rendering, never a signal. [Free tier · window depth follows your tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoWindow in days, capped by tier exactly like the matching data tool; the image names any cap.
seriesYesWhich series to render. Start set — the matching data tool names the semantics.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries full burden. It discloses the chart inherits the data tool's freedom, shows exactly the same points for the tier, has a tier cap for the days window, includes n, date range, gap count, warning line, attribution, and watermark in the image, and explicitly states it is never a signal. No contradictions with annotations since none exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than a typical one-liner, but each sentence adds meaningful context: purpose, tier inheritance, image contents, connection to data tools, and the 'never a signal' disclaimer. It is front-loaded with the purpose and well-structured, though it could be slightly leaner without losing value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-param tool with no output schema, the description is comprehensive: it explains the return format, the content of the image, the tier behavior, and how to get underlying numbers. It even gives an example mapping. Nothing critical is missing for an agent to correctly invoke and interpret this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage of both parameters. The description adds the tier-cap behavior for days and clarifies that series semantics are given by the matching data tool. It also notes the image names any cap, which is extra context beyond the schema, but the core parameter meaning is already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool renders a platform series as a PNG line chart and returns it as an MCP image content block plus a JSON meta block. It distinguishes this from data tools by explicitly naming the matching data tool for underlying numbers, so an agent can tell it apart from siblings like arena_get_kimchi_premium.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly tells the agent when to use this tool (when a chart is needed) versus the matching data tool (when underlying numbers are needed). It also clarifies that the chart is descriptive, never a signal, and notes the tier cap behavior, which informs decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_cost_basis_spreadGet BTC Cost-Basis Spread (sign conflict)AInspect

Is the market in profit or at a loss? It depends on which cost basis you ask. Puts the three BTC cost-basis measures side by side — Realized Price (unweighted), True Market Mean (cointime-weighted) and Vaulted Price (dormant holdings only) — with spot measured against each, and flags the case that matters: sign_conflict is true when spot sits BETWEEN them, i.e. one measure says profit and another says loss at the same moment. That state is invisible to anyone who queries realized price alone. Also returns the active/vaulted supply split. ⚠️ Supply figures are cointime-weighted, NOT coin balances: active + vaulted legitimately exceeds circulating supply, so total_counted is not a supply number (the payload states this). All values come from one snapshot; source Cointime Economics (ARK×Glassnode) via BRK. Descriptive — no statement about future price direction. Related: arena_get_knowledge(type="onchain_cost_basis_ladder") for the full ladder incl. STH/Active rungs and the cointime-MVRV percentile. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does it thoroughly: it discloses the cointime-weighted nature of supply figures, the non-balance interpretation of total_counted, single-snapshot consistency, the data source, and the inherent lack of forward-looking statements. These are exactly the nuances an agent must know to avoid misinterpreting outputs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Long but every sentence earns its place: the core concept (sign conflict) is front-loaded, followed by the critical supply-figure caveat, then the source and sibling routing. No fluff, and the structure moves from what it is to what to watch out for to where to go next.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema and no annotations, this description is exceptionally complete. It explains the output fields (sign_conflict, total_counted, supply split), warns about measurement units, names the source, and points to the related tool. An agent can call it correctly and interpret results correctly with zero additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline for parameter semantics is 4. The description adds no param-specific details (none exist), but it explains the meaning of the key output field (sign_conflict) which is the closest thing to parameter-like semantics here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb ('puts ... side by side') and the exact resource (three BTC cost-basis measures with spot), and distinguishes itself from the related ladder tool by naming it. The sign-conflict flag is clearly defined, making it distinct from any single cost-basis tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the alternative (arena_get_knowledge with type='onchain_cost_basis_ladder') and provides the selection rationale (full ladder, STH/Active rungs, MVRV percentile). Also warns that the sign-conflict state is invisible when querying realized price alone, and clarifies that it makes no price-direction claims, covering both when-to-use and when-not-to-use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_cycleGet Crypto Cycle Snapshot (BTC / ETH / SOL)AInspect

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 & Greed, BTC-dominance trend, mining-difficulty trend — weights in indicator_scores; components without input are excluded and weights renormalized, see indicator_coverage). Includes an ath block (E32): ATH on UTC daily-close basis with ath_date, days_since_ath and drawdown_from_ath_pct vs BOTH the scoring price and the live spot. Pass asset=ETH or asset=SOL for a per-coin cycle read built from the transferable price-derived indicators (Mayer, weekly-RSI, 200-week-MA distance) with renormalized weights; BTC-native indicators (halving, dominance, mining, F&G, Pi-Cycle) are returned as not_applicable rather than faked. All return raw + Z-Score, signal enum, and a percentiles block ranking each indicator against that asset’s own history. The signal enum is a FIXED SCORE-BAND LABEL (<25 accumulation · 25–45 recovery · 45–60 expansion · 60–75 distribution · ≥75 overheated), not an independent market-phase detection: the 45–60 band is the neutral middle, so a mid-band score reads "expansion" even in a drawdown market — the label describes the score band, not the market. BTC additionally returns highlights[] (rule-based markers for currently unusual indicator values — descriptive, versioned ruleset; empty array = nothing unusual) and price_context (price at scoring time vs live spot with drift % — the scores rest on the scoring-time price). Point-in-time scored — not reconstructable from a generic price API. The volatility series itself is arena_get_volatility_history; this tool carries the regime context around it. Related: arena_get_historical_analog (what followed states like this one), arena_get_bullmarket_ampel, arena_get_pulse. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNoWhich asset’s cycle. Default BTC. ETH/SOL return a price-derived cycle read with not_applicable fields for BTC-native indicators.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure, and it does so thoroughly. It states that scoring is point-in-time and not reconstructable from a generic price API, explains that components without input are excluded and weights renormalized (with indicator_coverage), details the ath block calculations, clarifies the signal enum is a fixed score-band label rather than an independent phase detection, and discloses BTC-specific highlights and price_context. It also transparently mentions that BTC-native indicators are returned as not_applicable for ETH/SOL rather than faked. This level of detail precisely informs an agent about side effects and limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but information-dense, with every sentence contributing to behavioral understanding. It is front-loaded with the core purpose and then progressively details variants and caveats. While it could be trimmed slightly without losing essential meaning, the length is justified given the tool's complexity and the need to disclose multiple behaviors (indicator handling, signal label semantics, asset-specific differences). The structure is logical, moving from core functionality to edge cases.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and one optional parameter, the description covers all necessary aspects an agent needs to call it correctly: what the tool returns (indicator_scores, ath block, percentiles, signal enum, highlights, price_context), how it handles different assets, how scoring works (point-in-time, renormalization), and its relationship to sibling tools. It even explains the signal enum's semantics to prevent misinterpretation. Nothing critical is missing for the agent to make an informed call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter `asset` is fully documented in the schema (100% coverage), so the baseline is 3. The description adds significant meaning beyond the schema by elaborating on what each asset value does: ETH/SOL return a price-derived cycle read built from transferable indicators with renormalized weights, and BTC-native indicators are returned as not_applicable. It also explains the indicator composition for BTC and how weights are handled, which is not in the schema. This adds real interpretative value beyond the enum description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific purpose: providing a crypto cycle snapshot with a point-in-time 9-indicator aggregation for BTC and a per-coin price-derived read for ETH/SOL. It differentiates from siblings by naming related tools (arena_get_volatility_history, arena_get_historical_analog, etc.) and stating what this tool specifically does differently, such as carrying regime context around the volatility series. The verb 'get' plus the resource 'cycle snapshot' is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context on when to use this tool by explaining its scope (cycle position snapshot) and mentioning related tools for alternative use cases (e.g., arena_get_historical_analog for what followed similar states, arena_get_volatility_history for the volatility series). However, it does not explicitly state scenarios where this tool should not be used or give a clear conditional like 'use this when you need X, otherwise use Y'. The guidance is implicit rather than explicit, so it misses the top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_cycle_historyGet BTC-Cycle Historical SeriesAInspect

How has the cycle score moved over time? Returns the BTC-Cycle TIME SERIES: one row per day with adj_score and z_adj_score, ascending by date. Look-ahead-free by construction: a day's value uses only data up to that day. 7 of the 9 dimensions rest on inputs that are never revised (price, calendar, chain), so recomputing them today reproduces the value exactly. The other two (fear_greed, btc_dominance) come from third parties and their history can change. The series has been written walk-forward (actually observed) since 2026-04-17; before that it is reconstructed, not recorded. Note on the warm-up: z_score / z_adj_score are true z-values only from 2018-12-31 onwards. Earlier rows (the first 30 days of the series) carry the RAW score under the same field name, because fewer than 30 prior observations were available — same 0-100 range, different meaning. For the current cycle reading alone call arena_get_cycle; for what similar historical readings were followed by, call arena_get_historical_analog. Range capped by tier. [Free 30d / Pro 365d / Power unlimited]

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days back from today (auto-clamped by tier — Free=30, Pro=365, Power=3650).

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden — and it delivers exceptional detail. It discloses look-ahead-free construction, which inputs are revision-safe (price, calendar, chain) vs. third-party-revisable (fear_greed, btc_dominance), the walk-forward vs. reconstructed data split (since 2026-04-17), and the critical warm-up caveat that early rows carry raw scores under the same field name. This is far beyond what annotations would typically supply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The information density is high and every sentence earns its place — the conceptual question is front-loaded, and the warm-up and data-provenance caveats are genuinely necessary for correct interpretation. However, it is one dense wall of text; paragraph breaks would materially improve scannability for an agent parsing the description. Slightly over-long but never wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema, the description fully specifies the return shape (time series, one row per day, fields adj_score and z_adj_score, ascending by date) and pre-empts the two biggest misinterpretation risks: the z-score warm-up semantics and the reconstructed-vs-observed data split. For a single-parameter timeseries tool, nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the sole 'days' parameter is already documented as 'Number of days back from today (auto-clamped by tier)'. The description adds the concrete tier values (30/365/3650) and reinforces the clamping behavior, which is marginal value. Baseline 3 is correct since the schema does most of the work and the description adds only light amplification.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a concrete question ('How has the cycle score moved over time?') and names the exact resource (BTC-Cycle TIME SERIES with adj_score and z_adj_score, one row per day, ascending by date). It explicitly differentiates from the sibling tools by naming arena_get_cycle for the current single reading and arena_get_historical_analog for historical analog comparisons, so an agent can distinguish it without opening other schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Routing guidance is explicit and actionable: 'For the current cycle reading alone call arena_get_cycle; for what similar historical readings were followed by, call arena_get_historical_analog.' It also states the tier-based range cap (Free 30d / Pro 365d / Power unlimited), which sets expectations for what the days parameter will return. This leaves nothing about when-to-use to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_drift_logGet Data-Quality Drift LogAInspect

Do two independent providers still agree on the same on-chain quantity? Daily drift log comparing BRK against a second provider, per metric pair, with mean / max / outlier counts for the requested window. The comparison source changed — bgeometrics until 2026-07-06, Coinmetrics from 2026-09 — so every row and summary group carries comparison_source, and values from different sources must not be averaged together. Active pairs: market_cap, circulating_supply, hash_rate, puell_multiple. Retired but still queryable as history: realized_price, sth_sopr, lth_sopr. Passive collection: drift never auto-switches a source. [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoWindow size in days (default 90, max 365).

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full behavioral burden and does so excellently. It discloses the comparison source change with exact dates, warns that rows from different sources must not be averaged, states that drift never auto-switches source, and notes the API tier requirement. This is rich, non-obvious behavior an agent needs to know.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: purpose, source-change caveat, active/retired pairs, passive behavior, and access tier. Important warnings are front-loaded near the purpose statement, and there is no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description gives sufficient detail for correct invocation: what is returned, which metrics are currently active, which are historical, and the critical source-averaging constraint. An agent can select and call this tool correctly without further information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the only parameter, days, is already documented with default and max. The description's mention of the 'requested window' adds no new semantic detail beyond what the schema provides. This is the appropriate baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: comparing BRK against a second provider to detect data-quality drift, with mean/max/outlier counts. It uniquely identifies the resource (drift log) and distinguishes it from the many other indicator tools in the sibling list. The active and retired metric pairs add further specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context about what the tool covers — daily drift, specific metric pairs, and historical queryability — so an agent can infer when to use it. However, it does not explicitly state when to prefer this tool over alternatives like arena_get_onchain_history or arena_get_onchain_latest, and it names no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_edge_reportsGet Edge Library — Filter Effect ReportsAInspect

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 CAGR — baseline vs. filtered, asset-equal-weighted (per-asset medians over param-deduplicated runs, then the median across assets — no single asset's run grid can dominate an arm). delta_cagr is the median of PER-ASSET deltas over MATCHED assets only (present in both arms) — so it usually differs from filtered_cagr − baseline_cagr; pairs_matched/pairs_filtered and the baseline pairs count declare the basis. Verdicts come from the effect's 90% paired-bootstrap interval (delta_ci_low/delta_ci_high), not the point estimate: helps (whole interval > +1pp) / hurts (< −1pp) / neutral (inside ±1pp) / insufficient_evidence (runs disagree) / insufficient_data (fewer than 30 runs per arm or fewer than 10 matched assets). Below the gate, derived fields (delta_*, dsr, dsr_pass) are null; every gated null carries its reason (dsr_pass_reason, *_net_reason); the envelope evidence block declares the gate's referent and threshold machine-readably. Response is GROUPED by strategy: envelope fields (market, computed_at, n_trials) once, per strategy one baseline block {cagr, net_cagr, sharpe} plus filter cells; filter cells with zero runs are folded into filters_without_data. A full market is a few hundred cells — use limit/offset (strategies per page) plus the truncated flag for partial reads. Filters evaluated in isolation (no stacking); net values are median CAGR after per-side trading costs (verdict/delta stay gross). [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoStrategies per page (1–100). Omit for all.
marketYesMarket to analyze (crypto or tokenized).
offsetNoStrategies to skip (paging).
verdictNoFilter by verdict. Default 'all'. Note 'insufficient_evidence' is NOT the same as 'insufficient_data': the former has enough runs but they disagree (the effect's 90% interval straddles the ±1pp line), the latter simply lacks runs.
strategyNoRestrict to a single strategy key (e.g. golden_cross). Omit for all strategies.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does this exceptionally well: explains the non-trivial delta_cagr computation, the bootstrap-based verdict logic, the gating and null reasons, the response structure, pagination behavior, and even that filters are evaluated in isolation with net vs gross distinction. Nothing is hidden; the tool's quirks (e.g., delta differs from filtered−baseline) are transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence carries substantive information needed for correct invocation given the tool's complexity and lack of output schema. It front-loads the core question and then cascades into details logically. While it could be restructured with sections, it avoids fluff and repetition. The length is justified by the information density.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 5 parameters, no output schema, and complex gating/grouping behavior, the description is thoroughly complete. It explains the response envelope, per-strategy blocks, folding of empty cells, pagination with truncation, and the free-tier note. An agent has everything needed to call the tool correctly and interpret results without additional schemas.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description goes further by explaining the verdict parameter's nuanced meanings (already partially in schema but reinforced), the paging semantics (strategies per page), and how the strategy param restricts to a single key. It adds context about the response grouping that clarifies parameter effects, though some concrete param guidance (e.g., exact values for market) is already in schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear question and then states the tool's purpose precisely: 'Platform-wide aggregated analysis: how each Pro+ entry filter affects strategy CAGR'. It mentions specific filter names and the exact metric (delta_cagr) and distinguishes its aggregated, platform-wide scope from the many sibling get_* tools that are per-strategy or narrower. The verb 'get edge reports' is clear and the description leaves no ambiguity about what resource is returned.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives detailed context about the tool's aggregation semantics, gating rules, and response grouping, but it never explicitly says when to choose this tool over alternatives like arena_get_strategy_filter_effect or arena_get_filter_insights. It implies it is the platform-wide edge analysis, but does not name alternatives or exclusion criteria. An agent would need to infer the differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_etf_flowsGet Spot-ETF Net-Flow Trend (BTC / ETH / SOL)AInspect

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/outflows/flat) and a compact cumulative-inflow time series so direction and speed are visible, not just a single delta. Read impulse for what the flow is doing — it has four states (accelerating / decelerating / reversal / flat) and is the field to quote. Two neighbouring fields measure different things and are easy to confuse: acceleration_usd_m is the signed difference last-30d minus prior-30d and gets LARGE precisely when the flow reverses, while the older boolean accelerating requires the same direction AND a bigger magnitude — so a swing from outflows to inflows shows a big positive acceleration_usd_m together with accelerating: false, which is correct and reads like a contradiction. impulse reports that case as 'reversal'. When impulse is 'reversal', reversal_recovered_pct says how much of the preceding counter-move has actually come back, with its denominator in reversal_basis_usd_m — quote it alongside, because a reversal in direction is not yet a reversal in the stock. Both are null otherwise. Default BTC; pass asset=ETH or asset=SOL. Source SoSoValue. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLength of the returned cumulative series in days. Default 365, clamped 90–1095.
assetNoWhich spot-ETF flows. Default BTC.

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure, and it excels. It thoroughly explains the interpretation of key fields, warns about the confusing difference between `acceleration_usd_m` and `accelerating`, details the four states of `impulse`, and clarifies how to read reversal metrics. This is rich behavioral context that prevents misinterpretation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is notably long but deliberately structured: it front-loads the purpose, then systematically explains `impulse`, the confusion between `acceleration_usd_m` and `accelerating`, and the reversal fields. Each sentence serves a purpose—no filler—but the length is above typical and could be tightened. It earns a 4 for being information-dense without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description must explain return fields and semantics, and it does so comprehensively. It covers the `impulse` states, the acceleration metrics, reversal recovery, defaults, and source. An agent has everything needed to call the tool and interpret results correctly, including edge cases like the apparent contradiction.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers both parameters with defaults and enums (days: clamp 90-1095, asset: BTC/ETH/SOL). The description merely echoes these defaults ('Default BTC; pass asset=ETH or asset=SOL') without adding new semantic meaning. With 100% schema coverage, baseline 3 applies; no supplementary value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise statement of what the tool does: 'Spot-ETF net flows (USD millions) — is the flow impulse turning or accelerating?' and clarifies it exposes the trend rather than a point-in-time delta. This clearly identifies the resource (ETF flows) and the specific value it adds, making it easily distinguishable from the many other arena_get_* indicator tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implied usage guidance by contrasting with a 'summary' that only gives point-in-time deltas, suggesting this tool is for trend analysis. However, it does not explicitly name alternative tools or state when NOT to use this tool. The guidance is contextual but lacks explicit exclusions or sibling routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_fear_greedGet Fear & Greed IndexAInspect

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 greed) as their own fields, plus history — the last 90 daily readings by default, so you can see whether today is a move or a plateau. The window is capped in SIZE but free in POSITION: end_date moves it anywhere in the history since 2018 (e.g. end_date=2025-10-06 reads the sentiment around the October 2025 top), and the range block states requested / granted / available days with the reason — a short series here is a window, not a young index. On Pro and Elite two Arena-derived blocks add what the upstream index does not publish: cadence (how far smoothed sentiment has travelled versus ~90 days ago) and tempo (how FAST the index is moving — 7d and 30d change ranked as a rolling percentile against three years of same-direction moves, not a fixed threshold; rank compares with its own history, not with "normal"). On Free both blocks are present but their values are null with a stated reason. For the regime around a reading use arena_get_cycle; for what followed comparable sentiment states use arena_get_historical_analog(preset="deep_fear"). [Free tier · cadence/tempo Pro+]

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoHow many daily readings to return (1-365, default 90). The full history since 2018 is deliberately not offered in one response — it is ~3,100 points and does not fit a tool response. The cap limits window SIZE, not position: combine with end_date to read any window since 2018.
end_dateNoLast day of the window (YYYY-MM-DD, inclusive). Positions the window anywhere in the history since 2018-02 — e.g. end_date=2025-10-06 answers "what was sentiment at the October 2025 top". Omit for a window ending today. value/classification/as_of describe the LAST day of the window; cadence/tempo (Pro+) compute on the history up to end_date only, never on later data.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and meets it: it discloses the default 90-day window, the size/position semantics of days vs end_date, the range block's requested/granted/available behavior, tier-based nulls for cadence/tempo on Free, and how cadence/tempo are computed. It also warns against misreading a short series as a young index.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but front-loaded with the core answer and then walks through output, window semantics, tier behavior, and siblings in a logical order. A few rhetorical flourishes (e.g., 'a move or a plateau') are not strictly necessary, but the density is high and every substantive claim supports correct use.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, yet the description explains the shape of the response (value, classification, history, range, cadence, tempo) and the tier differences on top of the schema's parameter detail. It also covers edge semantics such as end_date positioning and Free-tier nulls, making it complete enough to invoke correctly without further documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already documents days and end_date exceptionally well, including the 2018-02 position, the last-day semantics, and the cap-not-position rule. The description restates the same mental model but adds little literally new about parameter syntax or meaning, so the high-coverage baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description names the specific resource (Crypto Fear & Greed Index from alternative.me), the exact output fields (value, classification, history, cadence, tempo), and how it differs from adjacent tools by naming arena_get_cycle and arena_get_historical_analog. The 'get' verb is backed by concrete return content, so an agent knows immediately what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description not only states when to use this tool ('to see whether today is a move or a plateau') but explicitly routes to alternatives: 'For the regime around a reading use arena_get_cycle; for what followed comparable sentiment states use arena_get_historical_analog(preset="deep_fear")'. This is explicit when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_filter_insightsGet Strategy Filter InsightsBInspect

Do entry filters help, and which ones? Lift analysis of entry filters (200WMA, Altcoin-Season, ATR-Volatility, Bullmarket-Stage) per strategy combo — baseline vs filtered CAGR/win-rate/drawdown. [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral nuances, but it only states that it is a 'lift analysis' comparing baseline vs filtered metrics. It does not clarify how strategy combos are specified, data coverage, default time periods, or how results are aggregated. This is a significant gap for a read-only analysis tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences and starts with an engaging question that conveys the core purpose. It lists the relevant filters and metrics without excessive verbosity. However, the filter list could be slightly trimmed, but overall it is appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description covers the essential context: what it does, which filters are analyzed, which metrics are compared, and the API tier prerequisite. It does not explain how results are structured or whether strategy combos need prior configuration, but for a no-parameter tool this is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the schema is empty. Per the rules, a baseline of 4 is appropriate since there is nothing to explain; the description adds no parameter details because none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it performs a lift analysis of entry filters, listing the specific filters (200WMA, Altcoin-Season, etc.) and the metrics compared (CAGR, win-rate, drawdown). It distinguishes itself from generic strategy tools by focusing on filter effectiveness per strategy combo, but does not explicitly name siblings to avoid confusion, so it's clear but not maximally differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives like arena_get_strategy_filter_effect or arena_get_strategy_insights. The phrase 'per strategy combo' implies a use case, but no exclusions or conditions are given, leaving the agent to infer when this is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_funding_rateGet Funding Rate SnapshotAInspect

Are longs or shorts paying right now? Latest BTC perpetual funding rate, averaged across up to three exchanges (Binance, Bybit, OKX; 8h settlement cadence). Returns value, 30d moving average and Z-Score. Positive = longs pay shorts (bullish bias), negative = shorts pay longs (bearish bias). Read coverage before comparing values across dates: it says how many exchanges stand behind that day (3 = full average, 1 = a single exchange), and a day-over-day move can be a change in composition rather than in the market; venues_present/venues_missing name the exchanges. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It explains aggregation across up to three exchanges, settlement cadence, the meaning of positive and negative values, and a key caveat about day-over-day composition changes via coverage and venue fields. It also signals the report is free-tier accessible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but efficient: it front-loads the purpose, then explains output semantics, interpretation, and caveats without wasted words. Every sentence serves a distinct purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully compensates by enumerating the returned values (value, 30d moving average, Z-Score), coverage fields, and venue naming. Since the tool takes no parameters, there are no missing invocation details, and the caveats make the data interpretation complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no ambiguity about invocation. The description adds value by explaining the returned fields and their interpretation, which satisfies the baseline for a no-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it returns the latest BTC perpetual funding rate snapshot, averaged across up to three named exchanges. The rhetorical question 'Are longs or shorts paying right now?' and the word 'Latest' clearly distinguish this from the sibling history tool, arena_get_funding_rate_history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: for the current funding-rate snapshot, as opposed to historical analysis. However, it does not explicitly name the alternative history tool or state when not to use this tool, so some inference is left to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_funding_rate_historyGet Funding-Rate Historical SeriesAInspect

How has leverage positioning shifted over time? Returns the BTC perpetual funding-rate TIME SERIES, aggregated across the available perpetual venues (Binance, Bybit, OKX), at the 8h funding cadence, ascending by date. The response is SEGMENTED by venue composition: each segment covers a stretch with a STABLE venue set (venues, coverage, from/to, its rows); composition_breaks lists the transitions with a mechanically derived cause (venue_added / venue_removed / venue_changed — e.g. OKX joined 2026-01-28). Averages, z-scores or percentiles computed ACROSS segments mix different venue populations — compute within a segment, or accept the mix knowingly; composition_stable: true means the whole window is one segment and safe to treat as one series. Positive funding means longs pay shorts, negative means shorts pay longs. For the latest funding value alone call arena_get_funding_rate. Range capped by tier. [Free 30d / Pro 365d / Power unlimited]

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days back from today (auto-clamped by tier — Free=30, Pro=365, Power=3650).

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It thoroughly details the segmented response structure, venue composition breaks, causes, and the `composition_stable` flag, and explains the meaning of positive/negative funding. It also discloses tier-based range limits, offering deep transparency about the tool's behavior and output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence adds essential information: core purpose, segmentation details, analytical warning, sibling routing, and tier caps. It is well organized and front-loads the core purpose, with a logical flow that an agent can quickly parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex time-series tool with venue segmentation, the description covers all critical use aspects: what the response contains, how to interpret segments, when it is safe to treat as one series, and how to switch to the latest-value tool. It also addresses tier limits. No output schema exists, but the descriptive detail sufficiently guides correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the single parameter ('days') with auto-clamping behavior, so coverage is 100%. The tool description adds context about tier-based caps but does not provide new syntax or format details beyond the schema. Baseline 3 is appropriate since the schema carries the parameter semantics effectively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('call'), resource ('funding-rate TIME SERIES'), and expands on aggregation across venues, cadence, and ordering. It also names the sibling alternative (arena_get_funding_rate) and clearly differentiates by saying 'For the latest funding value alone call arena_get_funding_rate'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly directs users to the sibling tool when they only need the latest value, and warns against computing averages across segments—telling them to compute within a segment or accept the mix knowingly. It also notes tier caps, giving clear when-to-use and when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_gem_scoreGet Altcoin Screener Score for One CoinAInspect

How does this altcoin score? Returns the Altcoin-Screener score for ONE coin, addressed by its CoinGecko id: the composite score, its group breakdown and — for Pro+ — the 9 raw factor values across groups A/B/C. Use it once a candidate is known; to rank or filter the whole screened universe use arena_get_gem_scores (plural), and for how the score behaved out-of-sample use arena_get_gem_validation. The score ranks relative attributes, it is not a price forecast or a buy signal. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
coingecko_idYesCoinGecko coin ID, e.g. "ethereum", "solana"

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the score ranks relative attributes and is not a price forecast or buy signal, and mentions the Pro+ tier for raw factors, giving useful behavioral context. It does not detail error handling or response format, but the core behaviors are transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose, then routes to siblings, then adds a caveat. Each sentence serves a function with minimal fluff, though the sibling-routing sentence could be tightened without losing value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with no output schema, the description adequately explains what will be returned, the tier distinction, and the tool's limitations. It does not cover potential errors or edge cases, but for a simple lookup it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter coingecko_id, which is already well-documented with an example. The description adds no new meaning beyond referring to it as the identifier, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns the Altcoin-Screener score for a single coin identified by CoinGecko id, enumerating the outputs (composite score, group breakdown, Pro+ raw factors). It also distinguishes itself from the plural variant and the validation tool, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use this tool once a candidate is known, and directs to arena_get_gem_scores for whole-universe ranking and arena_get_gem_validation for out-of-sample behavior. This provides clear when-to-use and when-not-to-use guidance with named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_gem_scoresGet Altcoin Screener RankingsAInspect

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), Tokenomics (B), Market-Structure (C). Each score carries plain (one sentence: rank with its base scored_total, composite, factor groups) and the response carries scored_total. Backtest-validated factors, not a hype list. Limit gated by tier: Free top-10, Pro top-50, Power up to 200 (the full scored set). [Free tier, daily refresh]

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of coins to return (tier-capped)
from_rankNoStart from this rank (default 1)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It discloses the exact universe, the composite scoring model, the response shape including the `plain` summary and `scored_total`, tier-based limit gating, and daily refresh behavior. This is strong transparency for a read-only screener.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense but every sentence earns its place: scope, scoring model, output format, validation credibility, tier limits, and refresh cadence. It is front-loaded with the most important question and contains no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is remarkably complete for calling the tool correctly. It explains what the tool returns, how scores are composed, which top coins are included, and how the `limit` parameter interacts with the user's tier. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful parameter semantics by explaining that `limit` is tier-gated (Free top-10, Pro top-50, Power up to 200), which is not in the schema. It does not add much about `from_rank`, but the schema already documents it clearly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it is an altcoin screener ranking of today's CoinGecko Top-200, scored by a composite of three named factor groups. The title and phrasing clearly separate it from sibling tools like arena_get_gem_score, which implies single-coin scoring, and arena_get_winners.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use it — 'which altcoins look strong right now?' — and sets expectations with 'Backtest-validated factors, not a hype list.' It does not explicitly name alternatives or state when not to use it, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_gem_validationGet Altcoin Screener Backtest-Lite ValidationAInspect

Did the screener picks actually beat BTC? Equal-weight basket of the top-N screener picks, rebalanced every 14 days (grid anchored at the first snapshot — the rebalance block declares anchor and cadence, phase_spread the CAGR and vs_btc range across all 14 grid phases plus whether the vs_btc sign holds in every phase — read the headline against it, the headline is ONE phase), NET of 10 bps per side on the traded fraction at every rebalance (entry included; the BTC benchmark pays the entry fee once; slippage 0 — cost_model declares it). plain is the one-sentence reading (what holds across the phases, not the headline CAGR). Headline cagr, vs_btc, vs_market, max_dd, win_rate are net; cagr_gross, vs_btc_gross, vs_market_gross and cost_drag_pp sit beside them. is_anecdote=true when the curve spans fewer than 84 calendar days. Curves are precomputed weekly on an N ladder (10/25/50/100/200, same input and engine per rung); a requested N snaps to the nearest rung — top_n names the rung used, top_n_requested echoes the request, basis_note declares any snap and any rung above the priced universe (rungs above it are the same basket; the universe block carries the measured sizes). [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
top_nNoBasket size (default 10, Pro+ up to 200)

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does so thoroughly. It discloses cost assumptions (10 bps per side, entry included, one-time BTC benchmark fee, zero slippage), rebalancing cadence, the grid-anchor semantics, the distinction between the one-phase headline and cross-phase `plain` reading, the anecdote threshold, and the nearest-rung snapping behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense and nearly every clause is relevant, but it is delivered as one long, parenthetical-heavy paragraph with no front-loaded plain-language summary. It is comprehensive but not concise or easily scannable, so it loses points on structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must compensate for response semantics, and it does: headline fields vs gross fields, `cost_drag_pp`, `plain`, `is_anecdote`, and the `rebalance`, `phase_spread`, `cost_model`, `basis_note`, and `universe` blocks are all explained. For a single-optional-parameter getter, this is remarkably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents `top_n` as the basket size with a default, giving 100% coverage and a baseline of 3. The description adds important behavior beyond the schema: the precomputed ladder (10/25/50/100/200), snapping to the nearest rung, the `top_n` vs `top_n_requested` distinction, and how rungs above the priced universe behave.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a concrete validation question, names the asset (altcoin screener picks), the benchmark (BTC), and the method (equal-weight basket rebalanced every 14 days). It clearly differentiates this tool from generic backtest siblings by focusing specifically on validating the screener's picks against BTC.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The rhetorical question "Did the screener picks actually beat BTC?" effectively frames when to use this tool, and the 'precomputed weekly on an N ladder' note signals that this is not an on-demand custom backtest. However, it never explicitly names alternative tools or conditions for when to prefer them, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_halvingsGet Bitcoin Halving HistoryAInspect

When were the halvings, and what followed? The full Bitcoin halving table: date, block height, reward change, price at the halving day, cycle peak (highest daily close before the next halving) with days-after-halving and peak multiple. E33: this connects chain events with price data no generic price API links — and the prices, peaks and days-to-peak are COMPUTED from our own daily-close series rather than hand-copied (public "days to peak" figures often mix cycles: the widely cited 547-549 days belong to cycle 3, not cycle 4). The date convention is declared per entry (block 840,000 fell 2024-04-20 00:09 UTC; this platform counts from 2024-04-19 — same convention as arena_get_cycle.halving_date). The current cycle's peak is marked provisional. No next-halving date estimate is published. Related: arena_get_cycle (days_since_halving, score_halving). [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description fully discloses behavior: data is computed from own daily-close series, date conventions are declared per entry, the current cycle peak is marked provisional, and no next-halving estimate is published. It even warns about a common data-mixing pitfall. This is comprehensive transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but information-dense. It fronts the core output ('full Bitcoin halving table') and then adds useful clarifications about data provenance and conventions. While it could be tightened, every sentence adds value or prevents misinterpretation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description is exceptionally complete. It covers what data is returned, how it is computed, the date convention, the provisional status, and a missing feature. An agent would know exactly what to expect and how to interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the baseline is 4. The description adds context about the data source and conventions, which is helpful even though no parameter documentation is needed. It does not repeat schema information since there is none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a full Bitcoin halving table with specific fields (date, block height, reward change, price, cycle peak). It explicitly differentiates itself from generic price APIs and references a related tool (arena_get_cycle) to avoid confusion. The verb and resource are unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies its use case (when you need halving dates and associated price data) and mentions related tools (arena_get_cycle) as alternatives. It also states a limitation ('No next-halving date estimate is published') which indirectly signals when not to rely on it. However, it lacks explicit when-to-use vs. when-not-to-use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_hash_ribbonsGet Hash Ribbons SnapshotAInspect

Are miners capitulating? Latest Hash Ribbons indicator (Charles Edwards). Returns 30d and 60d hashrate moving averages — when 30d > 60d after a capitulation, signals miner recovery (bullish). [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It states that the tool 'Returns' data, implying a read-only operation. It adds the interpretation logic and notes '[Free tier]', hinting at access level. It does not go into potential rate limits or error conditions, but for a zero-parameter read snapshot, the disclosure is adequate and does not contradict any annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences plus a short bracketed note. It front-loads the user-facing question, then explains the output and its interpretation in a clear, efficient manner. Every word earns its place; there is no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (no parameters, no output schema), the description sufficiently explains what is returned and how to interpret it. It could be slightly more explicit about the asset (e.g., Bitcoin) and the exact output format, but for a snapshot indicator, this is adequate. It covers the core information needed to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

This tool has zero parameters and the schema is empty, so per the baseline rule for 0 params, a score of 4 is appropriate. There are no parameter semantics to add, and the description already covers what the tool returns.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns 'Latest Hash Ribbons indicator' and specifically '30d and 60d hashrate moving averages'. The verb 'Returns' plus the resource (hash ribbons) makes the purpose unambiguous, and it distinguishes itself from sibling indicator tools like arena_get_fear_greed or arena_get_mayer_multiple by naming a unique indicator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The opening question 'Are miners capitulating?' implies the intended use case: assessing miner capitulation and recovery. It explains the signal interpretation (30d > 60d after capitulation = bullish), which gives clear context for when to apply the tool. However, it does not explicitly name alternative tools or state when not to use it, so it falls short of the explicit when/when-not guidance required for a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_historical_analogHistorical analog — conditional forward returnsAInspect

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 (matched_episodes), returns median/IQR/positive-share forward returns (30/90/180/365d) with per-horizon n, small-n warnings, point-in-time integrity and an evidence block that names which field its sample-size gate checked (gate_applies_to), against which threshold, over which data window. A distribution with its sample size. Not obtainable from web search or public market-data APIs — requires point-in-time indicator history and look-ahead-free episode matching. Presets: cycle_bottom_cluster (Cycle bottom cluster), cycle_top_cluster (Cycle top cluster), deep_fear (Deep fear), euphoria (Euphoria), quiet_volatility (Quiet volatility regime). The response opens with "preset_definition" (machine-readable condition set) plus current_state_matches (does the state hold TODAY?) and last_matching_date. Some presets carry a "study_finding" field — a state already investigated, with a NULL result where that is what the study found. EVERY preset returns "vs_unconditional_drift": the raw forward median contains the asset's contemporaneous drift; the drift and excess columns separate the two, and the excess can be negative while the raw median is positive. For quiet_volatility, vol_rank_threshold (fixed steps 5/10/20/50) asks the stricter "UNUSUALLY quiet" question the null study left open, and condition_on_direction conditions episodes on the sign of the first post-anchor move over direction_window_days (default 5) — both mark study_finding_applies=false, and horizons within direction_window_days are suppressed as circular. Also works for asset=ETH/SOL (F2 cycle history), but only price-derived presets (cycle_bottom_cluster, cycle_top_cluster) — fear-greed and volatility presets are BTC-only. Related: arena_get_volatility_history (the series behind the volatility preset), arena_get_cycle (the current state to compare against), arena_dip_scenario (composes this base rate into a tranche structure). [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNoWhich asset’s cycle history. Default BTC. ETH/SOL support only price-derived presets (cycle_bottom_cluster, cycle_top_cluster).
presetYesNamed ex-ante cycle-state condition set. One of: cycle_bottom_cluster, cycle_top_cluster, deep_fear, euphoria, quiet_volatility.
forward_horizonsNoForward-return horizons in days. Default [30, 90, 180, 365] — except for quiet_volatility, which defaults to the horizons its study actually tested ([30, 90, 180]); anything beyond that is flagged as outside the protocol.
vol_rank_thresholdNoquiet_volatility only. Reference threshold as a FIXED step: 50 (default, below trailing median — the studied definition) or 5/10/20 (unusually quiet: RV30 below its trailing Nth percentile). Any value other than 50 sets study_finding_applies=false — the null study covered only the default.
direction_window_daysNoClassification window for condition_on_direction (default 5). Only meaningful together with condition_on_direction.
condition_on_directionNoquiet_volatility only. Condition episodes on the direction of the FIRST post-anchor move (sign of the direction_window_days-day return). Horizons <= direction_window_days are suppressed as circular. Sets study_finding_applies=false.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full disclosure responsibility, and it delivers. It transparently discloses point-in-time integrity, look-ahead-free episode matching, small-n warnings, the 'study_finding' field with NULL results, the vs_unconditional_drift separation and its interpretation (excess can be negative while raw median is positive), circularity suppression for horizons within direction_window_days, and the fact that study_finding_applies=false when non-default parameters are used. It also clarifies that quiet_volatility's vol_rank_threshold has fixed steps and different semantics. No contradictions with any structured metadata exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but exceptionally information-dense and front-loaded. It opens with the core purpose, then systematically covers output fields, parameter nuances, asset limitations, and related tools. While it could be broken into bullet points for scannability, every sentence carries unique information and none is filler. The length is justified by the tool's complexity (6 parameters, 5 presets, multiple conditional behaviors). It loses a point only for being a single dense paragraph that might overwhelm an agent scanning quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no output schema and no annotations, the description must compensate for both. It does so comprehensively: it explains the return structure (median/IQR, positive-share, per-horizon n, small-n warnings, evidence block with gate_applies_to), the preset definitions and their semantics, asset support restrictions, the special quiet_volatility parameters and their implications, and the relationship to unconditional drift. It even notes which presets carry study_finding fields. For an agent to call this tool correctly and interpret results, nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even though the input schema covers 100% of parameters with descriptions, the tool description adds substantial meaning beyond the schema. It explains the conceptual meaning of presets (e.g., 'cycle_bottom_cluster' as a named condition set), the special default behavior for forward_horizons under quiet_volatility, the semantic difference between vol_rank_threshold values (50 vs 5/10/20) and the 'unusually quiet' interpretation, and the directional conditioning semantics. The description enriches the schema with protocol-level nuance (e.g., horizons beyond study are flagged as outside protocol) that is not present in the schema fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a concrete question ('What happened historically after the Bitcoin cycle looked like this?') and defines the tool as a 'Conditional forward-return distribution for a named preset cycle state.' It specifies the verb (returns a distribution), the resource (historical analog episodes), and the distinguishing feature (point-in-time, look-ahead-free matching). It also names three sibling tools and when to use them, clearly differentiating itself from the broader family of arena_get_* dataset tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states explicit usage context: it is not obtainable from web search or public APIs and requires point-in-time history and look-ahead-free episode matching. It names related tools (arena_get_volatility_history, arena_get_cycle, arena_dip_scenario) and states when each is appropriate. It also spells out asset restrictions (ETH/SOL only for price-derived presets) and parameter-specific usage (vol_rank_threshold, condition_on_direction only for quiet_volatility). No ambiguity remains about when to invoke this tool versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_indicator_snapshotGet Indicator Snapshot with Historical Percentile RanksAInspect

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 pair, plus the observation count — the rank turns a raw reading into a placement. ATR comes as a percentage of price so it is comparable across time, and OBV as a 30-bar slope normalised by that window's volume (raw cumulative OBV would mostly rank how long the series has existed). Where the reading sits in an extreme AND a study on this platform has tested that exact state, the payload carries the study verdict — including a null result: a Bollinger squeeze returns the quiet_volatility finding that tight bands did NOT carry an edge. Below 500 bars (1d) / 150 (1w) the raw values still come but percentile is null with a reason, rather than a rounded number from too small a sample. Set interval to '1w' for the weekly view. On the 1d view the payload also carries rsi_14_weekly (weekly RSI with its own rank) — for BTCUSDT this is the SAME series as arena_get_cycle rsi_weekly, measured character-identical (its source_note carries the measurement). state (oversold/neutral/overbought) names where a reading sits on its own scale. Related: arena_get_trend_channels (structure), arena_get_historical_analog (did a condition like this one ever pay?), arena_get_volatility_history (the volatility series behind ATR). [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNoPair, e.g. "BTCUSDT" (default), "ETHUSDT", "PAXGUSDT".
intervalNoDefault '1d'. '1w' computes every indicator on weekly bars.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden, and it does so thoroughly. It discloses normalization choices (ATR as % of price, OBV as 30-bar slope), behavior on small samples (percentile null with reason), study verdict inclusion conditions, and even a data provenance note (rsi_14_weekly identical to arena_get_cycle for BTCUSDT). It does not cover rate limits or explicit read-only status, but the behavioral details are extensive for a snapshot tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, lengthy paragraph with several complex clauses (e.g., the Bollinger squeeze explanation). While information-dense, it is not tightly structured; it could be split into shorter sentences or bullets for better readability. It front-loads the core purpose well, but the verbosity around edge cases and related tools makes it less concise than ideal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given only 2 optional parameters and no output schema, the description covers the essential call context thoroughly: indicator set, percentile rank approach, edge-case handling, extra field on 1d, state field, and related tools. It does not describe the exact response structure, but that is not required without an output schema. It is sufficiently complete for an agent to call it correctly and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are documented, but the description adds meaningful nuance beyond the schema. For 'interval', it explains the effect on output (e.g., weekly RSI extra field only on 1d) and clarifies the choice. For 'pair', it provides examples and context but no additional semantics. The description adds interpretive value for the interval parameter, earning a 4 rather than a baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear, specific question: 'What do the classic indicators read right now?' and enumerates exact indicators (RSI(14), MACD(12/26/9), Bollinger(20,2), ATR(14), OBV) with percentile ranks. It explicitly distinguishes itself from siblings by naming related tools and their purposes (trend channels, historical analog, volatility history), making it unambiguous what this tool does and how it differs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool and explicitly lists alternative tools with their purposes in the 'Related:' clause. It gives direct usage instructions like 'Set interval to '1w' for the weekly view' and explains when percentile is null due to insufficient data. It does not explicitly state when not to use it, but the related tool explanations largely cover that.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_iv_snapshotGet Deribit IV SnapshotAInspect

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 realized vol, and vol_risk_premium_30d, which is the TRAILING spread: ATM implied vol (30d, from the options chain — not DVOL) minus the realised volatility of the PAST 30 days. It answers "are options priced expensively right now?". Set include_implied=true to additionally get the FORWARD premium in an implied block: DVOL(t) minus the realised volatility of the FOLLOWING 30 days, which answers the different question "did the expectation actually materialise?". These two are NOT interchangeable — measured 2026-08 they carried OPPOSITE signs on 17.3% (BTC) / 30.5% (ETH) of paired days. The forward field is spelled out as vol_risk_premium_forward_30d so the two cannot be confused. The most recent 30 days carry premium_complete=false and no premium value at all, because their forward window has not closed yet; they are excluded from every aggregate. Source: Deribit DVOL Index. History: BTC from 2021-04-01, ETH from 2022-02-15. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
currencyYesCurrency to fetch IV snapshot for
include_impliedNoDefault false (response unchanged). When true, adds an `implied` block with the FORWARD volatility risk premium, its percentile and the historical base rate.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully bears the burden of behavioral disclosure. It reveals the exact fields returned, the semantics of both trailing and forward risk premiums (including their non-interchangeability and sign opposition), what include_implied adds, the edge case of recent 30 days with premium_complete=false, and source/history dates. This is comprehensive and goes far beyond a bare 'get snapshot' statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but each sentence contributes: purpose, returned fields, flag behavior, edge cases, source, and history. Use of bolding, backticks, and code-style names aids scannability. It is longer than typical but not bloated; it earns its length. A minor deduction for not front-loading the most common usage (snapshot) vs. the detailed metric explanations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description covers all essential returning fields and their meanings, the optional block, data availability caveats, and historical start dates. It tells the agent exactly what to expect in the response (e.g., implicit JSON structure with an 'implied' block). Nothing critical is missing for correct invocation or interpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (both params described), so baseline is 3. The description adds substantial meaning: it explains that include_implied appends a forward premium block, clarifies the difference between trailing and forward premiums, details the implied block fields, and notes the exclusion of incomplete recent data. For currency, it reinforces the BTC/ETH scope. This far exceeds merely restating schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns the latest Deribit volatility snapshot for BTC or ETH, enumerating specific metrics (DVOL, implied vols, realized vol, premiums). It distinguishes itself from siblings like arena_get_volatility_history by emphasizing 'latest snapshot' and answering 'are options priced expensively right now?'. The verb+resource is explicit and differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a clear use case ('are options priced expensively right now?') and explains when to set include_implied (to answer a different forward-looking question). It also warns about the non-interchangeability of trailing and forward premiums and the incomplete recent 30 days. However, it does not explicitly name alternative tools or state when to prefer history/insights siblings over this snapshot tool, leaving some ambiguity for an agent choosing among many volatility tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_job_statusGet Async Job StatusAInspect

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 completed: the full result (summary + per-pair results). [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesUUID job_id returned by arena_run_universe_backtest.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it delivers: it discloses the status lifecycle (pending/running/completed/failed), the intermediate progress fields (progress_pct, pairs_completed), and the transition to full results upon completion. It does not address polling cadence or rate limits for a repeated-poll operation, which would strengthen it further.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence that front-loads the question, states the verb, names the provenance, and enumerates return fields with no filler. The opening conversational fragment is slightly unusual for a formal definition but works well for orientation; otherwise it is tightly packed with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter polling tool with no output schema, the description covers purpose, usage provenance, the parameter, and the return shape across lifecycle states. Minor gaps are the absence of error/status semantics (e.g., handling of failed jobs) and no recommended polling interval, but the core is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already describes job_id as the UUID returned by arena_run_universe_backtest. The description's reference to job_id largely restates what the schema provides, adding minimal beyond-schema meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Polls') and resource (async job by job_id) and orients the reader with the opening question 'Is my universe backtest finished?'. It names the provenance tool (arena_run_universe_backtest), which clearly distinguishes this polling endpoint from sibling sync-retrieval tools like arena_get_backtest and arena_get_report_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the usage context clearly: it polls an async job created via arena_run_universe_backtest, and it notes the [Free tier] cost signal. It does not explicitly name alternatives or state when not to use it, but the 'created via' provenance effectively separates it from synchronous backtest retrieval siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_key_levelsGet BTC Key Levels (S/R clusters + indicator levels)AInspect

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 past pivot highs+lows cluster into price zones (touch-count, band, last-touch date, signed distance), resistance above spot, support below, nearest-first. (2) indicator_levels.above / .below: named indicator STANDS as marks — 200-day & 200-week simple moving averages, short-term-holder cost basis, Pi-Cycle legs — each carrying its source, formula and as_of date. The two classes are kept separate on purpose: pivots are where price REACTED before, indicator levels are where an indicator STANDS now. Both are measured price clusters: they say where trading has concentrated, not where anyone defends a level. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full behavioral burden. It adds meaningful context: levels are 'reproducible', 'measured price clusters' not 'defended levels', and notes a free tier. It discloses that the two classes are kept separate on purpose. This goes beyond a generic 'get levels' description, though it does not mention rate limits or response format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat long but well-structured with a front-loaded question and clear numbered classes. Every sentence adds distinct information (provenance, purpose, free tier). No redundancy, but slightly verbose for a zero-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output-schema tool, the description is complete. It explains what levels are included, how they are derived, the separation of classes, and the free tier limitation. Nothing essential is missing for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so the baseline is 4. The description correctly focuses on the output content rather than parameter details, which is appropriate. No further parameter clarification is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and resource ('BTC Key Levels') and immediately clarifies it returns structural levels in two provenance classes (pivot clusters and indicator levels). It clearly distinguishes this from the many sibling tools by enumerating what is included, without needing to compare to others.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: it answers 'Which price levels matter above and below spot?' and explains the two classes. However, it does not explicitly name alternative tools or state when not to use this tool. Given the large sibling list, more explicit routing (e.g., 'for indicator-only values use arena_get_indicator_snapshot') would improve clarity, but the context is understandable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_kimchi_premiumGet Kimchi Premium (Upbit vs. global BTC price)AInspect

Is Korean spot trading BTC at a premium? Daily Kimchi-premium snapshots: Upbit BTC/KRW (USD-converted) versus the global BTC/USD price, in percent — one point-in-time reading per UTC day (~01:45 UTC), both legs from the same price/FX source (CoinGecko) so the ratio is internally consistent. Positive = Korean premium, negative = discount. The series is collected forward-only since 2026-08 and cannot be backfilled — early on, n_days is small and says so. Window via days, capped by tier — the range block declares requested/granted. [Free 30d / Pro 365d / Power unlimited]

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days back from today (auto-clamped by tier — Free=30, Pro=365, Power=3650).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the series is forward-only and cannot be backfilled, that early data may be sparse ('says so'), and that both legs come from the same source for internal consistency. It explains the sign convention (positive=premium, negative=discount) and mentions the `range` block in the response. This is solid disclosure, though it omits exact response structure/format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact yet information-dense. It front-loads the core question, then covers data source, cadence, interpretation, limitations, and parameter behavior in a logical order. No sentence is wasted, though it could be slightly trimmed without losing value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description provides everything an agent needs to call it correctly: definition, timezone, frequency, source consistency, sign semantics, forward-only constraint, tier caps, and the response's `range` block. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents `days` with 100% coverage, including auto-clamping and tier boundaries. The description adds concrete tier limits (Free=30, Pro=365, Power=3650) and clarifies the 'capped by tier' behavior, plus the forward-only note about n_days being small early on. This goes beyond the schema and meaningfully helps the agent set expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise question ('Is Korean spot trading BTC at a premium?') and defines the exact metric: Upbit BTC/KRW (USD-converted) versus global BTC/USD in percent. It names the resource (Kimchi premium), the source (CoinGecko), and the data cadence (daily snapshots), making it unmistakable and clearly distinct from any sibling get_* tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states when to use it (when you need Korean BTC premium) and gives operational constraints: forward-only data since 2026-08, cannot be backfilled, and the `days` window is capped by tier with explicit tier limits (Free=30/Pro=365/Power=3650). It doesn't name an alternative tool to switch to, but given the unique metric, the guidance is essentially complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_knowledgeGet Knowledge ObjectAInspect

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: payload, explanation (factors + weights + confidence), provenance (inputs + params), ontology binding, compute version. ONE tool covers ALL knowledge types. Set include_graph=true to also walk the knowledge graph: resolved outbound edges (what this object is derived_from / references) + inbound edges (what derives from / references it), each with api_path + seo_slug so you can follow them. [Free tier; per-object access additionally gated by min_tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesKnowledge object type, e.g. 'market_regime'.
as_ofNoSpecific date YYYY-MM-DD. Omit for latest.
subjectYesSubject ref, e.g. 'GLOBAL', 'BTC'.
include_graphNoIf true, attach the resolved edge neighbourhood (outbound + inbound) for graph traversal.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It discloses the exact return envelope (payload, explanation, provenance, ontology binding, compute version), notes the objects are versioned and published, and explains the include_graph extension with edge details (api_path + seo_slug). It also mentions per-object access gating by min_tier. These are substantive behavioral disclosures beyond a simple 'fetch' description, though it omits error or rate-limit behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-organized: starts with a framing question, then purpose, response envelope, scope ('ONE tool'), graph extension, and access note. The rhetorical opener adds flavor but every following sentence delivers concrete information. It is slightly long but efficiently structured with key details front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Comprehensive for a tool with no output schema. It specifies the full return envelope fields, the graph traversal behavior with edge attributes, and the access gating condition. The scope clarification and examples ensure an agent can call it correctly without needing an output schema. All essential information for successful invocation is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds practical value by giving example values for type and subject, clarifying that as_of defaults to the latest when omitted, and explaining the effect of include_graph on graph traversal. These clarifications go beyond the schema's brief property descriptions, making the parameters more actionable for an agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb 'Fetch' and resource 'Knowledge Object' by type and subject, with concrete examples (type='market_regime', subject='GLOBAL'). The phrase 'ONE tool covers ALL knowledge types' clearly differentiates it from the many specific arena_get_* siblings, establishing that this is the general knowledge retrieval tool. The description is unambiguous and immediately scopes the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context by stating it covers ALL knowledge types, which implies it is the general-purpose alternative to the numerous type-specific getters (e.g., arena_get_macro_regime, arena_get_btc_market_structure). It gives practical examples and explains the optional include_graph for graph traversal. However, it does not explicitly enumerate when-not-to-use cases or name specific alternatives, so the guidance is strong but not fully exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_macro_regimeGet Macro Regime SnapshotAInspect

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%, Inflation/Real Rates 10%). FRED-sourced. Returns composite_score (0-100), regime_label (risk_off/neutral/risk_on_leaning/risk_on), cycle_phase_label (contraction/early_expansion/mid_expansion/late_expansion), matrix_quadrant (sweet_spot/late_cycle_warning/crisis/recovery), tier_scores (6 sub-scores), components (flat key/value of all 18), plus stale_components_detail dating each stale input (last_good_date + age_days + discontinued flag for series the upstream has retired for good) so freshness is quantified, not a vague caveat. Two component keys mean something narrower than their name suggests, so read them carefully: vix_score is the derived 0-100 score (a value of 71 means VIX around 18.6), NOT the VIX index level — the raw Cboe level is not redistributed over this channel; and broad_dollar_index is FRED DTWEXBGS (Broad USD Index, Jan 2006 = 100), NOT the ICE DXY, so readings near 120 are normal. The former names vix and dxy were removed on 2026-09-01 after their announced deprecation window; consumer_confidence_value went with them (OECD retired the series, frozen since 2024-01-01, never weighted in the composite). [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully carries the burden of behavioral disclosure, and it does so excellently. It discloses data sourcing (FRED), the derived nature of `vix_score` (not the raw VIX level) and `broad_dollar_index` (DTWEXBGS, not DXY), including specific caveats like normal readings near 120. It also details freshness quantifications (stale_components_detail) and includes a deprecation history, which is far beyond the minimum.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured: it starts with the purpose, then enumerates output fields, and dedicates specific attention to two potentially misleading keys. Every sentence adds value—there is no filler. The length is justified by the complexity of the output and the caveats, and important warnings are explicitly flagged ('read them carefully').

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description takes on the responsibility of explaining all return values, which it does in detail: composite_score, regime_label, cycle_phase_label, matrix_quadrant, tier_scores, components, and stale_components_detail. It also covers edge cases (deprecated keys, discontinued series) and provides concrete examples (vix_score value mapping). The '[Free tier]' note adds practical context. Nothing an agent needs to correctly interpret the response is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline per the rubric is 4. The description adds no parameter-related detail (there is nothing to add) but does not need to. It focuses instead on output semantics, which is appropriate. The schema coverage is 100% for parameters (none), so no discrepancy exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear question ('What is the macro backdrop doing?') and immediately states it is a 'Daily Macro Regime snapshot' built from a defined set of components and tiers. The verb (get) and resource (macro regime) are explicit, and the detailed composition (18 components, 6 tiers with percentages) clearly differentiates it from sibling tools like arena_get_btc_macro_correlations or arena_get_cycle, even without naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description thoroughly explains what the tool returns but provides no explicit guidance on when to use it versus alternatives. It does not state conditions like 'use when you need a broad macro overview' or contrast it with other read-only indicators. The absence of any when/when-not or alternative naming leaves the agent to infer usage from the content.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_ma_distance_historyGet MA-Distance Time Series (measured, not estimated)AInspect

How far above or below its moving averages did price stand back then? A measured time series, not an estimate. Covers six MAs (50/100/200-day and 50/100/200-week; weekly MAs are simple averages over ISO-week closes, the same definition arena_get_cycle uses, so today's value agrees with that tool). Per date and MA: distance_pct plus TWO percentile ranks — expanding against the pair's own full prior history (with rank_n, null below 500 observations) and rolling over the trailing 504 days. Warm-up discipline: before an MA's full window exists the field is null, never an average over fewer days — a "200-week MA" computed from 400 days looks plausible and is a different metric; the coverage block names each MA's first valid date. BTCUSDT reaches back to 2011-07 via the platform's own pre-Binance closes (source named in price_source); the first valid 200-week value is ~2015-05. Range capped by tier from today backwards; granularity daily/weekly/monthly, coarsened with an explicit note when a request would exceed the row cap. What the numbers are: ratios and ranks, not absolute price or MA levels. For today's absolute MA levels as named marks use arena_get_key_levels (indicator_levels block); for the cycle-scored 200-week distance use arena_get_cycle. [Free 30d / Pro 365d / Power 3650d]

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoISO date, default today.
masNoSubset of MAs; default all six.
fromNoISO date. Clamped to the tier window measured back from today.
pairNoPair, e.g. "BTCUSDT" (default), "ETHUSDT", "SOLUSDT". Non-BTC pairs start at their Binance listing.
granularityNoDefault 'daily'. Rows above the cap are coarsened with an explicit note.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description carries the full burden of behavioral disclosure. It thoroughly documents return semantics (distance_pct, two percentile ranks with rank_n and null below 500 obs), warm-up rules (null before full window, never averaging over fewer days), data source (pre-Binance closes for BTCUSDT), tier-based range capping, granularity coarsening with explicit note, and explicitly states what the numbers are NOT (absolute price/MA levels). This level of transparency is exceptional.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence earns its place. It front-loads the core purpose in the first sentence, then layers details in logical order (MA list, rank types, warm-up, data source, range, granularity, what-not-included, alternatives). No redundancy: each clause adds new information. The length is justified by the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must explain what the caller receives, and it does so comprehensively: it mentions the returned fields (distance_pct, two percentile ranks, rank_n, coverage block with first valid dates), edge cases (null before warm-up, tier caps, coarsening), and the specific meaning of each value. It also covers the pair-specific start dates. For a tool with this many parameters and behavioral nuances, the description leaves nothing essential unclear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even though schema coverage is 100%, the description adds substantial meaning beyond the schema: it explains the ISO-week close definition for weekly MAs, the distinction between expanding and rolling ranks, the meaning of 'rank_n' null condition, the clamping behavior of 'from' to tier window, and the coarsening behavior for granularity. Each parameter's semantics is enriched, not just restated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb-resource statement ('How far above or below its moving averages did price stand back then?') and clearly distinguishes itself from siblings by naming arena_get_key_levels and arena_get_cycle with specific use cases. The title adds 'measured, not estimated' which further clarifies its unique role. This is exactly what an agent needs to quickly identify when to call this tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool vs alternatives: 'For today's absolute MA levels as named marks use arena_get_key_levels; for the cycle-scored 200-week distance use arena_get_cycle.' It also clarifies the context (measured time series vs estimates) and warns about the warm-up discipline. This gives the agent clear decision criteria without having to open other tools' definitions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_max_painGet Deribit BTC Max Pain (latest + upcoming)AInspect

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 current live max-pain level, days_to_expiry, open_interest_contracts and open_notional_usd. Field semantics: days_to_expiry is floored at 0 and cannot separate "expires later today" from "already settled" — settles_at (full ISO timestamp) and hours_to_settlement (SIGNED; negative = settled but not yet finalized) carry that distinction. settlement_time_utc names the settlement time where evidenced against the exchange (08:00:00Z for DERIBIT_BTC); where not evidenced, all three timing fields are null. open_interest_contracts (upcoming: latest daily snapshot) and total_contracts (settled: last snapshot BEFORE expiry) are the SAME measurement at different observation times; contracts_as_of names the snapshot. total_notional_usd is computed against the SETTLEMENT spot and never changes; open_notional_usd uses the CURRENT spot and moves with spot (notional_spot/notional_spot_date name the reference). oi_available distinguishes "null" from "not collected". Expiry flags NEST rather than partition (quarterly ⊂ monthly ⊂ weekly ⊂ daily): filter on the booleans, read expiry_type as the label — only it separates a Friday expiry from a mid-week one. All flags are calendar-derived, so upcoming expiries carry them too. spot_at_expiry is the exchange settlement price: for DERIBIT_BTC the Deribit delivery price (30-min index TWAP before 08:00 UTC — rows before 2026-08-31 were recomputed from that series; they had carried the BTCUSDT daily close, 16 h later), for IBIT the ETF close of the expiry day. Pass market to switch venue (DERIBIT_BTC default, IBIT). include_strike_ladder=true adds, per expiry, open interest per 2.5 % price band around spot (±25 %, calls/puts, absolute contracts) with day-over-day delta — a stock, not a side: no hedge direction follows from it. include_gex=true (DERIBIT_BTC only) adds per expiry a gex block plus gex_totals across the book — Black-Scholes gamma notional per band from LIVE Deribit mark IV (gex_data_as_of names the fetch, a different observation time than the snapshot fields); the dealer sign is an ASSUMPTION, both conventions published side by side with a zero_gamma_level each. Cron collects daily 02:00 UTC from Deribit Public API. Related: arena_get_max_pain_history (base rates + daily snapshots of open expiries), arena_get_iv_snapshot (implied vol for the same expiries). [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
marketNoOptions market: 'DERIBIT_BTC' (default) or 'IBIT' (BlackRock spot-ETF options, collected since 2026-08-24; settlement-timing fields are null until evidenced).
include_gexNoDefault false (response unchanged). DERIBIT_BTC only. When true, each upcoming expiry carries a `gex` block plus `gex_totals` across the whole book: Black-Scholes gamma notional (USD per 1 % spot move) per 2.5 % band from LIVE Deribit mark IV per strike (gex_data_as_of names the fetch, ~10 min cache — a different observation time than the 02:00 UTC snapshot fields). The dealer SIGN is an assumption, not a measurement: both conventions are published side by side (assuming_dealers_short_all, assuming_squeezemetrics_convention) with a zero_gamma_level each; where they disagree, the data does not know the answer. Tau floor 2 h near expiry (tau_clamped flags it); instruments without usable IV are excluded and counted.
include_strike_ladderNoDefault false (response unchanged). When true, every expiry carries a `strike_ladder`: open interest per 2.5 % price band around the snapshot spot (±25 %, calls/puts separate, absolute contracts, share_pct), below_range/above_range sums, max_pain_recomputed (cross-check against the stored level) and `delta` vs the previous day's snapshot on the same band grid (null with delta_reason when there is none). OI is a stock, not a side — no hedge direction follows; the note travels with the response.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it is exceptional: it explains settlement-time semantics, signed hours_to_settlement, null behavior, observation-time differences between open_interest_contracts and total_contracts, the recomputation of pre-2026-08-31 rows, the dealer-sign assumption for GEX, and the cron collection schedule. It also discloses that expiry flags are calendar-derived and that total_notional_usd never changes while open_notional_usd moves with spot.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence earns its place — there is no filler and the content is highly informative. However, it is delivered as one dense, comma-heavy wall of text with nested parentheticals and no section breaks, which makes it harder to parse than a structured layout would be. It is appropriately rich but could be better organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers all major call-critical aspects: return contents, field semantics, null and signed-value distinctions, venue behavior, GEX assumptions, data provenance, collection cadence, and related tools. An agent has enough information to invoke the tool correctly and interpret ambiguous timing/OI fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter is already documented in the schema. The description adds meaningful beyond-schema context: market switches venue with DERIBIT_BTC default, include_gex is DERIBIT_BTC-only with both dealer-sign conventions, and include_strike_ladder includes a day-over-day delta and a recomputed max-pain cross-check. It does not fully restate every schema detail, but the added operational semantics justify a score above the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a concrete question — 'What happened at the last Deribit expiry?' — and enumerates exactly what the tool returns: max_pain_strike, spot_at_expiry, put_call_ratio, plus up to 10 upcoming expiries with live max-pain levels. It clearly names the resource (Deribit BTC max pain, latest + upcoming) and distinguishes itself from siblings by explicitly naming arena_get_max_pain_history and arena_get_iv_snapshot as related alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when the tool is relevant (latest and upcoming max pain, settlement comparison) and names related tools — arena_get_max_pain_history for base rates and daily snapshots, arena_get_iv_snapshot for implied vol on the same expiries. It does not give explicit 'use this when / use that when' exclusions, but the distinctions are inferable from the stated contents of each.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_max_pain_historyGet Deribit BTC Max Pain HistoryAInspect

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 max-pain level as expiry approaches? Each row: expiry_date, max_pain_strike, spot_at_expiry, %-diff, P/C ratio, notional, expiry-type flags. The mandatory base_rates block answers the convergence question PER expiry class (n, median |diff|, shares within 1%/2%, max, sample_adequate at n>=30) — the pooled median mixes tiny daily expiries with large quarterlies, which is what the per-class split separates. Filter with expiry_type / min_contracts / snapshot_expiry_date instead of post-processing the full row set. With include_open_snapshots=true it adds the daily observation series of still-open expiries — that series starts 2026-05-28, is not backfillable, and its per-expiry depth is thin, so check open_snapshot_coverage before computing anything from it. Days auto-capped by tier: Pro 365d, Power 3650d. Max-pain levels are our own aggregation across the option chain; the chain itself is not redistributed. Source: Deribit. Related: arena_get_max_pain (current + upcoming), arena_get_iv_snapshot. [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoDays back from today (default 90, capped by tier).
marketNoOptions market: 'DERIBIT_BTC' (default) or 'IBIT' (collected since 2026-08-24 — history is correspondingly short).
expiry_typeNoFilter expiries AND open_snapshots to one expiry class (label = highest level reached; the nesting booleans stay untouched). base_rates are always computed BEFORE this filter.
min_contractsNoOnly finalized expiries with total_contracts >= this (rows with unknown contracts drop out when set).
snapshot_expiry_dateNoReduce open_snapshots[] to exactly this expiry date (YYYY-MM-DD). Only meaningful with include_open_snapshots=true.
include_open_snapshotsNoDefault false. When true, adds open_snapshots[] (daily observations of not-yet-expired contracts) plus open_snapshot_coverage. Omit for the unchanged response.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden and does so thoroughly: it explains the output structure (rows plus per-class base_rates), the pooling pitfall it separates, that base_rates are computed BEFORE filtering, the open_snapshots limitations (not backfillable, starts 2026-05-28, thin depth), tier capping, and that max-pain levels are the tool's own aggregation (chain not redistributed). It also discloses the data source.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Though long, the description is densely packed with non-redundant information. It front-loads the core purpose, then flows from rows to base_rates, then to filters, then to open_snapshots caveats, tier caps, and source/related tools. Every sentence adds a distinct piece of guidance; there is no fluff or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description must explain return values and does so concretely (row fields, base_rates stats, open_snapshots structure). It also covers critical constraints (tier caps, data availability, backfill limits) and trade-offs (pooled median vs per-class). For a tool with this many parameters and caveats, nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds real value beyond the schema: it explains why open_snapshots filtering with snapshot_expiry_date only matters when include_open_snapshots=true, advises using the filter parameters instead of post-processing, and clarifies that expiry_type filter does not affect precomputed base_rates. This contextual advice enhances parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise research question ('Does max pain actually pull price to the strike?') and clearly states the tool returns settled Deribit BTC options expiries with computed max-pain levels. It enumerates the row fields and distinguishes from siblings (arena_get_max_pain for current/upcoming, arena_get_iv_snapshot). Verb+resource+scope are all specific, and it tells the agent exactly what analytical question this data serves.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: it is for measuring the convergence question, contrasting with current/upcoming data. It instructs to filter with expiry_type / min_contracts / snapshot_expiry_date instead of post-processing the full row set, and warns that open_snapshots are thin and non-backfillable, so coverage must be checked first. It also notes tier-based day caps and names related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_mayer_multipleGet Mayer MultipleAInspect

Is BTC stretched against its 200-day average? Returns the current Mayer Multiple — BTC price divided by its 200-day SMA — as spelled-out fields: date, mayer_multiple, price_usd, sma_200d (with sma_200d_source declaring its provenance) and the Trace Mayer (2014) bands as a machine-readable field (<0.7 capitulation, 0.7–1.5 neutral, 1.5–2.4 bullish, >2.4 euphoria). The former raw row shape (d, value.v, value.close) is still present but deprecated — see deprecated_fields with removal date. One ratio, not a regime call: for the multi-indicator cycle read use arena_get_cycle, for the series behind this number arena_get_mayer_multiple_history. The bands are historical description, not thresholds to trade. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears the full duty of behavioral disclosure. It comprehensively reveals what is returned (spelled-out fields plus a deprecated raw row shape with removal date), semantics of the bands, and clarifies that this is a single ratio, not a regime call. The free-tier mention further sets expectations. This is thorough transparency with no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by field details, deprecation note, and reasoning for alternatives. Every sentence earns its place—no fluff. Although it's longer than average, the density of useful information justifies its length, and the structure (question → answer → caveats → alternatives) is logical.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no input parameters and no output schema, the description must fully describe both the request and the response. It does: it lists return fields with provenance, explains the deprecated shape, defines the interpretation bands, clarifies the scope (single ratio), and points to sibling tools for related needs. Nothing an agent needs to correctly invoke and interpret this tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. But the description goes beyond by explaining the meaning of the output fields: sma_200d_source provenance, the exact definition of the Mayer Multiple, and the enumeration of band thresholds with their labels. This adds semantic value that no schema could provide, making it a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the exact question the tool answers ('Is BTC stretched against its 200-day average?') and then precisely states the product: the Mayer Multiple with its formula and return fields. It explicitly differentiates from siblings (arena_get_cycle for multi-indicator regime, arena_get_mayer_multiple_history for the series), so an agent can instantly identify this tool's unique role among a large sibling set.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit selection guidance: use this for the single current ratio, use arena_get_cycle for broader cycle context, and arena_get_mayer_multiple_history for the underlying series. It also adds a caution about not treating bands as trade thresholds, preventing misuse. This unambiguously tells the agent when to invoke it versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_mayer_multiple_historyGet Mayer-Multiple Historical SeriesAInspect

How stretched has BTC been against its 200-day average? Returns the Mayer-Multiple TIME SERIES (BTC price ÷ its 200-day SMA), one row per day, ascending by date. Values around 1 mean price sits at its 200d average; historically high readings clustered near cycle tops and low ones near bottoms — a descriptive ratio, not a trigger. For the current value alone call arena_get_mayer_multiple. Range capped by tier. [Free 30d / Pro 365d / Power unlimited]

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days back from today (auto-clamped by tier — Free=30, Pro=365, Power=3650).

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it does a strong job: it discloses the tier-capped range ([Free 30d / Pro 365d / Power unlimited]), the data granularity and ordering, and explicitly states the series is descriptive rather than a trigger. It stops just short of describing the exact response object shape or the auto-clamping behavior on exceeding the limit, which would make it fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tight paragraph (~80 words) where every sentence earns its place: formula, granularity, interpretation, semantic caution, sibling routing, and tier cap. The hook question front-loads the subject matter clearly. Slightly dense with the interpretation clause and tier footnote packed after the core function, but the logical flow is sound and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter historical series tool with no output schema and zero annotations, the description covers nearly everything an agent needs: what is returned (formula, per-day rows, ascending order), how to interpret values (around 1 = at 200d average), the distinguishing sibling, and the tier range limit. The only gap is the precise response field names/shape, which is minor given the established series concept.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The schema already fully documents 'days' (number of days back, auto-clamped by tier — Free=30, Pro=365, Power=3650). The description merely echoes the tier cap without adding new meaning beyond what the schema provides, so it neither improves nor detracts from the schema's coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Returns the Mayer-Multiple TIME SERIES'), gives the exact formula (BTC price ÷ 200-day SMA), granularity (one row per day), and sort order (ascending by date). It explicitly names the sibling arena_get_mayer_multiple, so an agent can distinguish the history variant from the single-value variant without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit routing: 'For the current value alone call arena_get_mayer_multiple,' which tells the agent when to choose the sibling over this one. Also clarifies the semantic role — 'a descriptive ratio, not a trigger' — so the agent knows it is for context/analysis rather than signal generation. The tier-cap note further sets expectations about what this tool will deliver.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_onchain_historyGet On-Chain Series Historical ValuesAInspect

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 most series. Use it for trend and percentile work; for the single current reading call arena_get_onchain_latest, and to discover valid series_ids call arena_list_onchain_series. Values are as-reported: on-chain metrics can be revised retroactively, so this is not a point-in-time vintage. Range capped by tier — the response carries a range block (requested_days, granted_days, clamped, clamp_reason, tier), so a clamped window announces itself instead of silently looking like the full history. [Free 30d / Pro 365d / Power unlimited]

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoDays back from today (clamped by tier).
series_idYesBRK series id, e.g. 'mvrv'.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that values are as-reported and can be revised retroactively (not point-in-time), and it transparently explains tier-based clamping via the 'range' block. It could add more on response format or error behavior, but the key caveats are covered thoroughly. The lack of annotations is mitigated by this strong prose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence earns its place. The description leads with intent, explains the data, routes to alternatives, and flags caveats. It is dense but not bloated, and it front-loads the core function. The structure is a model of clarity without superfluous wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a time-series tool with no output schema, the description covers the essential contextual needs: what is returned, how to use it, alternatives, data revision caveat, and tier clamping behavior. It omits explicit mention of pagination or exact number of data points, but the range block and history depth are explained. Minor gaps but overall complete enough for an agent to call confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are documented. The description adds value by explaining the 'days' parameter's interaction with tier limits (Free 30d / Pro 365d / Power unlimited) and by mentioning the 'range' block that reports clamping. It also gives an example series_id ('mvrv'). This goes beyond the schema's basic descriptions, enriching the semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the full time series of one on-chain metric as date/value pairs, with history back to 2009. It distinguishes itself from siblings by explicitly naming arena_get_onchain_latest for single readings and arena_list_onchain_series for discovering series IDs. The verb 'returns' and resource 'time series' are specific and actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: 'for the single current reading call arena_get_onchain_latest, and to discover valid series_ids call arena_list_onchain_series.' It also states the intended use case ('trend and percentile work'). This is a textbook example of alternating tool routing with clear conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_onchain_latestGet On-Chain Series Latest ValueAInspect

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 "what is X right now" (MVRV, SOPR, realized price, hash rate, …). Discover valid series_ids with arena_list_onchain_series; for the history behind the number use arena_get_onchain_history. A single reading has no context — pair it with the series percentile before calling any level high or low. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
series_idYesBRK series id, e.g. 'mvrv', 'sopr', 'realized_price'.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool returns a single reading, notes it has no context ('A single reading has no context') and advises pairing with the series percentile, and hints at cost with '[Free tier]' and 'Cheapest way'. While it doesn't explicitly say 'read-only' or cover error behavior, the description provides substantial operational context beyond the bare function.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and output format, then adds practical guidance (alternatives, context warning, free tier) in a compact set of sentences. Every sentence earns its place: the opening question captures intent, the return format is explicit, and the caveat prevents misuse. It is dense but not bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (1 parameter, no output schema), and the description covers everything an agent needs: the return shape, how to discover valid inputs, the relationship to history, and a usage pitfall (single reading lacks context). Since there is no output schema, the explicit field list is essential and provided. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers the parameter with examples ('mvrv', 'sopr', 'realized_price'), so baseline is 3. The description adds value by explaining that series_ids come from a separate listing tool and by reiterating the output fields, which clarifies how to interpret the response. This goes beyond merely restating the schema and compensates slightly for the lack of an output schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Returns the most recent value of ONE on-chain series') with a concrete output format and examples ('MVRV, SOPR, realized price, hash rate'). It clearly distinguishes itself from arena_get_onchain_history by contrast, and names the discovery tool arena_list_onchain_series. The purpose is unambiguous and immediately separates it from dozens of siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly frames the tool as 'Cheapest way to answer "what is X right now"' and gives direct alternatives: 'for the history behind the number use arena_get_onchain_history' and 'Discover valid series_ids with arena_list_onchain_series'. This tells the agent exactly when to use this tool versus its siblings, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_ontology_termGet Ontology Term DefinitionAInspect

What does this term mean here, exactly? Resolve a knowledge-platform term to its canonical definition (e.g. term='regime'). Returns label, definition (EN/DE), calculation, unit, source + source_ref, version, related terms. Use this to resolve the onto:@ references inside Knowledge Objects. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
termYesOntology term slug, e.g. 'regime', 'liquidity', 'altcoin_season'.
versionNoSpecific version. Omit for current.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full behavioral disclosure responsibility. It does add useful context by noting the '[Free tier]' and listing the exact fields returned, which implies a read-only operation. However, it does not disclose potential failure modes (e.g., unknown term), response format details, or any rate limits. The behavior is partially transparent but lacks depth, so a 3 is fair.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long and logically structured: opening purpose question, return list, and usage context plus free-tier note. The opening question is stylistically engaging but not strictly necessary; still, every sentence earns its place. It is concise and front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with two parameters and no output schema, the description covers the essential aspects: what it does, what it returns (listing fields), and when to use it (for onto: references). It lacks error handling and explicit read-only confirmation, but those are minor given the tool's simplicity. It is sufficiently complete for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description adds value by providing an example term ('regime') and clarifying that version refers to the ontology reference format 'onto:<term>@<version>'. This enriches understanding of how the parameters map to the intended use case, exceeding the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('resolve') and resource ('knowledge-platform term to its canonical definition'), with a concrete example ('term=\'regime\''). It enumerates what is returned (label, definition EN/DE, calculation, unit, source, version, related terms) and explicitly distinguishes its use case from all sibling tools, none of which handle ontology term resolution. The purpose is unambiguous and well differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit context for when to use the tool: 'Use this to resolve the onto:<term>@<version> references inside Knowledge Objects.' This is clear and actionable. It does not mention alternatives or when not to use it, but the context alone is sufficient given no sibling tool serves the same function, so a 4 is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_platform_activityGet Platform Activity DashboardAInspect

What are people backtesting right now? What is being backtested on Backtesting Arena right now — platform activity, NOT market sentiment. hotAssets, hotStrategies, trendingUp/trendingDown, assetDistribution, strategyAssetMatrix and totalRuns aggregate over the window selected by period (7d default, 30d or 90d). Three fields have FIXED windows independent of period: dailyActivity (daily counts, up to 365 days — year heatmap), weeklyTrend (weekly counts, up to 365 days), profitTrend (share of profitable runs per pair, last 30 days vs. previous 30 days). Honesty note: the counts include our own bulk and admin snapshot runs, so this is coverage-weighted attention, NOT a clean crowd signal — never present it as 'traders are bullish on X'. For actual market sentiment use arena_get_fear_greed, arena_get_funding_rate, arena_get_altcoin_season or arena_get_pulse. Replaces arena_get_sentiment (deprecated alias, removed after 2026-11-15). Pass detail:'summary' for a ~2 KB digest (totals + top-3 of each list, no matrix or daily series) — prefer it unless you need the full blocks; the full response is ~53 KB. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNo'summary' = totals + top-3 lists (~2 KB, names what it truncates); 'full' (default) = all 11 blocks (~53 KB incl. strategyAssetMatrix and daily series).
periodNoAggregation window. Default '7d'.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses a meaningful behavioral caveat — counts include own bulk/admin snapshot runs, so it is coverage-weighted attention, NOT a clean crowd signal — and warns never to present it as 'traders are bullish on X'. It also discloses response sizes (~2 KB vs ~53 KB) and fixed-window behavior for dailyActivity, weeklyTrend, and profitTrend. This is genuinely transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and information-rich, but it is longer than strictly necessary. Every sentence earns its place: scope, field windows, honesty caveat, alternatives, deprecated alias, detail recommendation, response sizes. Slight redundancy between the schema description and the description text (e.g., ~2 KB/full blocks) is minor. Front-loading is good: the core question 'what is being backtested' comes first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 2 optional enum params and no output schema, the description covers everything an agent needs: what aggregates exist, which windows apply, how to choose detail level, expected response sizes, a behavioral caveat, and sibling tools for sentiment. The presence of the deprecated alias and its removal date is an added bonus. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining how `period` affects only some fields while three fields have FIXED windows, and by elaborating on the `detail` values and their size/truncation trade-offs. This enriches the parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get platform activity dashboard') and resource ('Backtesting Arena platform activity'), and immediately distinguishes it from market sentiment. It names the key output blocks (hotAssets, hotStrategies, etc.) and explicitly says it is NOT market sentiment, which differentiates it from many arena_get_* sentiment siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: 'For actual market sentiment use arena_get_fear_greed, arena_get_funding_rate, arena_get_altcoin_season or arena_get_pulse.' It also explains fixed vs. period-controlled windows, recommends detail:'summary' unless the full blocks are needed, and notes the deprecated alias arena_get_sentiment. This is exemplary routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_pulseGet Arena Pulse TodayAInspect

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-Multiple, MVRV-Z). Returns score, band label, color, 7d/30d delta, verdict, components breakdown, plus score_percentile ranking today’s score against its own history (e.g. 42 = 44th percentile — how hot/cold vs history, not just the raw number). [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses what the tool returns in detail: score, band label, color, 7d/30d delta, verdict, components breakdown, and score_percentile with an example interpretation. It also notes the free tier, which is an operational constraint. This is a read-only operation with no destructive side effects implied. The description transparently explains output semantics without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with the core purpose (0-100 heat score). Each sentence adds value: the component list, return fields, percentile explanation, and free tier note. There is no fluff or redundancy. It is concise enough while providing necessary detail, achieving an appropriate length for the complexity it describes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description must fully explain what the agent should expect as output. It does so comprehensively, listing all return fields and even explaining the percentile ranking. The free tier note adds operational context. There are no missing elements that would prevent a correct call or interpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema covers all inputs trivially (schema coverage 100%). With no parameters to document, the baseline is 4. The description focuses on output rather than input, which is appropriate since there is no input, and it does not add any input-related meaning beyond what the schema already provides (which is nothing). No further compensation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a daily 0-100 heat score for the Bitcoin market, a composite indicator aggregating 8 named components. It distinguishes itself from sibling indicator tools (e.g., arena_get_fear_greed) by framing itself as an overall pulse summary, and lists specific output fields, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a use case: to get a single composite market heat score and its percentile ranking. It does not explicitly state when to use this tool versus sibling tools that retrieve individual components (e.g., arena_get_fear_greed, arena_get_cycle). However, the mention of '8 components' and the composite nature suggest it's a top-level summary, so an agent can infer when it's appropriate, but explicit guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_pulse_historyGet Arena Pulse Historical SeriesAInspect

How did market heat get to where it is? Returns the Arena-Pulse TIME SERIES: one row per day with date, 0–100 score and band, in ascending date order. Use it for trend, turning points and "how did we get here"; for today's value alone call arena_get_pulse (cheaper, one row). include_components=true adds the 8 stored component readings per day (key, rawValue, earnedPoints, maxPoints) — this answers WHICH component moved the score, and caps the window at 365 days (the payload is ~8× a score row); check component_epochs before comparing component values across dates. Range capped by tier. [Free 30d / Pro 365d / Power unlimited]

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days back from today (auto-clamped by tier — Free=30, Pro=365, Power=3650).
include_componentsNoDefault false (rows carry date, score, band only). When true, each row also carries the 8 stored component readings of that day; window capped at 365 days.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure, and it does so thoroughly. It states the return format (one row per day, date/score/band, ascending), the optional component expansion (8 component readings with key, rawValue, earnedPoints, maxPoints), the window cap of 365 days when include_components=true, the ~8× payload multiplier, and the tier-dependent range cap. It also discloses a caveat about comparing component values across dates.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized for a tool with two parameters, component-expansion complexity, and usage distinctions. Each sentence earns its place: the opening question frames the use case, the return format is stated immediately, the sibling alternative is mentioned early, and the component mode/tier caps are explained without fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description supplies everything an agent needs to invoke the tool correctly: exact row structure, optional component fields, window/range caps, the component_epochs prerequisite, and guidance on when to use the simpler sibling. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining the purpose of include_components ('answers WHICH component moved the score') and the component_epochs caveat. However, it partially repeats schema information about the 365-day cap and tier clamping, which limits the additional semantic lift.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear framing question and then states a specific verb+resource: 'Returns the Arena-Pulse TIME SERIES: one row per day with date, 0–100 score and band, in ascending date order.' It explicitly distinguishes itself from its sibling arena_get_pulse (today's value alone), so an agent can tell exactly what this tool does and how it differs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use context: 'Use it for trend, turning points and "how did we get here"; for today's value alone call arena_get_pulse (cheaper, one row).' It also provides a prerequisite warning ('check component_epochs before comparing component values across dates') and documents tier-based range caps. No ambiguity remains about selecting this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_report_statusGet Custom-Report Job StatusAInspect

Is my report ready? Poll the status of a Custom-Report job. Lifecycle: pending_payment → queued → running → generating → success/failed. Returns progress_pct, succeeded/failed counts, plus pdf_url / xlsx_url when done. [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob UUID returned by checkout.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral burden. It discloses the lifecycle states, returned fields (progress_pct, counts, urls), and a tier requirement ('API Pro tier'). This is good but does not mention read-only nature implicitly, nor rate limits or authentication, so not perfect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with a leading rhetorical question, followed by lifecycle, return fields, and tier. It front-loads the purpose and every sentence adds value without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description fully explains what the tool does, the lifecycle, and what the return values are (progress_pct, counts, pdf_url/xlsx_url). It also notes the API tier requirement, making it complete for an agent to correctly invoke and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter (job_id), and the schema already states 'Job UUID returned by checkout.' The description does not add additional meaning beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Poll the status of a Custom-Report job') and the resource, with a lifecycle and return values. It is specific enough to distinguish from generic status tools, though it does not explicitly name a sibling, which would earn a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage after starting a report job ('Is my report ready?') and identifies the resource type, but it does not explicitly state when not to use it or mention alternatives such as the sibling arena_get_job_status. Context is clear but exclusions are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_robustness_fieldRobustness Field — plateau vs. spike + Deflated Sharpe with a counted NAInspect

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 (user_cagr, optional user_sharpe), returns: the cross-asset distribution of the SAME strategy+interval across every pair the backtest factory ran it on (median, IQR, positive-share, your percentile), a plateau/spike/fragile/mixed verdict, and — where Sharpe coverage allows — a Deflated Sharpe threshold whose N is COUNTED (the number of neighbor assets IS the testing family), not guessed. Honest small-n handling: fewer than 15 neighbors → "insufficient", no DSR-N claimed. Set axis="parameter" for the secondary, always-anecdotal view (the few parameter settings tested on this exact pair). Read-only over result aggregates, look-ahead free. [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
axisNoNeighborhood axis. 'cross_asset' (default, dense, carries the verdict + DSR-N) or 'parameter' (secondary, always anecdotal — the parameter settings tested on this one pair).cross_asset
pairYesTrading pair of your cell, e.g. 'BTCUSDT'.
paramsNoOptional: numeric strategy parameters of your cell. Only numeric params define the neighborhood; matched per pair where the factory ran them.
intervalYesCandle interval, e.g. '1d', '1w', '1M'.
strategyYesStrategy key, e.g. 'rsi_sma'.
user_cagrYesYour result: CAGR in percent (e.g. 41 for +41%) — the cell being assessed.
asset_typeNoAsset class filter (default 'crypto').
user_sharpeNoOptional: your annualized Sharpe (result_sharpe scale). Used for the counted-N Deflated Sharpe where neighbor coverage allows.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully owns behavioral disclosure. It reveals that the tool is read-only and look-ahead free, states the honest small-n handling (no DSR-N claimed under 15 neighbors), and explicitly labels the parameter axis as 'always anecdotal'. It also explains the counted-N logic for DSR, providing a complete picture with no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence carries value: the hook, the input, the output, the caveat about small-n, and the axis distinction. It is front-loaded with the core question and adds specifics in a natural progression, with zero filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 params, nested object, no output schema), the description is remarkably complete: it explains the output shape (distribution metrics, verdict, DSR threshold), the edge case handling, and the semantic difference between axes. An agent can confidently call this tool without additional inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter is already documented. The description adds meaning by explaining the conceptual role of params ('Only numeric params define the neighborhood'), how user_sharpe feeds into the counted-N DSR, and what axis values mean. This goes beyond a bare schema listing, though it doesn't re-explain each field individually.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a direct, specific question ('Is this backtest result real, or a lucky cell?') and a clear verb ('Assess one backtest result against its neighborhood'). It names the exact resource (a strategy+interval+pair cell) and what it returns (distribution, verdict, DSR), making it unmistakably distinct from sibling tools like arena_get_backtest or arena_is_distinguishable, even without naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly contrasts this tool with a naïve approach ('instead of trusting a single "+X% CAGR" cell'), giving a clear when-to-use. It also provides conditional guidance: 'Set axis="parameter" for the secondary, always-anecdotal view' and explains the small-n rule ('fewer than 15 neighbors → "insufficient"'). This is actionable and non-ambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_sentimentGet Sentiment Dashboard (DEPRECATED — renamed)AInspect

DEPRECATED — renamed to arena_get_platform_activity: this endpoint measures PLATFORM ACTIVITY (what is being backtested on Backtesting Arena), not market sentiment, and the old name made consuming LLMs misuse it. Same payload plus deprecation fields; this alias will be removed after 2026-11-15. Use arena_get_platform_activity. For actual market sentiment use arena_get_fear_greed, arena_get_funding_rate, arena_get_altcoin_season or arena_get_pulse. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoAggregation window. Default '7d'.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it delivers: it discloses deprecated status, the renaming reason, the removal date, that it's an alias with the same payload plus deprecation fields, and the free tier limitation. This is exceptionally transparent about the tool's behavior and lifecycle.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: deprecation notice, correction of misnomer, migration instruction, alternatives, and free-tier caveat. It is front-loaded with the most critical information (deprecation and rename) and structured logically without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deprecated alias, the description is complete: it explains the new name, why the old name was misleading, when the alias will be removed, and how to find the right tool for actual sentiment. The lack of an output schema is acceptable because the alias inherits the replacement's response structure, and the description notes the added deprecation fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single period parameter, including an enum and default value. The description adds no parameter-specific detail beyond 'Same payload plus deprecation fields', which refers to output rather than the input. Baseline 3 is appropriate since the schema handles parameter semantics fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool is a deprecated alias measuring PLATFORM ACTIVITY, not market sentiment, and immediately names the replacement tool. It goes beyond a simple verb+resource by clarifying the misnomer and the actual semantics, fully distinguishing it from the many sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly instructs to use arena_get_platform_activity instead, and lists specific alternative tools for actual market sentiment (arena_get_fear_greed, arena_get_funding_rate, arena_get_altcoin_season, arena_get_pulse). This gives both when-to-use and when-not-to-use guidance with concrete alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_shared_backtestGet Public Shared BacktestAInspect

What is in this shared backtest link? Fetches a backtest that someone published via a share link, addressed by its share_id — no ownership and no Pro tier required, which is what makes it the right tool when a user pastes a /shared/backtests URL. Returns the same result shape as arena_get_backtest (config plus aggregate metrics). Use arena_get_backtest instead for the user's own runs. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
share_idYesPublic share id from /shared/backtests URL.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses access requirements (no ownership, no Pro tier needed), describes the return shape (same as arena_get_backtest: config plus aggregate metrics), and subtly implies read-only via 'Fetches'. This is substantial behavioral context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The core question is posed first, then the answer, sourcing, and differentiation. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description covers everything an agent needs: what it does, when to use it, access requirements, and return shape. No critical gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameter is already documented. The description adds context that share_id comes from a /shared/backtests URL, which is helpful but not essential beyond the schema. Meets the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches a publicly shared backtest via a share_id, and explicitly contrasts it with the sibling arena_get_backtest for the user's own runs. It uses a specific verb and resource, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool ('when a user pastes a /shared/backtests URL') and when to use the alternative ('Use arena_get_backtest instead for the user's own runs'). This gives clear routing guidance with no ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_signal_contextSignal Context — filters vs. today, in one callAInspect

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) with where that filter stands TODAY (bull-market gauge, altcoin-season signal, volatility phase, 200-week trend for BTC): filters[].blocks_this_entry says which filter would sit this entry out, with the measured worst-loss / return deltas next to it. Adds the current signal state (anticipated is always false — before candle close there is no signal), an edge_vs_benchmark block gated by the MEASURED noise floor (a gap below the floor is a measurement artifact, not a finding), a contradictions block (e.g. Pulse risk-off while the macro regime reads risk-on — reported, never resolved), and measured invalidation zones (pivot clusters, 200-week SMA; BTC only). detail: 'headline' (default) returns the statement, three key numbers and only the decisive filters; 'full' adds every variant, the raw pulse/macro/filter-effect blocks. Every source can fail independently — sources_used / sources_unavailable make the basis auditable; the answer never silently narrows. Returns a plain-language statement with its confidence and the reason for that confidence — state it, do not hedge it further; the payload carries its own scope note. Compose further with arena_get_strategy_performance_by_regime (WHEN has this worked) and arena_is_distinguishable. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
pairYesPair, e.g. 'BTCUSDT'. Case-insensitive.
detailNo'headline' (default): statement + key numbers + decisive filters. 'full': every measured variant plus the raw source blocks.
intervalNoDefault '1w'. Candle interval: '1d' daily, '2d'/'3d' multi-day, '1w' weekly, '1M' monthly. Multi-day candles (2d/3d) are anchored to the Unix epoch, so one of n possible alignments is used. Measured on our own corpus, the choice of alignment alone moves CAGR by 6.66 pp on average (max 12.30). Treat differences below that as not distinguishable — 1d/2d/3d behaved as one block in our tests, not a ranking.
strategyYesStrategy key, e.g. 'rsi_sma'. See arena_list_strategies.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral burden and handles it exceptionally. It discloses that 'anticipated is always false' before candle close, that edge_vs_benchmark is gated by the measured noise floor with artifacts flagged, that contradictions are reported but never resolved, that each source can fail independently with auditable sources_used/sources_unavailable, and that the answer never silently narrows. This is comprehensive disclosure beyond what any schema could provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence earns its place. It front-loads the core question, then logically organizes the response blocks, caveats, error handling, and composition guidance. Dense with actionable information but never verbose or repetitive, making it efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with no output schema, this description is remarkably complete. It explains the response structure (filters[], edge_vs_benchmark, contradictions, invalidation zones), the detail modes, source auditability, failure independence, and the confidence/reason block. Unusual edge cases like the pre-candle-close signal state and the noise-floor artifact are explicitly covered. Nothing an agent needs to call and interpret the result correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already provides rich descriptions for all four parameters, including the alignment caveat for multi-day intervals and the detail enum values. The description reinforces these meanings but doesn't add new parameter-level semantics beyond what the schema already documents, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the exact question it answers ('Should I take this entry?') and states the precise scope (one strategy/pair/interval in one call instead of seven). It explicitly differentiates from sibling arena_get_strategy_filter_effect by showing how it aligns historical filter effect with current signal state. The purpose is unambiguous and distinctive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: it's a one-call replacement for a seven-call flow, and it names two companion tools for composition (arena_get_strategy_performance_by_regime and arena_is_distinguishable). However, it doesn't explicitly state when NOT to use this tool or list mutually exclusive alternatives, so it's a slight step below the highest bar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_signal_eventsGet Signal Transition Events (top/bottom indicators)AInspect

When did which classic top/bottom signal actually flip? Event log of discrete transitions across 13 declared signals: bullmarket_stage_1..5 (20W/50W-MA stages), pulse_band, hash_ribbons, mvrv_z_regime, mayer_band, nupl_zone, pi_cycle_cross, golden_death_cross, price_vs_200wma. Each event: from/to state, occurred_at (day of the flip) vs event_date (day it became CONFIRMED — dwelled signals confirm after min_dwell days; use event_date for any forward evaluation, occurred_at carries look-ahead), declared threshold params, btc_close and drawdown_from_ath_to_date_pct (vs the ATH up to that day, never a later one). The window is capped in SIZE but free in POSITION: end_date moves it anywhere in the reconstructable history (coverage block names per-signal start, measured). Events are RECONSTRUCTIONS from today's stored series under declared rules — not what a live observer necessarily saw, and not forecasts: the log includes every rule that stayed silent through the October 2025 top. Filter with signal. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days back from today (auto-clamped by tier — Free=30, Pro=365, Power=3650).
signalNoRestrict to one signal key (see signals_available in the response). Unknown key ⇒ invalid_input naming the allowed set.
end_dateNoLast day of the window (YYYY-MM-DD, inclusive). Positions the tier-capped window anywhere in history — e.g. end_date=2025-10-31 with days=60 reads the flips around the October 2025 top. Omit for a window ending today.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With zero annotations, the description carries the full burden and delivers: events are RECONSTRUCTIONS from today's stored series, not live observations and not forecasts; occurred_at carries look-ahead; confirmation requires min_dwell days; drawdown uses the ATH up to that day and never a later one; the window is size-capped but position-free; silent rules are included. This is exemplary disclosure of behavioral traits that prevent misuse.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but every sentence earns its place — signal list, event fields, dual-date semantics, window mechanics, reconstruction caveat, filter, tier note — and the opening question front-loads the purpose. It is a long single paragraph, but the length is justified by the tool's nuance; a bit more structural segmentation would improve scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema and no annotations, the description covers event contents (from/to state, dates, threshold params, btc_close, drawdown), the signal set, window behavior, and the critical reconstruction/look-ahead caveats. The only gap is the response envelope structure, but the essential semantics for correct invocation and interpretation are present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds real value: it enumerates the 13 valid signal keys and explains end_date's window-positioning semantics ('capped in SIZE but free in POSITION') beyond the schema's generic 'last day of the window'. The occurred_at vs event_date distinction further clarifies output semantics relative to the requested window.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: an 'event log of discrete transitions across 13 declared signals', with all signal keys enumerated. The transitions/event-log framing clearly separates it from siblings like arena_get_signal_status (current state) and arena_get_signal_context, even without naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides substantive guidance: use event_date for any forward evaluation because occurred_at carries look-ahead, filter with `signal`, and the schema example shows how end_date positions the window at the October 2025 top. Lacks explicit when-not-to-use or named alternatives, but the context is clear enough to route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_signal_statusGet Signal Status (Ampel)BInspect

Is this strategy signalling buy or sell right now? Current signal-status (green/yellow/red) for a strategy on a pair+interval. Backed by the daily check-signals cron — needs at least one user with an active Ampel on this combination. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
pairYesTrading pair / symbol.
intervalYesCandle interval: '1d' daily, '2d'/'3d' multi-day, '1w' weekly, '1M' monthly. Multi-day candles (2d/3d) are anchored to the Unix epoch, so one of n possible alignments is used. Measured on our own corpus, the choice of alignment alone moves CAGR by 6.66 pp on average (max 12.30). Treat differences below that as not distinguishable — 1d/2d/3d behaved as one block in our tests, not a ranking.
strategyYesStrategy key, e.g. 'rsi_sma'.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral disclosure burden. It discloses that the data is backed by a daily cron (implying freshness limits) and that at least one active Ampel is required, which are non-obvious operational constraints. However, it does not mention whether the operation is read-only, what happens on missing data or invalid combinations, or any error conditions. These gaps are significant for a tool with zero annotation coverage, though the disclosed constraints do add value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences and front-loads the core purpose with a direct question. The cron dependency and active-Ampel requirement are included compactly, and the [Free tier] tag is a briefnote. It is efficient and well-structured, though the question format is slightly informal; it still earns a 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with three required parameters and no output schema, the description covers the core concept and key dependencies. However, it omits expected return format (e.g., a color string, structured object) and behavior when no signal is available or when the combination is invalid. Given the lack of an output schema, these details would be valuable for correct invocation. The description is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter (pair, interval, strategy) already has a description, including a detailed explanation of interval alignment and its impact on CAGR. The tool description adds the signal color concept (green/yellow/red) but does not elaborate on parameter formats or constraints beyond what the schema provides. The baseline 3 applies because the schema does the heavy lifting; the description provides marginal additional insight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('signalling buy or sell') and a well-defined resource ('signal-status (green/yellow/red) for a strategy on a pair+interval'). It clearly differentiates from sibling tools like arena_get_signal_context (which implies broader context) and arena_get_bullmarket_ampel (which targets a different signal type) by focusing on the current per-strategy signal state. The phrase 'Is this strategy signalling buy or sell right now?' is an immediate, unambiguous statement of purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives. It mentions the cron dependency and the need for an active Ampel, but these are prerequisites, not usage directions. It does not state, for example, 'use this for a quick status check, use arena_get_signal_context for detailed explanations' — leaving the agent to infer appropriate invocation context from the sibling names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_spot_priceGet BTC/ETH/SOL Spot PriceAInspect

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 analytics (cycle, historical-analog, gem scores) with the current market price instead of switching to web search mid-analysis. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the data source (Binance), freshness ('Live'), and that it is on the free tier, implying accessibility. While it doesn't mention rate limits, authentication, or response structure, for a no-parameter read tool this is reasonable. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no fluff. The core purpose is stated first, followed by specific data details and a practical usage note. The '[Free tier]' tag is a useful addition without verbosity. It is well-organized and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of a no-param get with no output schema, the description adequately conveys what is returned (prices, change, high/low), the source, and the intended use case. It does not explicitly state that all three assets are returned simultaneously, but the wording implies it. Minor ambiguity aside, it is complete enough for an agent to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the schema provides no semantic detail; per the rubric, the baseline for 0 params is 4. The description doesn't need to explain parameters and does not attempt to, so it maintains the baseline without additional value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool retrieves the current BTC, ETH, and SOL spot price, and specifies the exact data points: USDT-quoted last price, 24h change %, high, and low, sourced from Binance. The phrase 'what is Bitcoin (or ETH/SOL) worth right now?' makes the purpose immediately clear, and it is distinct from siblings like funding rate or fear-greed tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description directly instructs to use this tool to anchor the connector's analytics (cycle, historical-analog, gem scores) with current market price, and explicitly says 'instead of switching to web search mid-analysis.' This provides clear context and an alternative (web search), though it doesn't name specific sibling tools, which is acceptable given the large sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_stablecoin_supplyGet Stablecoin Supply TrendAInspect

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 (USD + %) plus a compact time series so direction and speed are visible, not just a single delta. Read impulse for what the supply change is doing — four states (accelerating / decelerating / reversal / flat). The neighbouring acceleration_usd is the signed difference last-30d minus prior-30d and gets LARGE exactly when the trend reverses, while the older boolean accelerating requires the same direction AND a bigger magnitude; a reversal therefore shows a big acceleration_usd next to accelerating: false. Source DefiLlama peggedUSD. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully carries the behavioral burden. It explains the output structure in detail: current supply, 30d/90d change in USD and %, a compact time series, the `impulse` four-state enum, and the precise semantics of `acceleration_usd` versus the boolean `accelerating`, including how a reversal looks in the data. This goes far beyond a simple 'returns supply' and gives the agent a mental model of the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but efficient: it front-loads the core purpose, then unpacks the richer trend data, then explains the nuanced field interactions, and finishes with source and tier. Every sentence contributes new information—no fluff, no repetition. The structure flows logically from high-level purpose to detailed field semantics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description must convey what the tool returns, and it does comprehensively. It lists the exact fields (current supply, 30d/90d change, time series, impulse, acceleration_usd, accelerating) and explains their meaning. It also notes the data source and free-tier context. For a parameterless read tool, nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, and the schema confirms this (empty object, 100% coverage). Per the rubric baseline for 0 parameters, a score of 4 is appropriate. Since there are no parameters, the description cannot add parameter semantics, and it correctly omits any mention.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource (`Aggregate stablecoin supply`) and immediately establishes its role as a crypto-liquidity proxy. It explicitly distinguishes itself from the sibling `arena_get_macro_regime` by pointing out that macro_regime only provides a 30d delta, whereas this tool exposes the trend with current supply, changes, and a time series. The purpose is unmistakable and clearly differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description directly names the alternative (`macro_regime`) and explains its limitation (only the 30d delta), implicitly instructing agents to use this tool when they need trend direction/speed rather than a single delta. It also clarifies what each field (`impulse`, `acceleration_usd`, `accelerating`) means, giving clear context for when this data is relevant. The note about the free tier and source further aids usage decisions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_sth_cost_basisGet BTC Short-Term-Holder Cost Basis (latest)AInspect

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 STH-MVRV (spot ÷ STH cost basis), an in_loss flag, plus ±1σ/±2σ bands: basis × exp(±k·σ), σ of ln(price ÷ basis) over a 730-day ROLLING window (sigma_method/sigma_window_days travel in the payload; similar construction to public STH band charts, own convention — not a rebuild). band_zone names the state (above/below basis, beyond ±2σ); sth_mvrv_percentile is the rolling 730d rank. Measured band coverage (2026-08-25, full history): 32.1% of days outside ±1σ (near the Gaussian 31.7%), 7.4% outside ±2σ (wider than the Gaussian 4.6% — fat tails); read the bands as descriptive geometry, not probability statements. Descriptive on-chain context, not a buy/sell signal. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the construction of the bands (rolling 730-day window, sigma calculation), discloses that the bands are descriptive geometry not probability statements, provides measured coverage statistics, and explicitly notes the output is descriptive context, not a signal. This is exceptionally transparent for an on-chain data tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but each sentence adds value: it defines the metric, explains derived measures, gives the band formula, warns about interpretation, and mentions the free tier. It is front-loaded with the core question, but the length is justified given the complexity. A little over-packed, but no unnecessary filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description fully specifies all output fields (cost basis, STH-MVRV, in_loss flag, band values, band_zone, percentile) and explains the rolling window, sigma method, and interpretation caveats. It also mentions the free tier and gives historical coverage context, so an agent knows exactly what to expect and how to interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema provides complete coverage trivially. The description adds context about sigma_method/sigma_window_days traveling in the payload, but since they are not in the schema, they do not affect parameter understanding. The baseline for 0 params is 4, and the description does not need to explain any parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides the latest BTC short-term-holder cost basis, along with derived metrics (STH-MVRV, in_loss flag, sigma bands, band_zone, sth_mvrv_percentile). It distinguishes itself from siblings by noting 'own convention — not a rebuild' and explicitly referencing a specific on-chain series (brk_sth_realized_price), making the resource unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys the tool's purpose and provides a caveat ('not a buy/sell signal'), but does not explicitly state when to use this tool versus alternatives like arena_get_cost_basis_spread or arena_get_btc_market_structure. Usage context is implied by the detailed metric set, but no direct exclusions or recommendations are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_strategy_filter_effectGet Strategy Filter Effect Snapshot (per Asset)AInspect

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 cagr_delta / drawdown_delta / win_rate_delta vs the time-overlap-matched baseline + best_by_cagr pick + not_applicable_filters list (e.g. altcoin_season excluded on BTC-pair). Baseline and each variant carry their aggregation window (from/to + avg_run_years) — CAGR is time-normalized, so identical trade sets over different windows legitimately produce different CAGR. Based on REAL backtest aggregations — not theoretical 2^5 permutations. Use this to answer 'Which filters would improve my backtest for X on Y?'. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesPair / symbol (e.g. BTCUSDT). Case-insensitive.
intervalNoDefault '1w'. Candle interval: '1d' daily, '2d'/'3d' multi-day, '1w' weekly, '1M' monthly. Multi-day candles (2d/3d) are anchored to the Unix epoch, so one of n possible alignments is used. Measured on our own corpus, the choice of alignment alone moves CAGR by 6.66 pp on average (max 12.30). Treat differences below that as not distinguishable — 1d/2d/3d behaved as one block in our tests, not a ranking.
strategyYesStrategy key (see arena_get_strategies).

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses the exact output components, explains CAGR time-normalization and its consequence for comparing different windows, warns that interval alignment alone can move CAGR by 6.66 pp, and clarifies that results come from real backtest aggregations rather than theoretical permutations. This is exceptionally transparent about behavior and limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-organized: it opens with the core purpose, then lists return fields, explains a caveat, and ends with the use case and tier note. Every sentence adds critical context (outputs, normalization, ambiguity thresholds). While it is longer than typical, the density is justified and front-loaded with the main answer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema and no annotations, the description covers all essential operational details: what is returned (baseline, variants, deltas, best pick, not_applicable_filters), how to interpret CAGR, the statistical noise floor, and the exact input constraints. Combined with the 100% schema coverage, nothing needed for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaningful value beyond the schema: it explains the interval alignment sensitivity with quantitative thresholds, notes that 1d/2d/3d behave as one block, and references arena_get_strategies for strategy keys. This goes beyond the schema's basic parameter descriptions, enhancing the agent's ability to choose safe parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'per-(strategy, asset, interval) filter-effect analysis' and directly answers the use case 'Which filters would improve my backtest for X on Y?'. It clearly differentiates from theoretical permutations and lists concrete outputs (baseline stats, deltas, best pick), so an agent knows exactly what it returns and how it differs from generic strategy tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this to answer...' and specifies the scope (per strategy, asset, interval). It also provides a calibration rule for interpreting interval differences (6.66 pp threshold). However, it does not name alternative sibling tools or state when not to use it, though the uniqueness of the filter-effect focus makes alternatives less ambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_strategy_insightsGet Strategy Insights Matrix or DetailAInspect

Which strategy and interval combinations actually performed? Aggregated backtest performance per (strategy × interval) cell. If strategy AND interval provided, returns detail with per-asset breakdown + param variants. Otherwise returns the matrix. Free tier is limited to the same strategies that are free in the backtester itself (rsi_sma, golden_cross, rsi_ob_os, bnh_fixed, dca_reference); the response then carries plan_capped: true plus plan_cap_note, so a short matrix is never mistaken for a thin database. Detail mode on a Pro-only strategy returns 403 rather than a silently empty answer. API Pro and Power receive every cell. [Free: 5 strategies / Pro+: full]

ParametersJSON Schema
NameRequiredDescriptionDefault
intervalNoDetail mode: interval. Candle interval: '1d' daily, '2d'/'3d' multi-day, '1w' weekly, '1M' monthly. Multi-day candles (2d/3d) are anchored to the Unix epoch, so one of n possible alignments is used. Measured on our own corpus, the choice of alignment alone moves CAGR by 6.66 pp on average (max 12.30). Treat differences below that as not distinguishable — 1d/2d/3d behaved as one block in our tests, not a ranking.
min_runsNoMatrix mode: minimum runs per cell. Default 5.
strategyNoDetail mode: strategy key (used together with `interval`).
asset_typeNoRestrict to one asset class.
assets_modeNo'top10' restricts to top-10 pairs by run-count.
ref_strategyNoBenchmark reference. Default 'bh'.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure, and it does so thoroughly. It discloses mode switching, the `plan_capped: true` flag plus `plan_cap_note` to prevent misreading a short matrix, the 403-on-Pro-only-detail behavior, and the interval-alignment caveat with quantified CAGR impact. These details go well beyond a generic 'returns data' statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: core purpose, mode conditions, free-tier cap, error behavior, and interval alignment caveat. It front-loads the primary purpose and then layers constraints in a logical order. The bracketed plan summary at the end is a compact reinforcement rather than redundant repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a moderately complex tool with two modes, six optional parameters, no output schema, and no annotations, this description covers the essential context needed to call it correctly. It explains what the response looks like in both modes, what failures look like, how plan limitations affect data, and a statistical caveat about interval alignment. Nothing critical for correct invocation is left unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the top-level description adds meaningful interaction semantics beyond the individual parameter docs. It clarifies that `strategy` and `interval` jointly trigger detail mode, what detail mode contains, and how free-tier limits affect the results. This added context justifies a score above baseline, though it does not need to explain every parameter since the schema already does.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the core question: 'Which strategy and interval combinations actually performed?', then precisely defines the resource as aggregated backtest performance per (strategy × interval) cell. It clearly distinguishes the two output modes: detail when both `strategy` and `interval` are provided, otherwise the matrix. This is specific enough to separate it from the many sibling `get_*` tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit conditions for when to get the matrix versus the detail view, including the required combination of `strategy` and `interval`. It also warns about free-tier strategy restrictions and the 403 behavior for Pro-only strategies. It does not name alternative sibling tools or explain when to prefer this over related tools like arena_get_strategy_performance, so it stops short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_strategy_performanceGet Strategy Performance Snapshot (per Asset)AInspect

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_drawdown, effective_years, vs_buy_hold comparison (beats_buy_hold, cagr_delta) and an evidence block declaring the gate machine-readably (gate_applies_to: stats.run_count, threshold 5 runs, benchmark value, aggregation data window). For multi-strategy overview use arena_get_strategy_insights. Use this to answer 'How does strategy X perform on asset Y?'. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesCrypto pair / symbol (e.g. BTCUSDT, ETHUSDT). Case-insensitive.
intervalNoDefault '1w'. Candle interval: '1d' daily, '2d'/'3d' multi-day, '1w' weekly, '1M' monthly. Multi-day candles (2d/3d) are anchored to the Unix epoch, so one of n possible alignments is used. Measured on our own corpus, the choice of alignment alone moves CAGR by 6.66 pp on average (max 12.30). Treat differences below that as not distinguishable — 1d/2d/3d behaved as one block in our tests, not a ranking.
strategyYesStrategy key (e.g. rsi_sma, golden_cross). See arena_get_strategies for valid keys.
asset_typeNoOptional asset class filter to disambiguate (e.g. when same pair-name exists in two classes).
ref_strategyNoBenchmark reference. Default 'bh' (Buy & Hold).

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. It discloses not just the return fields but also the machine-readable `evidence` block, the gate threshold (5 runs), and a critical behavioral nuance: the interval alignment issue for 2d/3d candles and its measurable impact on CAGR (6.66 pp on average). This is rich, honest behavioral disclosure beyond any annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: the opening question orients the agent, the return list is compact, the sibling pointer is explicit, and the interval caveat is crucial. It is longer than the two-sentence gold standard but not bloated; a 4 reflects the tight packing rather than fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with no output schema, the description provides a complete picture: it names the output fields and their sematics (including the evidence block with gate_applies_to, threshold, benchmark, aggregation window), states the defaults, and covers the alignment caveat that could otherwise lead to misinterpretation. An agent has everything needed to invoke and interpret results correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by specifying defaults for `interval` and `ref_strategy` (not in the schema) and by explaining the alignment-dependent behavior of multi-day intervals — semantic nuance that materially affects result interpretation. It stops short of fully explaining `asset_type` disambiguation beyond what the schema already says, hence 4 rather than 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get'), a precise resource ('strategy performance snapshot per asset'), and clearly delimits scope ('ONE specific (strategy, asset, interval) combination'). It lists the exact returned fields and explicitly distinguishes this from the multi-strategy sibling `arena_get_strategy_insights`. No ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit when-to-use ('Use this to answer ...') and names the alternative for multi-strategy overview (`arena_get_strategy_insights`). This is enough for an agent to choose correctly, and the contrast with the sibling is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_strategy_performance_by_regimeGet Regime-Aware Strategy PerformanceAInspect

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 / recovery — classified at each trade's entry date), PLUS the CURRENT live regime so you can align the buckets yourself. Returns no verdict by design (a pooled-trade verdict could flip when another user's backtest changed the pool — removed 2026-08-15). Each regime bucket returns trades, trades_per_config (trade counts pool ALL parameter-variant configs — see config_count), win_rate, avg_pnl_pct (per-trade return, not annualized), reward_risk_ratio (per-trade mean/stddev, NOT annualized Sharpe), share_of_time_pct (calendar-day-weighted — each regime observation counts the days until the next one, so the mixed weekly/daily cadence of the regime history does not skew the share) and a rating. The benchmark block anchors the payload with the combination's buy-and-hold CAGR (identical to arena_get_strategy_performance vs_buy_hold — without that anchor, regime avg_pnl_pct is a trajectory, not an excess). For a decision-grade view compose with arena_get_strategy_filter_effect and arena_is_distinguishable. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesCrypto pair / symbol (e.g. BTCUSDT, ETHUSDT). Case-insensitive.
intervalNoDefault '1w'. Candle interval: '1d' daily, '2d'/'3d' multi-day, '1w' weekly, '1M' monthly. Multi-day candles (2d/3d) are anchored to the Unix epoch, so one of n possible alignments is used. Measured on our own corpus, the choice of alignment alone moves CAGR by 6.66 pp on average (max 12.30). Treat differences below that as not distinguishable — 1d/2d/3d behaved as one block in our tests, not a ranking.
strategyYesStrategy key (e.g. rsi_sma, golden_cross). See arena_get_strategies.
asset_typeNoOptional asset class filter to disambiguate identical pair-names.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral disclosure burden, and it does so thoroughly: it explains that no verdict is returned by design, defines each metric (avg_pnl_pct as per-trade not annualized, reward_risk_ratio as mean/stddev not Sharpe), details share_of_time_pct calculation to avoid cadence skew, and explains the benchmark's role. It also discloses the interval-alignment pitfall with quantitative evidence (6.66 pp CAGR swing). This is exemplary transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long, but every sentence carries substantive information—regime classes, metric definitions, design rationale, composition guidance, and even a free-tier note. It is front-loaded with the core purpose and scopes the single combination clearly. While it could be trimmed (e.g., the free-tier tag feels extraneous), the density of valuable content justifies the length. It is structured as a coherent paragraph with logical flow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description fully explains the response structure: regime buckets with trades, trades_per_config, win_rate, avg_pnl_pct, reward_risk_ratio, share_of_time_pct, rating, plus the benchmark block and current live regime. It also clarifies the metric definitions and the rationale for including the benchmark. Nothing an agent needs to correctly interpret the output is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters well. The description adds value beyond the schema by clarifying the semantic meaning of interval alignment (epoch anchoring and its measured impact) and by stating that trades pool ALL parameter-variant configs. It doesn't repeat basic param definitions but supplements with nuanced context that affects interpretation. This is strong value-add.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear question ('In which macro regime has this strategy worked?') and states the exact scope: historical backtest performance for ONE (strategy, asset, interval) combination split by macro regime. It distinguishes itself from arena_get_strategy_performance (which presumably gives aggregate performance) and names the regime classes explicitly. This is a specific verb+resource with clear differentiation from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent when to use this tool and when to compose it with others: 'For a decision-grade view compose with arena_get_strategy_filter_effect and arena_is_distinguishable.' It also reasons about the benchmark block anchoring excess returns, and warns that a pooled-trade verdict was removed to avoid pool instability, indicating why this tool should not be used for verdicts. This exceeds minimal usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_taker_imbalanceGet Spot Taker Buy/Sell ImbalanceAInspect

Are taker buys or taker sells dominating? Daily SPOT taker-buy share for a Binance pair: taker-buy volume divided by total volume, one value per UTC day (0..1; 0.5 = balanced aggressor flow, above 0.5 taker buys dominate). Derived ratio only — raw volumes are not redistributed. This is SPOT aggressor flow, not futures positioning — for leverage positioning use arena_get_funding_rate_history. Returns the series ascending plus latest, window_mean and n_days; the forming day is excluded (its share still moves). Window via days, capped by tier — the range block declares requested/granted. [Free 30d / Pro 365d / Power unlimited]

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days back from today (auto-clamped by tier — Free=30, Pro=365, Power=3650).
pairNoBinance spot pair, e.g. 'BTCUSDT' (default), 'ETHUSDT', 'SOLUSDT'.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. It thoroughly covers what the tool returns (series ascending, latest, window_mean, n_days), the exclusion of the forming day, the window mechanics via `days` with tier caps, and the fact that it returns a derived ratio rather than raw volumes. This is comprehensive transparency for a read-only data retrieval tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured, front-loading the core question and definition, then the alternative, then return details. The rhetorical opening adds personality but is not strictly necessary. The text is slightly longer than needed, but every sentence contributes meaningful information, so it earns a 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with two optional parameters and no output schema, the description covers all essential aspects: what the metric means, how to interpret it, what is returned, edge cases (forming day excluded), and tier constraints. It also addresses the primary use case and directs to the correct sibling. Nothing critical is missing for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for both parameters (days and pair), so baseline is 3. However, the description adds valuable context beyond the schema: it explains the meaning of the `days` window in terms of UTC day aggregation, the tier-based capping (Free/Pro/Power), and that the `range` block declares requested/granted values. This enriches parameter understanding, justifying a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states what the tool does: it computes daily SPOT taker-buy share for a Binance pair, indicating whether taker buys or sells dominate. It uses a specific verb (get) and resource (taker imbalance) and explicitly distinguishes itself from futures positioning by naming the sibling arena_get_funding_rate_history. The metric definition (0..1 scale, 0.5 balanced) is precise, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use it (to check spot aggressor flow) and when not to (for leverage positioning), directing the user to the alternative tool. It also clarifies that it returns daily series, implying suitability for trend analysis. This provides clear usage context and exclusion criteria, going beyond what the schema offers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_trend_channelsGet Log-Linear Regression Channels (90/180/365 bars)AInspect

Where does price sit inside its trend channel? Mechanically fitted trend channels for a pair: log-linear regression over close plus 1σ/2σ bands, computed over three fixed windows at once (90/180/365 bars, not selectable) — three side by side show whether a channel is robust or an artifact of the window choice, and agreement.consistent states which it is. r_squared_percentile ranks the fit against all same-size windows on this pair, so an R² comes with its placement instead of standing alone. Where history is too short the window is omitted and listed in windows_unavailable with a reason — never estimated from fewer bars; below 500 bars (1d) / 150 (1w) the raw values still come but percentile is null rather than a rounded number from too small a sample. Pairs listed within the last few months (the tokenized equities and ETFs) therefore return data_sufficient: false and an empty channel list — that is the answer, not an error. Set interval to '1w' for the weekly view; note that a window is counted in bars, so 365 on '1w' means 365 weeks and most pairs do not reach it. Band edges describe past dispersion around the regression line. Related: arena_get_key_levels (pivot clusters), arena_get_btc_market_structure (trend flips and their base rate), arena_get_historical_analog (whether a condition like the current one ever paid). [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNoPair, e.g. "BTCUSDT" (default), "ETHUSDT", "PAXGUSDT". Full history is used regardless of listing date.
intervalNoDefault '1d'. On '1w' a 365-bar window means 365 weeks — most pairs do not reach it and it is reported as unavailable.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does exceptionally well. It discloses edge cases: windows omitted with reason, percentile null below bar thresholds, data_sufficient false for recent pairs, and the count of bars in weekly intervals. It explains that band edges describe past dispersion and that free tier constraints apply. This is exemplary behavioral disclosure beyond any structured field.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence carries information: mechanics, edge cases, related tools, and an example. It is front-loaded with the central question and structured logically. While not succinct, it is dense and well-organized, efficiently packing context without repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema, the description explains the return structure (agreement.consistent, r_squared_percentile, windows_unavailable, data_sufficient) and how to interpret them. It covers the bar-count semantics, free-tier limitations, and the meaning of band edges. This is remarkably complete for an agent to call the tool correctly without additional docs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already covers both parameters (pair and interval) with descriptions. The description adds extra meaning: full history regardless of listing date for pair, and the bar-count implication for interval ('1w' means 365 weeks, most pairs unavailable). This goes beyond the schema, enriching the parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: mechanically fitted log-linear regression trend channels with 1σ/2σ bands over three fixed windows. It mentions the pair context and explicitly names related sibling tools (arena_get_key_levels, arena_get_btc_market_structure, arena_get_historical_analog) to differentiate them, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context on when to use the tool (to assess channel robustness and window dependence) and names related tools for different analyses (pivot clusters, trend flips, historical analogs). It also gives practical usage tips like setting interval to '1w' for weekly view. However, it does not explicitly define exclusionary conditions (e.g., 'use this when, but not when X'), leaving some inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_universeGet Universe DetailAInspect

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 BEFORE handing a universe_id to arena_run_universe_backtest, or to resolve a universe into explicit pairs. For the list of available universes call arena_list_universes. Universes reflect the CURRENT membership — they are not point-in-time, so a backtest over them carries survivorship bias for the earlier years. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
universe_idYesUniverse id, e.g. 'top-10-crypto'.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses a critical behavioral caveat: 'Universes reflect the CURRENT membership — they are not point-in-time, so a backtest over them carries survivorship bias for the earlier years.' It also states the output contents explicitly. Although it lacks details about error handling or rate limits, the survivorship bias warning is a valuable behavioral insight that goes beyond a simple read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured. It starts with a user-facing question to frame the purpose, then states what it returns, provides usage guidance, points to an alternative, and ends with a critical caveat. Every sentence adds value; there is no repetition or filler. The most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read operation, the description is complete. It explains exactly what the tool returns (id, label, selection rule, pair list), when to use it (before backtests or to resolve universes), and what alternatives exist (list_universes). It also highlights the survivorship bias implication, which is essential context for the backtest use case. No output schema is provided, but the description compensates by listing the return fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already explains the parameter: "Universe id, e.g. 'top-10-crypto'." The description does not add new semantic details about universe_id itself, only hints at its usage in context (handing to a backtest). Since the schema fully documents the parameter, the baseline of 3 is appropriate, with no additional value provided by the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a direct question ('Which pairs are in this universe?') and then states the exact resource and action: 'Returns one pair universe in full: its id, label, selection rule and the complete list of pairs it currently contains.' It clearly distinguishes from siblings by referencing arena_list_universes for the list and arena_run_universe_backtest for testing. The verb 'returns' and the resource 'pair universe' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent when to use this tool: 'Use it to see what you are about to test BEFORE handing a universe_id to arena_run_universe_backtest, or to resolve a universe into explicit pairs.' It also points to the alternative for listing universes: 'For the list of available universes call arena_list_universes.' This provides clear when-to-use and when-to-use-another guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_volatility_historyGet BTC Volatility History (RV + ATR%)AInspect

How volatile has Bitcoin been? Daily Bitcoin volatility time series: realized volatility (30d & 90d, √252-annualized, close-to-close) and ATR% (Wilder EMA-14, captures intraday range + gaps), on the same scale. Ranks come in two flavours answering different questions: rvRank/atrPctAnnRank expand from the start of history and are look-ahead-free, but they include BTC's structural volatility decline; rvRankRolling/atrPctAnnRankRolling rank against a trailing 2-year window, which removes that trend from the comparison. History reaches back to 2009 via a stitched pre-Binance close series; ATR is null before the Binance era because no daily high/low exists that far back (see meta.coverage). Use from/to for a specific window instead of pulling everything and discarding it, and granularity/fields to keep long ranges affordable. For long ranges pass schema_version: "2026-08" (rounds floats; opt-in until the default flips 2026-11-01) plus fields: "minimal" and meta: "minimal" — every response carries a size block with chars_before/chars_after/saved_pct measuring the saving for YOUR call. Free tier: last 365 days. Related: arena_get_volatility_phases (current phase per pair), arena_get_iv_snapshot (implied vs. this realized — same RV method, but its realized_vol_30d is computed at snapshot time BEFORE that date has traded, so on fresh breakout days the two can differ; this series uses completed closes and is the one to trust for finished days), arena_get_cycle (regime context). [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoISO date (YYYY-MM-DD), inclusive. End of the window. Defaults to the latest bar.
daysNoNumber of most recent days to return. Free tier capped at 365; API Pro unlimited. Ignored when from/to are given.
fromNoISO date (YYYY-MM-DD), inclusive. Start of the window. Free tier still only sees the last 365 days.
metaNoDefault full. 'minimal' drops params/params_hash/warmup, which are only useful on the first call.
fieldsNoDefault full. 'minimal' returns date, close, rv, rvRank, rvRankRolling, atrPctAnnRank, atrPctAnnRankRolling only — measured saving 18–20 % of characters (full-history series, 2026-07-31; the `size` block in the response has the figure for your actual call), not a fifth of the size. Combine with granularity or a from/to window for a real reduction; dropping fields alone saves less than it looks.
granularityNoDefault daily. weekly/monthly keep the LAST observation of each period (a state, not an average).
schema_versionNoDefault '2026-07' (unchanged output). '2026-08' rounds floats to 2 decimals (ranks 1) and reports the saving. Default flips 2026-11-01.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses look-ahead-free ranks, the structural volatility decline, stitched pre-Binance series with ATR null before Binance era, the size block with saving measurement, free-tier restriction, and schema_version default flip. This is comprehensive behavioral disclosure beyond what schema could convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Despite its length, every sentence earns its place. The core purpose is front-loaded, followed by rank semantics, historical coverage, performance guidance, and related tools. No fluff; dense with actionable detail. For a tool with 7 parameters and many nuances, this is appropriately sized and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity and absence of an output schema, the description covers everything needed: return series content, rank semantics, historical coverage and caveats, performance optimization, free-tier limits, and clear pointers to alternatives. No critical information is missing for correct invocation and interpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all 7 parameters documented), so baseline is 3. However, the description adds meaningful context: 'fields' explains the actual character saving and warns that dropping fields alone saves less than it looks; 'granularity' clarifies weekly/monthly keep the last observation (a state, not an average); 'schema_version' details rounding and default flip. This adds value beyond the schema's descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states what the tool does: daily Bitcoin volatility time series with realized volatility (30d/90d, annualized) and ATR%. It also distinguishes itself from siblings by explaining the two rank flavors and naming related tools. This is a specific verb+resource with explicit differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises when to use this tool vs alternatives, e.g., 'this series uses completed closes and is the one to trust for finished days' and names arena_get_volatility_phases, arena_get_iv_snapshot, and arena_get_cycle as related. It also provides practical guidance on using from/to for windows and granularity/fields for long ranges, plus free-tier limits.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_volatility_insightsGet Volatility InsightsAInspect

Does this strategy work better in calm or wild markets? Breaks realized strategy performance down by VOLATILITY PHASE (low / normal / high) per asset and timeframe, so you can see whether an edge only exists in one volatility regime. Answers "when does this work", not "does this work" — for the overall verdict use arena_get_strategy_insights, for the macro-regime cut arena_get_strategy_performance_by_regime, and for the raw volatility time series arena_get_volatility_history. Cells below min_trades are suppressed rather than shown as noise. [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
asset_typeNoFilter by asset class, e.g. 'crypto'. Omit for all.
min_tradesNoMinimum trades a cell needs to be reported. Default 20 — lowering it buys coverage with noise.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses that cells below min_trades are suppressed rather than shown as noise, and mentions the API Pro tier requirement. While it doesn't explicitly state that the operation is read-only, the tool name and 'get' prefix imply it, and the description gives meaningful behavioral context without contradicting anything.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise yet information-dense. It opens with an engaging question, states the core functionality, differentiates from three siblings, and discloses suppression behavior and tier requirement—all in three sentences. Every sentence earns its place, and the key purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple reporting tool with two optional parameters and no output schema, the description is complete. It explains the volatility phase concept, defines what the output reveals, and covers edge cases (suppression). It also names alternatives, so an agent can route correctly. Nothing essential is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: both parameters have clear schema descriptions (asset_type lists enum options; min_trades explains default and trade-off). The tool description reinforces min_trades meaning by mentioning suppression, but adds no additional semantic value beyond what the schema already documents. Baseline 3 is appropriate given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool breaks down strategy performance by volatility phase (low/normal/high) per asset and timeframe, answering 'when does this work' rather than 'does this work'. It explicitly differentiates itself from three sibling tools by naming them and their distinct purposes, leaving no ambiguity about what this specific tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus alternatives: use it for the volatility-phase breakdown, use arena_get_strategy_insights for the overall verdict, arena_get_strategy_performance_by_regime for macro-regime cuts, and arena_get_volatility_history for raw volatility series. It also explains the min_trades suppression behavior, which is a usage consideration.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_volatility_phasesGet Live Volatility Phase SnapshotsAInspect

Is this pair calm or wild right now? Current ATR-based volatility phase (low/normal/high/expansion) per tracked pair, updated daily at 08:00 UTC. This is a single current state — for the time series behind it use arena_get_volatility_history, and for what the phase implies for strategy choice use arena_get_volatility_recommendations. Filter with pair when you only care about one asset instead of pulling all of them. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNoFilter to a single pair, e.g. "BTCUSDT". Omit for all tracked pairs.
asset_typeNoFilter by asset class. Omit for all.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden. It reveals that the data is updated daily at 08:00 UTC, is a current snapshot, and mentions the free tier. It doesn't explicitly state side effects or safety, but for a read-only getter this is adequate. It adds context about the update cadence and the distinction from historical data, which is valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences plus a tier tag, with the key information front-loaded. The opening question draws attention, the core definition follows, then alternatives and filtering tips are compactly placed. Every sentence earns its place with no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only snapshot tool with two optional filters and no output schema, the description is thorough: it specifies the return content (volatility phase per pair), the update frequency, how it differs from related tools, and how to filter. It even notes the free tier. Nothing essential is missing for a correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are well-documented in the input schema. The description's note about using `pair` to filter duplicates what the schema already says ('Filter to a single pair... Omit for all tracked pairs'). No new meaning is added for `asset_type`. Thus the description adds minimal value beyond the schema, meriting the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a 'current ATR-based volatility phase (low/normal/high/expansion) per tracked pair' and explicitly differentiates it from sibling tools by noting it is a 'single current state' versus the history and recommendation tools. This makes the purpose unmistakable and distinguishes it from the many get_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit routing: 'for the time series behind it use arena_get_volatility_history, and for what the phase implies for strategy choice use arena_get_volatility_recommendations.' It also gives practical advice on using the `pair` filter to limit results. This leaves no ambiguity about when to choose this tool over its siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_volatility_recommendationsGet Strategy Recommendations for Current Volatility PhaseAInspect

Which strategies suit the current volatility phase? Top-3 by historical win-rate for that phase on a given pair. Phase comes from the latest snapshot (arena_get_volatility_phases); minimum 20 trades per phase required for inclusion. Answers "which strategies did well in a phase like the current one?" — a historical ranking of what held up in comparable phases. Related: arena_get_volatility_phases (the phase itself), arena_get_edge_reports (filter effects with verdicts), validate_strategy (evidence check on a concrete configuration). [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
pairYesCrypto asset pair, e.g. "BTCUSDT", "ETHUSDT"
asset_typeNoAsset class of the paircrypto

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses key behavioral traits: the output is a top-3 ranking by historical win-rate, a minimum of 20 trades per phase is required for inclusion, and the result is a historical ranking based on the latest snapshot. It also flags the API Pro tier restriction. It does not cover error cases (e.g., missing phase or insufficient data), but it gives substantive context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than a single sentence but each part earns its place: the purpose question, the criteria, the source dependency, the related tools, and the tier note. It is front-loaded with the core question and then provides necessary context. A slightly tighter phrasing could improve it, but it is not bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with two parameters and no output schema, the description covers what it returns (top-3, sorted by win-rate), the required input (pair), the dependency on the latest phase snapshot, and the inclusion threshold (min 20 trades). It also names related tools, which is contextually rich. The only minor gap is guidance on what happens when no phase or insufficient trade data exists, but given the simple signature, it is adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% — both pair and asset_type have meaningful descriptions. The description adds marginal value by emphasizing the pair as the core input ('on a given pair') but does not elaborate on asset_type beyond what the enum already provides. Since the schema already documents parameters well, a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear question that defines the tool's exact purpose: recommending strategies for the current volatility phase, returning top-3 by historical win-rate for that phase on a given pair. It explicitly distinguishes itself from siblings by naming them and their roles (phase itself, filter effects, evidence check), so an agent can differentiate without opening other schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states a dependency (phase comes from arena_get_volatility_phases) and lists three related tools with their specific purposes, giving an agent clear context for when to choose this tool over alternatives. It lacks an explicit 'when not to use' statement, but the clear differentiation among siblings effectively guides selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_get_winnersGet Winners List (Top 100 CAGR)AInspect

What are the strongest backtest results on the platform? Public leaderboard: the highest-CAGR backtest results across all users, with anonymized usernames, pair, strategy, interval and period. Answers "what has scored best on this platform so far". Read it as a selected extreme, not as a recommendation — a top-of-leaderboard entry is the winner of a large search and its edge is upward-biased; arena_get_robustness_field or validate_strategy tell you whether a given result holds up. For the user's own runs use arena_list_backtests. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many entries to return, max 100 (default 100).
strategyNoRestrict the leaderboard to one strategy key, e.g. 'rsi_sma'. Omit for all strategies.
asset_classNoAsset class filter. Default 'crypto' (D14-separated leaderboard).

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that results are anonymized, publicly shared, upward-biased, and not a recommendation, which is valuable context. It also notes 'Free tier' but does not explicitly state that it is a read-only operation (though 'public leaderboard' implies it). This is sufficient but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core question ('What are the strongest backtest results?'). Every sentence adds value: purpose, caution, alternative validation, and user-specific alternative. It is slightly long but not verbose, earning a 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even without an output schema, the description lists the expected fields (anonymized usernames, pair, strategy, interval, period) and provides routing to relevant alternatives. It covers the key use cases and caveats. Missing explicit details like pagination or error behavior are minor given the optional limit parameter and simple nature of the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all three parameters (limit, strategy, asset_class) with thorough descriptions including maximum, example, and enum options. The description adds no additional meaning beyond what the schema already conveys. With 100% schema coverage, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose: it retrieves the highest-CAGR backtest results across all users as a public leaderboard, with specific fields (anonymized usernames, pair, strategy, interval, period). It clearly distinguishes itself from siblings by naming alternatives like arena_get_robustness_field, validate_strategy, and arena_list_backtests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use versus when-not-to-use guidance: it tells agents to treat results as a selected extreme (not a recommendation), points to arena_get_robustness_field or validate_strategy for validating a result, and directs user-specific runs to arena_list_backtests. The free-tier note also sets expectations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_is_distinguishableIs this difference real — or smaller than the measurement noise?AInspect

Do these two CAGR figures actually differ? Check before ranking them. Pass the two values as a and b (gross CAGR in percent, same basis) plus axes — which arbitrary choices went into them — and the tool returns whether their gap clears the MEASURED noise floor of those choices, along with the floor itself, the dominant axis, and the probe + date it was measured on. axes accepts: grid_phase (how a multi-day candle grid is aligned to the Unix epoch; exists only on 2d/3d), parameter_choice (neighbouring parameter settings — by far the largest axis), window_edges (shifting the start date), pair_selection (which pairs made it into the universe). Pass ALL axes that genuinely varied; the floor is their maximum, not their sum. Optionally set interval to the candle interval so the floor can be sharpened where an axis was measured per interval — passing grid_phase together with a non-multi-day interval is a hard error, because that axis does not exist there. label_a and label_b are optional display names for the two values and are echoed back inside the explanation, so a multi-way comparison stays readable. Read-only, no market data touched. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
aYesFirst value — gross CAGR in percent (e.g. 33.1 for +33.1%).
bYesSecond value, same unit and same basis as a.
axesYesWhich arbitrary choices differ between a and b. Pass every one that genuinely varied — omitting an axis makes the answer look more certain than it is.
label_aNoOptional name for a, echoed in the explanation.
label_bNoOptional name for b, echoed in the explanation.
intervalNoCandle interval, if known (e.g. '1d', '2d', '3d', '1w'). Sharpens the floor where an axis was measured per interval. Passing grid_phase with a non-multi-day interval is an error, not a rounding detail — that axis does not exist there.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses it is read-only ('Read-only, no market data touched'), describes the return contents (whether gap clears noise floor, the floor itself, dominant axis, probe and date), explains the consequence of omitting an axis (answer looks more certain than it is), and documents the hard error for grid_phase with non-multi-day intervals. This goes well beyond a minimal behavioral statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place. It front-loads the core question, then methodically explains the return, the axes, the aggregation, the optional interval, the labels, and the safety guarantee. No fluff or repetition; structured with clear logical flow from purpose to parameters to behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, multiple axes, error conditions, no output schema), the description is complete. It explains the return structure, the error condition, the aggregation rule, and every parameter's role. An agent has everything needed to call it correctly and interpret the result, even without an output schema. The only minor omission is the exact JSON return shape, but the description's narrative covers the components.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds substantial meaning: it explains the axes enum in detail (including that parameter_choice is the largest axis), clarifies the floor aggregation rule, defines the error condition for interval/grid_phase, and explains that labels are display names echoed back. This transforms the schema's raw definitions into practical, operational guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a crisp question — 'Do these two CAGR figures actually differ?' — and states the verb ('Check') and the resource (two CAGR values). It distinguishes itself from sibling tools by being the only one that performs a noise-floor significance test on CAGR differences, rather than retrieving data or running strategies. The phrase 'before ranking them' positions it clearly in the analysis workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: 'Check before ranking them.' It instructs the caller to pass all axes that genuinely varied and clarifies the floor is their maximum, not sum. It also warns about the hard error when combining grid_phase with a non-multi-day interval. Though it doesn't name alternative tools, the context makes the intended use unambiguous and the conditions precise.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_list_backtestsList Your BacktestsAInspect

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 run_id, then call arena_get_backtest for its detail or arena_get_backtest_trades for the individual trades. Only your OWN runs; for the public cross-user leaderboard use arena_get_winners. Paginated via limit + offset. [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNoFilter by pair symbol, e.g. BTCUSDT. Omit for all.
limitNoPage size, max 100, default 50.
offsetNoRows to skip for paging; default 0.
intervalNoFilter by candle interval; omit for all. Candle interval: '1d' daily, '2d'/'3d' multi-day, '1w' weekly, '1M' monthly. Multi-day candles (2d/3d) are anchored to the Unix epoch, so one of n possible alignments is used. Measured on our own corpus, the choice of alignment alone moves CAGR by 6.66 pp on average (max 12.30). Treat differences below that as not distinguishable — 1d/2d/3d behaved as one block in our tests, not a ranking.
strategyNoFilter by strategy key, e.g. 'rsi_sma'. Omit for all.
asset_typeNoFilter by asset class, e.g. 'crypto'. Omit for all.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavior disclosure. It discloses the operation is a read-only list ('Lists the backtest runs'), scopes results to the authenticated user, describes ordering ('newest first'), and states the tier ('API Pro'). It does not explicitly say there are no side effects, but 'list' implies a read. It could have noted that no mutation occurs or described auth failure behavior, but overall it provides sufficient behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no filler. The opening question 'Which backtests have I run?' immediately orients the agent, followed by the core purpose, usage flow, scope, and pagination note. Every clause earns its place, and the structure is front-loaded with the most critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

As a list tool with no output schema, the description compensates by listing the fields returned (id, strategy, pair, interval, date range, headline metrics), pagination parameters, scope, and related tools. It does not describe error or empty-result behavior, but that is a minor gap given the tool's simplicity and the absence of annotations. The mention of the API tier and the authenticated-user scope adds context. Overall, it is near-complete for its purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with all six parameters already described in the input schema (e.g., pair filter, limit max 100, offset default 0, interval enum, strategy, asset_type). The tool description adds only 'Paginated via limit + offset', which reinforces but does not extend beyond schema. Since coverage is high, the baseline is 3 and the description adds no new parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and the resource 'backtest runs', specifies the scope 'belonging to the authenticated user', and lists the fields returned (id, strategy, pair, interval, date range, headline metrics). It explicitly differentiates from sibling tools by naming arena_get_backtest for detail and arena_get_winners for the public leaderboard, so an agent can distinguish it without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives direct usage guidance: 'Use it to find a run_id, then call arena_get_backtest for its detail or arena_get_backtest_trades for the individual trades.' It also states when not to use it ('Only your OWN runs; for the public cross-user leaderboard use arena_get_winners') and mentions pagination via limit+offset. This is explicit and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_list_knowledgeList Knowledge Objects (catalog)AInspect

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_knowledge to learn valid type/subject pairs instead of guessing. New types appear automatically. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It states it's a listing operation (implying read-only) and notes the free tier, giving cost context. It does not explicitly declare side effects or rate limits, but the nature of a zero-parameter list operation and the detailed output fields make behavior sufficiently clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by usage guidance and a note about free tier. It is a bit conversational ('What knowledge objects exist here?') but each sentence earns its place, with no redundancy. Length is appropriate for the information conveyed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless list tool, the description is complete: it states what is returned, when to use it, and cost implications. It does not describe the exact response format or pagination, but these are less critical for a simple listing. The absence of an output schema is mitigated by listing the returned fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so schema coverage is trivially 100%. The baseline for 0 params is 4. The description adds value by explaining the output contents (types, subjects, and the specific fields), which compensates for the lack of an output schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all published knowledge types and their subjects, with specific fields (min_tier, api_path, seo_slug, latest as_of). It distinguishes itself from arena_get_knowledge by positioning itself as a discovery step, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Contains an explicit directive: 'Use this BEFORE arena_get_knowledge to learn valid type/subject pairs instead of guessing.' It also notes that new types appear automatically, implying the tool should be re-run to stay current. This clearly tells the agent when and why to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_list_onchain_seriesList Available BRK On-Chain SeriesAInspect

Which on-chain series are available? Lists all 62 available Bitcoin Research Kit (BRK) on-chain series across the groups pilot, sentiment, mining, supply, cointime, activity, liquidity (e.g. MVRV, NUPL, SOPR, Realized-Price, Mayer, Puell, STH/LTH SOPR, Hash-Ribbons). Returns id + label + group. Use the id with arena_get_onchain_latest / _history. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral transparency burden. It discloses that the tool is a read-only catalog listing all 62 series, which groups are covered, what fields are returned, and that it is free tier. This is sufficient for a parameterless list tool, though it omits details like whether results are ordered or static.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core question and answer. The example list is informative rather than padding, and the downstream usage note is valuable. The opening question is mildly redundant with the title but serves as a useful semantic signal for agents.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless, schema-less list tool, the description is complete: it specifies the number of items, the grouping taxonomy, representative examples, the output fields, and the follow-up tools that accept the returned id. Nothing an agent needs to successfully call or use this tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema confirms this, so the baseline is 4. The description adds no parameter-specific information, but none is needed; an agent can invoke the tool without ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Lists') and a specific resource ('all 62 available Bitcoin Research Kit on-chain series'), enumerates the groups, and names example series like MVRV, NUPL, and SOPR. It also states the exact return shape (id + label + group), which clearly distinguishes it from the many other arena_list_* sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It opens with a natural-language trigger question ('Which on-chain series are available?') and tells the agent to use the returned id with arena_get_onchain_latest / _history, giving clear downstream context. It does not explicitly contrast itself with sibling list tools, but the resource specificity makes the intended use unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_list_strategiesList Available Trading StrategiesAInspect

Which strategies can I backtest here? Lists all backtest strategies (key, label, plan, supported asset classes, primary indicators). Filterable by asset class and plan. Use this before calling arena_run_backtest to discover valid strategy names. Entries deprecated for an asset class stay listed (historical results depend on them) and carry deprecated_for + deprecation {since, reason} — do NOT call arena_run_backtest or validate_strategy for those combinations, they return 400. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLocalized names/taglines. Default 'en'.
planNoFilter to strategies of this plan tier.
asset_classNoFilter to strategies supporting this asset class (crypto or tokenized_rwa).

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It discloses that deprecated entries intentionally stay listed, that they carry deprecated_for and deprecation metadata, and that invalid combinations fail with 400. This exposes important non-obvious behavior. It doesn't mention response shape, pagination, or auth, but the key traps are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with a natural question, then the core behavior, then the critical deprecation caveat. The deprecation sentence is long but packs essential warning details. Overall it earns its place without unnecessary fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple optional-parameter list tool with no output schema, the description covers what the tool returns, what filters exist, how it relates to arena_run_backtest, and the important deprecation edge case. A small example of output shape or a note about lang default would push it higher, but nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds only minimal parameter semantics by mentioning filterability by asset class and plan; it doesn't add new meaning for lang or any details beyond the schema. No penalty is warranted because the schema already documents each parameter well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a concrete user question and states the exact function: 'Lists all backtest strategies' with the specific fields returned (key, label, plan, supported asset classes, primary indicators). It also frames itself as a discovery tool for arena_run_backtest, which distinguishes it from the many other list/get tools in its sibling set.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage guidance is explicit: 'Use this before calling arena_run_backtest to discover valid strategy names.' It also gives a clear negative directive — do not call arena_run_backtest or validate_strategy for deprecated asset-class combinations, and states the consequence (they return 400). This is strong, unambiguous routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_list_subscriptionsList Active Live-SubscriptionsAInspect

Which alerts do I have running? Returns every ACTIVE subscription belonging to the current API key: id, type, trigger configuration, delivery method and expiry. Use it to see what is already running before creating a duplicate, and to get the subscription_id that arena_cancel_subscription needs. Does not return fired updates — that is arena_check_subscription_updates. [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states the scope (active subscriptions only), the API tier requirement ('[API Pro tier]'), and what the tool does not return (fired updates). It does not explicitly declare that the operation is read-only, but the listing nature strongly implies non-mutation. The lack of an explicit 'does not modify' note is a minor gap given the absence of annotations, but the provided details cover the most critical behavioral aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact yet information-dense. It front-loads with a natural-language question, then delivers the operation, scope, return fields, usage context, exclusions, and tier requirement in three sentences. No redundancy or filler—each sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless list operation with no output schema, the description is remarkably complete. It states what is returned, for whom, when to use it, what it does not return, the alternative tool, and the access tier. An agent has everything needed to correctly invoke this tool without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so there is nothing for the description to elaborate beyond the schema. Per the baseline for zero-parameter tools, a 4 is appropriate because the description correctly implies the tool takes no arguments (no mention of parameters) and the schema confirms it. The description's field list (id, type, etc.) refers to the output, not parameters, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear question ('Which alerts do I have running?') and immediately states the verb and scope: 'Returns every ACTIVE subscription belonging to the current API key: id, type, trigger configuration, delivery method and expiry.' This precisely distinguishes it from siblings by explicitly naming what it returns and what it excludes (fired updates), leaving no ambiguity about the resource or operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent when to use this tool: 'Use it to see what is already running before creating a duplicate, and to get the subscription_id that arena_cancel_subscription needs.' It also states what it does NOT do and points to the alternative: 'Does not return fired updates — that is arena_check_subscription_updates.' This provides actionable routing to the correct sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_list_universesList Asset UniversesAInspect

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. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden. It states the core action (lists all universes) and clarifies what universes are (underlying pair-sets), which is helpful. However, it does not mention side effects, auth requirements, error cases, or output format. The '[Free tier]' hint is a minor behavioral note. For a read-only list tool, this is adequate but not rich in disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences plus a bracketed note, with no fluff. The front-loaded question immediately signals the tool's purpose, followed by a precise definition and usage context. Every word contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only list tool, the description covers the essential aspects: what it does, what it returns conceptually (a list of universes), and why it matters (used by specific endpoints). It does not detail the exact output structure, but given no output schema, that is acceptable. It is sufficiently complete for an agent to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so the baseline is 4 as per rubric. The description adds value by giving examples of expected universe names (BTC, top-10, etc.), which helps an agent anticipate the output, but there are no parameter semantics to elaborate on.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Lists'), names the exact resource ('all crypto asset universes'), and provides concrete examples (BTC, top-10, top-50). The opening question 'Which asset universes can I test against?' directly addresses an agent's selection need and clearly differentiates this from other list tools (e.g., arena_list_backtests) by focusing on universes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives useful context on when to use it: it lists the pair-sets used by 'custom-report and universe-backtest endpoints', implying the tool is needed when selecting a universe for those operations. It does not explicitly name alternatives like arena_get_universe, but the context is clear enough for appropriate invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_quote_reportQuote a Custom ReportAInspect

What would a custom report cost? Get a pricing quote for a custom report (universe-backtest PDF + Excel) without committing to a purchase. Returns price, universe size + preview, excluded pairs, and filter config. Crypto universes use top-N tiers (top-10 … top-250) or a custom pair list. [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
intervalYesCandle interval the report is computed on: '1d', '1w' or '1M'.
strategyYesStrategy key (use arena_list_strategies for valid values).
asset_typeNoAsset class; currently 'crypto' only (default).
custom_pairsNoExplicit pair list — required when universe_tier='custom', ignored otherwise.
period_labelYesHistory covered by the report. Longer periods cross more market regimes and cost more compute.
discount_codeNoOptional retention-discount code.
universe_tierYes'top-10' / 'top-50' / 'top-100' / 'top-250' (crypto) or 'custom' with customPairs[].
strategy_paramsNoStrategy parameters applied across the whole universe; omit for audited defaults.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full burden of behavioral disclosure. It states the tool is non-committal ('without committing to a purchase') and lists what it returns, which implies a read-only quotation operation. However, it does not explicitly confirm no side effects (e.g., no reservation, no execution) or mention authorization/rate limits. This is adequate but leaves some ambiguity about whether a quote requires any state change or has hidden costs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and efficiently structured. It front-loads the core purpose with a question, states the deliverable and commitment level, lists the return fields, and then provides the domain-specific detail about crypto universes, plus the API tier note. Every sentence adds value, and there is no irrelevant fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 8 parameters, a nested object, and no output schema, the description is reasonably complete. It explains the primary outputs, the universe scope mechanism, and the API tier requirement. It does not elaborate on output structure (e.g., units, formatting) or potential errors, but the listed outputs are sufficient for an agent to understand the tool's behavior. The lack of an output schema makes some detail desirable, but the description covers the essentials.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 8 parameters. The description adds only a marginal note about crypto universes using top-N tiers or a custom pair list, but this is largely redundant with the schema's universe_tier description. It does not clarify parameter syntax or relationships beyond what the schema provides, so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to get a pricing quote for a custom report without committing to a purchase. It specifies the deliverable (universe-backtest PDF + Excel) and the returned data (price, universe size, preview, excluded pairs, filter config). This distinguishes it from siblings like arena_run_universe_backtest, which execute a backtest rather than quote it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool (when needing a quote before purchase) and implies it is a pre-purchase step. It does not explicitly name alternative tools or state conditions for not using it, but the phrase 'without committing to a purchase' effectively guides an agent toward using this for quoting rather than execution. The tier note ('[API Pro tier]') also signals a usage restriction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_run_backtestRun a New BacktestAInspect

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-fees figures, and a run_id for later retrieval. Synchronous, typically 3–10s. Use this when the user wants a concrete result for a specific setup. For several strategies side by side use arena_compare_strategies; for many pairs at once use arena_run_universe_backtest; to judge whether an EXISTING result is trustworthy rather than produce a new one, use validate_strategy or arena_get_robustness_field. Filters are optional and only remove entries; run once without them for the baseline. Read result.benchmark before comparing cagr to buyhold_cagr: warmup or a late listing can shorten the strategy window, and matches_strategy_window:false means the two figures are annualized over DIFFERENT periods — in that case benchmark.strategy_window carries the like-for-like buy-and-hold over the window the strategy actually traded, and THAT is the one to compare against. Per-day quota: Pro=50, Power=500. [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
pairYesCrypto pair symbol, e.g. BTCUSDT, ETHUSDT, SOLUSDT.
paramsNoStrategy-specific parameters, e.g. { rsi_period: 14 }. Omit to use the audited defaults — changing them without a reason is how overfitting starts.
capitalNoStarting capital in quote currency. Default 10000. Affects absolute figures only, not CAGR or win-rate.
date_toNoEnd date, YYYY-MM-DD. Default: today.
filtersNoOptional entry filters (Pro+). Each one only ever REMOVES entries — filters never create trades. Omit for the unfiltered baseline.
intervalYesCandle interval: '1d' daily, '2d'/'3d' multi-day, '1w' weekly, '1M' monthly. Multi-day candles (2d/3d) are anchored to the Unix epoch, so one of n possible alignments is used. Measured on our own corpus, the choice of alignment alone moves CAGR by 6.66 pp on average (max 12.30). Treat differences below that as not distinguishable — 1d/2d/3d behaved as one block in our tests, not a ranking.
strategyYesStrategy key — use arena_list_strategies to find valid keys.
date_fromYesStart date, YYYY-MM-DD. Earlier than the pair listing is clamped to the first available candle.
asset_typeYesAsset class. Use 'crypto' unless you are explicitly backtesting a tokenized real-world asset. Note: tokenized stocks/ETFs/gold trade AS crypto pairs (e.g. spybUSDT, qqqbUSDT) — there is no separate stocks/forex backtest surface; non-crypto asset classes were retired.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Rich behavioral disclosure beyond raw schema: synchronous with 3-10s latency, per-day quota (Pro=50, Power=500), API tier restriction, multi-day candle alignment variance (6.66 pp CAGR average), warmup/late-listing caveat requiring comparison against benchmark.strategy_window when matches_strategy_window is false, and filters never create trades. This is substantial context not present in annotations (which are absent), so the description fully carries the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but each sentence earns its place; critical operational details (benchmark caveat, quota, alignment risk) are front-loaded or contextually placed. Slightly compact to the point of requiring careful reading, but not bloated; no filler words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-param tool with no output schema, the description covers: when to use, what is returned, latency, quota, tier, caveats about result interpretation, filter semantics, and sibling routing. It goes beyond typical definitions in anticipating agent decision errors (aligning 1d/2d/3d as ranking, ignoring matches_strategy_window=false) and behavioral expectations. Nothing essential is missing for selecting and invoking it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already documented. The description adds meaning beyond schema: it explains the benchmark comparison caveat, clarifies capital affects only absolute figures, warns against changing params without reason, explicates interval alignment risk and suggests treating differences below 6.66 pp as indistinguishable, details asset_type retirement, and states filters only remove entries. This goes well beyond the schema's field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description begins with a concrete question framing the tool's purpose, then states the exact operation: run ONE strategy on ONE pair over a date range, synchronous, 3-10s, returning full performance results. It explicitly differs from siblings and lists output fields (CAGR, total return, max drawdown, win-rate, trade count, benchmark comparison, run_id).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use ('when the user wants a concrete result for a specific setup'), and provides alternatives for side-by-side comparisons (arena_compare_strategies), many pairs (arena_run_universe_backtest), and judging existing results (validate_strategy / arena_get_robustness_field). Also explains filters only remove entries and advises running once without them for baseline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_run_grid_backtestRun a Grid-Trading BacktestAInspect

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 and a Buy & Hold comparison. This is a different machine from the strategy backtester: grid bots earn from oscillation inside a range, not from trend — for signal-based strategies use arena_run_backtest instead. The result depends heavily on the range you choose (low_price / high_price); a range the price left early makes the bot idle, so treat range choice as part of the hypothesis, not a detail — arena_suggest_grid_range proposes a defensible range. Each run is saved to your account (the returned id is the run_id); publish a public snapshot page with arena_share_grid_backtest. Free tier limited to BTCUSDT/ETHUSDT. Per-day quota: Free=5, Pro=50, Power=500. [Free / Pro / Power tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
pairYesCrypto pair symbol, e.g. BTCUSDT. Free tier: BTCUSDT or ETHUSDT only.
end_dateYesSimulation end, YYYY-MM-DD.
fee_rateYesPer-trade fee fraction, e.g. 0.001 for 0.1% (Binance spot taker).
grid_typeYesLevel spacing: 'arithmetic' = equal price steps, 'geometric' = equal percentage steps (usually the better fit for crypto).
low_priceYesLower bound of the grid range, in quote currency. Below it the bot is fully invested and stops buying.
grid_countYesNumber of grid levels between low_price and high_price (2–200). More levels = more, smaller trades = more fees.
high_priceYesUpper bound of the grid range, in quote currency. Above it the bot is fully in cash and stops selling. Must exceed low_price.
start_dateYesSimulation start, YYYY-MM-DD.
entry_priceNoOptional price at which the bot starts; default is the first close in the range.
stop_loss_priceNoOptional: liquidate the whole grid and stop once price falls to this level.
total_investmentYesCapital in USDT spread across the grid; min 100.
take_profit_priceNoOptional: liquidate the whole grid and stop once price rises to this level.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that runs are persisted ('Each run is saved to your account'), the returned id is the run_id, free-tier pair restrictions, and per-day quotas. It also hints at the execution characteristic that result depends heavily on range. It does not explicitly state whether the operation is synchronous or asynchronous, but the persistence mention and companion get_backtest tools imply it. Overall, decent coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph, but every sentence earns its place. It front-loads purpose, then differentiates, then gives range guidance, then persistence/sharing, then limits. The opening rhetorical question is a minor stylistic choice but not wasteful. It is well-organized, though slightly long; a 4 reflects the effective use of space rather than excessive brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 12 parameters and no output schema, the description covers a lot: return metrics, run_id, persistence, tier restrictions, quota, and the range sensitivity caveat. It doesn't explain exact response structure or error handling, but those are likely covered by sibling get_backtest tools. It also doesn't mention stop_loss/take_profit semantics beyond the schema, but the schema already covers them. Overall, adequately complete for the complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by highlighting the critical interplay of low_price/high_price: 'a range the price left early makes the bot idle' and recommending arena_suggest_grid_range. It also implies entry_price default behavior indirectly via range discussion. This is useful practical guidance not present in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a user-centric question, then clearly states 'Simulate a GRID BOT' and enumerates the exact return values. It immediately distinguishes itself from the strategy backtester by naming the sibling tool (arena_run_backtest) and explaining the conceptual difference between grid and trend. The verb-resource pair is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides when-not guidance: 'for signal-based strategies use arena_run_backtest instead.' It also recommends arena_suggest_grid_range for choosing a defensible range, and arena_share_grid_backtest for publishing. It clarifies that range choice is part of the hypothesis, giving the agent a concrete decision rule. Tier and quota constraints are also relayed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_run_universe_backtestRun Backtest on a Pair Universe (async)AInspect

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 single job keeps the ranking on one pair set (merging results across different pair sets measures pair selection, not strategy quality). THIS CALL IS ASYNCHRONOUS AND RETURNS NOTHING BUT A job_id: the result is NOT in this response. You MUST poll arena_get_job_status until status is 'completed'; estimated_seconds in the create-response says how long to budget. Provide either universe_id (call arena_list_universes) OR explicit pairs[]. Benchmarks bnh_fixed and dca_reference are accepted here — run one of them over the SAME universe and interval alongside: an excess over buy-and-hold is only readable next to the buy-and-hold value itself, which can be negative. beats_bh_count compares each pair's cagr against the LIKE-FOR-LIKE buy-and-hold — the benchmark measured over the window the strategy actually traded, not from the requested start. A long warmup or a pair listed after date_from shifts that start, and comparing across two different windows is a handicap, not a benchmark. The old pairing is still reported as beats_bh_count_requested_window, and pairs_with_window_offset says on how many pairs the two can differ at all; per-pair, buyhold_cagr_strategy_window and benchmark_matches_window carry the same distinction. PERSISTENCE: universe results live ONLY in the job response (api_jobs.result). They are deliberately not written to backtest_runs, so they carry no filter_binding and no coin-denominated history, and you will not find them later via arena_list_backtests — copy what you need out of the job result. Per-day quota: Pro=5, Power=50. [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
pairsNoExplicit pair list. Hard schema limit 250; the effective cap is your tier (Pro 50, Power 250). Use instead of universe_id.
paramsNoStrategy-specific parameters applied to EVERY pair in the universe. Omit for audited defaults.
capitalNoStarting capital in quote currency. Default 10000. Affects absolute figures only, not CAGR or win-rate.
date_toNoEnd date, YYYY-MM-DD. Default: today.
filtersNoOptional entry filters (Pro+). Each one only ever REMOVES entries — filters never create trades. Omit for the unfiltered baseline.
intervalYesCandle interval: '1d' daily, '2d'/'3d' multi-day, '1w' weekly, '1M' monthly. Multi-day candles (2d/3d) are anchored to the Unix epoch, so one of n possible alignments is used. Measured on our own corpus, the choice of alignment alone moves CAGR by 6.66 pp on average (max 12.30). Treat differences below that as not distinguishable — 1d/2d/3d behaved as one block in our tests, not a ranking.
strategyYesStrategy key — call arena_list_strategies.
date_fromYesStart date, YYYY-MM-DD. Earlier than the pair listing is clamped to the first available candle.
universe_idNoPre-curated universe — call arena_list_universes for valid IDs. Capped by tier (Pro 50, Power 250); a larger universe is rejected rather than silently truncated.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden and does so thoroughly: it exposes async result handling, tier-based pair caps, per-day quota, non-persistence of results, benchmark window offsets, and the distinction between strategy-window and requested-window comparisons. No major behavioral surprise is left hidden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but dense and mostly earns its length. It front-loads the async warning, pair cap, and persistence caveats, which are the most critical operational facts. It loses one point because the benchmark-window discussion is quite heavy and could be tightened without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an async tool with no output schema, the description is remarkably complete: it explains what the response contains (job_id), how to get the actual result, what to copy, how benchmarking should be structured, what the benchmark fields mean, and how quota and tier constraints apply. An agent has enough information to call it correctly and interpret the outcome safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds useful parameter-level context beyond the schema: valid benchmark strategy keys (bnh_fixed, dca_reference), the either/or relationship between universe_id and pairs, the tier-based cap behavior, and the fact that results only exist transiently in the job response. This goes beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear use-case question and states a specific verb and resource: it runs the given strategy against every pair in the universe. It immediately distinguishes itself from single-pair runs and retrieval tools by emphasizing the async contract (returns only a job_id), and it is clearly differentiated from siblings like arena_run_backtest and arena_get_job_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit workflow: poll arena_get_job_status until completed, provide either universe_id (via arena_list_universes) or explicit pairs[], and run benchmarks over the same universe and interval. It also warns that results are not discoverable via arena_list_backtests, which tells the agent exactly where to look and where not to look.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_share_grid_backtestShare a Grid BacktestAInspect

Want a public link for a grid result? Publishes a read-only snapshot page (with OG preview image) for one of YOUR saved grid backtest runs and returns its URL. Pass the run_id you got back from arena_run_grid_backtest (every authenticated run is saved automatically). The page shows the numbers the engine actually computed — this tool takes no result values, so shared pages cannot carry fabricated figures. Shares are permanent snapshots; language picks the page copy (en default). [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesId of one of your saved grid backtest runs (returned by arena_run_grid_backtest).
languageNoPage language of the share. Default 'en'.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It discloses that the share is read-only, permanent ('Shares are permanent snapshots'), includes an OG preview image, does not accept result values (so pages cannot contain fabricated figures), and that language selects the page copy. The '[Free tier]' hint touches on access constraints. It does not mention auth requirements or rate limits, but for a sharing action the disclosed permanence and integrity guarantees are substantial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the purpose and output. It includes extra value like 'OG preview image', 'permanent snapshots', 'no result values', and '[Free tier]' without being verbose. The conversational opening is slightly informal but not wasteful. Every sentence adds information relevant to the call.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description explicitly states the return is a URL. It covers the input source (run_id from arena_run_grid_backtest), the nature of the share (read-only, permanent), language behavior, and integrity guarantees. It does not mention error cases or rate limits, but for a sharing action it is complete enough for an agent to call it correctly and understand the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: both run_id and language have descriptive properties in the schema. The description reaffirms run_id as 'the run_id you got back from arena_run_grid_backtest' and adds that 'language picks the page copy', but it does not add syntax or format details beyond the schema. The baseline of 3 is appropriate because the schema already documents the parameters well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('publishes') and resource ('read-only snapshot page ... for one of YOUR saved grid backtest runs') and clearly indicates the output ('returns its URL'). It is distinguished from sibling tools by focusing on the sharing act, not retrieval or analysis. The inclusion of 'read-only' and 'OG preview image' adds clarity about what is produced.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The opening question 'Want a public link for a grid result?' sets the context, and the explicit instruction 'Pass the run_id you got back from arena_run_grid_backtest' provides a direct usage path. It implies the tool is for sharing your own saved runs, and the note 'every authenticated run is saved automatically' reinforces that prerequisite. However, it does not explicitly contrast with sibling tools like arena_get_shared_backtest, which might retrieve an existing share.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_statusConnection, Auth & Quota StatusAInspect

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, reset) WITHOUT consuming extra quota beyond this call itself. Call this first when other tools fail: it separates auth problems (reconnect), tier problems (upgrade) and rate limits (wait) from real outages. [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosure. It clearly states that the tool returns auth status, tier, server version, time, and rate-limit state, and explicitly notes that it does not consume extra quota beyond the call itself. This covers the key behavioral traits an agent needs to know for a status probe. It does not explicitly say it never modifies anything, but the read-only nature is strongly implied by the diagnostic framing and the listed outputs, so the slight gap is minor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is about 90 words and is well-structured: it opens with the core question, then lists outputs, then gives usage guidance and the quota note. Every sentence contributes new information, and the most important guidance ('call this first when other tools fail') is front-loaded near the middle rather than buried at the end. It is slightly longer than strictly necessary, but the density of actionable detail justifies the length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the tool has no parameters, no output schema, and no annotations, the description needs to fully explain what the agent will get and when to use it. It does exactly that: it enumerates all the returned data categories, explains how to interpret them for troubleshooting, and explicitly promises no extra quota consumption. The sibling set is large and all getter-like, so this description successfully carves out a unique diagnostic role. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so schema coverage is trivially 100%. The description goes beyond the empty schema by explaining what the returned fields mean (key kind, tier, time, rate-limit state) and how they map to troubleshooting actions. With no parameters to document, a baseline of 4 is appropriate; the description adds semantic value about the output context even though it cannot describe input semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a customer-facing question ('Am I connected, and what can this key do?') and then enumerates exactly what it returns: auth status (key kind and tier), server version, current UTC time, and rate-limit state. This is a specific verb+resource with no ambiguity. It also distinguishes itself from the many sibling getter tools by positioning itself as the diagnostic endpoint to call when other tools fail, which clearly sets it apart from the rest of the arena_* family.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit, actionable guidance: 'Call this first when other tools fail' and then tells the agent how to interpret results by separating auth problems (reconnect), tier problems (upgrade), and rate limits (wait) from real outages. It also states that the call itself does not consume extra quota, which is a practical constraint. This is textbook when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_subscribe_bullmarket_stageSubscribe to Bullmarket-Ampel Stage ChangesAInspect

Notify me when the bull-market stage count changes? Tracks the Bullmarket-Ampel active stage count (0–5). Optional direction filter (up/down/any) plus specific stages of interest. For the current stage count without subscribing, call arena_get_bullmarket_ampel. Creates a standing subscription; it does not return a value now — collect fired updates with arena_check_subscription_updates (polling) or receive them by webhook, and end it with arena_cancel_subscription. For the CURRENT value instead of a change notification, call the matching read tool. [API Pro tier and up — max 3 active subscriptions for Pro, 20 for Power]

ParametersJSON Schema
NameRequiredDescriptionDefault
stagesNoSpecific stages of interest. Default: any change.
directionNoFilter to direction. Default 'any'.
expires_atNoISO-8601 timestamp after which the subscription auto-deactivates. Omit to keep it active until cancelled.
webhook_urlNoHTTPS endpoint we POST to. Required when delivery_method=webhook, ignored otherwise.
delivery_methodNoHow updates reach you: 'polling' (default — collect via arena_check_subscription_updates) or 'webhook' (we POST to your URL).

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and meets it: it discloses that the tool creates a standing subscription, returns no value immediately, and outputs arrive asynchronously via polling or webhook. It also states the maximum active subscriptions per tier. This fully informs the agent about the asynchronous behavioral profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence but remains focused and front-loaded with the core purpose. It packs in usage guidance and lifecycle steps without becoming bloated, though splitting into shorter sentences would improve readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a subscription tool with five parameters and no output schema, the description covers the essential context: what it subscribes to, how updates are delivered, how to cancel, and when to use the read alternative. It omits only details about the update payload format, which is not critical for initiating the call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description only restates that filters are optional and lists stage and direction, which adds minimal value beyond the schema's own parameter descriptions. It does not clarify formats or edge cases beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool subscribes to bull-market stage count changes (0–5) and highlights optional direction and stage filters. It explicitly contrasts with the sibling read tool arena_get_bullmarket_ampel, making the resource and action unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells when to use this tool versus alternatives: 'For the current stage count without subscribing, call arena_get_bullmarket_ampel.' It also provides lifecycle guidance—how to collect updates via polling or webhook and how to cancel—along with tier-based subscription limits. This is comprehensive route guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_subscribe_cycle_changesSubscribe to BTC Cycle Band ChangesAInspect

Notify me when the cycle band changes? Bands: (capitulation → risk-off → neutral → constructive → euphoric). Optional bands filter restricts to specific target bands. For the current band without subscribing, call arena_get_cycle. Creates a standing subscription; it does not return a value now — collect fired updates with arena_check_subscription_updates (polling) or receive them by webhook, and end it with arena_cancel_subscription. For the CURRENT value instead of a change notification, call the matching read tool. [API Pro tier and up — max 3 active subscriptions for Pro, 20 for Power]

ParametersJSON Schema
NameRequiredDescriptionDefault
bandsNoFilter to bands of interest. Default: any change triggers.
expires_atNoISO-8601 timestamp after which the subscription auto-deactivates. Omit to keep it active until cancelled.
webhook_urlNoHTTPS endpoint we POST to. Required when delivery_method=webhook, ignored otherwise.
delivery_methodNoHow updates reach you: 'polling' (default — collect via arena_check_subscription_updates) or 'webhook' (we POST to your URL).

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool creates a standing subscription and does not return a value immediately, explaining the async nature and how updates are delivered. It also mentions tier limits (max 3/20 subscriptions), which is useful behavioral context. However, it does not specify what the immediate return value is (e.g., subscription ID) or the details of the notification payload, which are minor gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then covers lifecycle and alternatives. It is somewhat verbose with redundancy: the same 'call arena_get_cycle for current value' point appears twice. Still, every sentence carries useful information about usage, limits, and mechanics, so it is effective despite being a bit wordy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a subscription tool with no output schema and all parameters documented, the description covers the key aspects: what it does, how to receive updates, how to end it, and alternatives. It lacks details on the immediate response format and the exact payload of a fired notification, which could be relevant for agents, but overall it gives enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds some context for the 'bands' parameter ('Optional bands filter restricts to specific target bands') and mentions delivery methods, but these are largely covered by the schema. It does not add substantial semantic value beyond what the JSON schema already describes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool subscribes to cycle band changes and lists the bands. It distinguishes itself from arena_get_cycle (for current value) and other subscription tools by specifying the exact resource and event. The phrasing 'Notify me when the cycle band changes' is a specific verb+resource that immediately conveys purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent when to use this tool vs. alternatives: 'For the current band without subscribing, call arena_get_cycle' and 'For the CURRENT value instead of a change notification, call the matching read tool.' It also explains how to collect updates (polling or webhook) and terminate the subscription (arena_cancel_subscription), giving complete usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_subscribe_pulse_changesSubscribe to Arena-Pulse Score Threshold CrossingsAInspect

Notify me when market heat crosses a threshold? Fires when the daily 0–100 Arena-Pulse score crosses threshold_above (upward) or threshold_below (downward). At least one threshold is required. For the current score without subscribing, call arena_get_pulse. Creates a standing subscription; it does not return a value now — collect fired updates with arena_check_subscription_updates (polling) or receive them by webhook, and end it with arena_cancel_subscription. For the CURRENT value instead of a change notification, call the matching read tool. [API Pro tier and up — max 3 active subscriptions for Pro, 20 for Power]

ParametersJSON Schema
NameRequiredDescriptionDefault
expires_atNoISO-8601 timestamp after which the subscription auto-deactivates. Omit to keep it active until cancelled.
webhook_urlNoHTTPS endpoint we POST to. Required when delivery_method=webhook, ignored otherwise.
delivery_methodNoHow updates reach you: 'polling' (default — collect via arena_check_subscription_updates) or 'webhook' (we POST to your URL).
threshold_aboveNoFire when score rises across this value.
threshold_belowNoFire when score falls across this value.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and meets it. It discloses that this creates a standing subscription, that it does not return a value now, that updates arrive via polling or webhook, that it can auto-deactivate via expires_at, and the quota limits per tier (max 3 Pro, 20 Power). No contradiction with annotations since none exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the user-question framing and the core firing condition before lifecycle details. Dense but every sentence contributes; the only mild inefficiency is some reiteration of the read-tool alternative in two places, which is a minor redundancy rather than waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a 5-parameter subscription tool with no output schema: the description explicitly addresses the 'no immediate return value' behavior and points to the polling and cancellation siblings. All parameters are covered by the schema plus description. The only gap is a missing description of the fired update payload format, which the polling tool's schema would presumably document.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema names and describes each parameter. The description adds genuine value beyond the schema: it clarifies that at least one threshold is required, that webhook_url is required only for delivery_method=webhook and ignored otherwise, and that expires_at causes auto-deactivation. This enriches the otherwise bare schema entries.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (subscribe) and resource (Arena-Pulse score threshold crossings), with exact firing conditions for threshold_above (upward) and threshold_below (downward). Explicitly contrasts with the arena_get_pulse sibling for reading the current value, so an agent can distinguish subscription from read tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use guidance: 'For the current score without subscribing, call arena_get_pulse' and 'For the CURRENT value instead of a change notification, call the matching read tool.' Names the lifecycle siblings (arena_check_subscription_updates, arena_cancel_subscription) and states the 'At least one threshold is required' precondition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_subscribe_signal_alertsSubscribe to Strategy Signal AlertsAInspect

Notify me when this signal flips? Fires when an existing Ampel-Config's signal flips (BUY ↔ SELL). Prerequisite: the user must have created that ampel-config in the web UI (/dashboard/ampel) — pass its UUID here; this tool cannot create one. Optional signal_types filter narrows to BUY-only or SELL-only. For the current signal state without subscribing, call arena_get_signal_status. Creates a standing subscription; it does not return a value now — collect fired updates with arena_check_subscription_updates (polling) or receive them by webhook, and end it with arena_cancel_subscription. For the CURRENT value instead of a change notification, call the matching read tool. [API Pro tier and up — max 3 active subscriptions for Pro, 20 for Power]

ParametersJSON Schema
NameRequiredDescriptionDefault
expires_atNoISO-8601 timestamp after which the subscription auto-deactivates. Omit to keep it active until cancelled.
webhook_urlNoHTTPS endpoint we POST to. Required when delivery_method=webhook, ignored otherwise.
signal_typesNoOptional filter. Default: both BUY and SELL fire.
ampel_config_idYesUUID einer existierenden ampel_configs-Row im gleichen User-Account.
delivery_methodNoHow updates reach you: 'polling' (default — collect via arena_check_subscription_updates) or 'webhook' (we POST to your URL).

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the tool creates a standing subscription, does not return a value immediately, and fires on signal flips. It also details tier limits ('[API Pro tier and up — max 3 active subscriptions for Pro, 20 for Power]') and the prerequisite about user-created ampel-configs. No contradictions with any structured data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but each sentence serves a purpose: it opens with the core use case, then covers prerequisites, filtering, return behavior, alternatives, and tier limits. It doesn't waste words on fluff. It's longer than average, but for a subscription tool with multiple parameters and lifecycle considerations, the length is justified and front-loaded with the primary scenario.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a subscription tool with no output schema. It explicitly states what the tool does not return (no immediate value), how to retrieve updates (polling or webhook), how to terminate (arena_cancel_subscription), and the tier constraints. It leaves no ambiguity about the tool's lifecycle, which is critical for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents all 5 parameters (100% coverage), so the baseline is 3. The description adds meaningful context: it clarifies that signal_types narrows to BUY-only or SELL-only, explains the delivery_method options explicitly, notes webhook_url is only required when delivery_method=webhook, and describes expires_at behavior. It also explains ampel_config_id as referring to an existing config in the same user account, which adds value beyond the schema's brief description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise purpose: 'Notify me when this signal flips?' and specifies the trigger condition ('when an existing Ampel-Config's signal flips (BUY ↔ SELL)'). It clearly identifies the resource (signal alerts on an ampel-config) and the action (subscribe). It also differentiates itself from siblings like arena_get_signal_status (current state) and arena_cancel_subscription, so an agent can tell them apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance: it is a standing subscription for change notifications, contrasting with 'For the CURRENT value instead of a change notification, call the matching read tool.' It also explains the prerequisite that the ampel-config must exist in the web UI, and describes the delivery options (polling vs webhook) with references to arena_check_subscription_updates and arena_cancel_subscription. This covers when to use it and provides alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arena_suggest_grid_rangeSuggest a Grid RangeAInspect

Which price range should my grid bot use? Answers the question arena_run_grid_backtest deliberately leaves open (its own description says: treat range choice as part of the hypothesis). Returns TWO independent range suggestions side by side: iv_anchored (BTCUSDT/ETHUSDT only — sized from option-implied volatility, Deribit DVOL Index; the methodically grounded answer) and recent_volatility (7 trading days of realized volatility before anchor_date — the method exchange auto-modes use, available for all pairs). When both exist and disagree strongly, the options market expects a different volatility regime than the recent past showed — that disagreement is information. Output field names (low_price, high_price, grid_count, grid_type) map 1:1 onto arena_run_grid_backtest inputs. Inputs: pair (required), anchor_date, sigma_mult (IV range width in sigmas, default 1.5), dte (IV horizon in days, default 30). For a historical backtest set anchor_date to your start_date so the volatility range matches the entry, not today; iv_anchored always reflects the latest IV snapshot regardless of anchor_date. Free tier limited to BTCUSDT/ETHUSDT (same gate as the grid backtest itself). [Free tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
dteNoTarget horizon in days for the IV range. Default 30 (matches the 30d IV tenor).
pairYesCrypto pair symbol, e.g. BTCUSDT. Free tier: BTCUSDT or ETHUSDT only.
sigma_multNoIV range width in sigma multiples. Default 1.5 (covers ~87% of log-normal moves); larger = wider range, fewer range exits, less oscillation capture.
anchor_dateNoYYYY-MM-DD. The realized-volatility range is built from the 7 days BEFORE this date — set it to your backtest start_date. Default: today.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently states that iv_anchored is only available for BTCUSDT/ETHUSDT, that it always reflects the latest IV snapshot regardless of anchor_date, and that recent_volatility uses 7 days of realized volatility. It also discloses free-tier restrictions and how output fields map to backtest inputs. No side effects are mentioned, but as a suggestion tool, this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat long but each sentence contributes value. It front-loads the primary purpose and then details the two methods, input semantics, and usage guidance. While it could be trimmed slightly without losing core info, the structure is logical and the depth is justified for a tool that bridges to a complex backtest workflow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema, the description explains the output fields (low_price, high_price, grid_count, grid_type) and their exact mapping to arena_run_grid_backtest inputs. It covers the two independent suggestion methods, parameter behaviors, historical usage, and free-tier constraints. An agent has everything needed to invoke it correctly and interpret the results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes all four parameters with 100% coverage, so the baseline is 3. The description adds meaningful context beyond the schema: it explains that anchor_date should be set to start_date for historical backtests, clarifies that iv_anchored ignores anchor_date, and elaborates on sigma_mult (e.g., default 1.5 covers ~87% of log-normal moves). This enhances parameter understanding beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to suggest a price range for a grid bot, explicitly answering the question that arena_run_grid_backtest leaves open. It specifies it returns two independent range suggestions (iv_anchored and recent_volatility) and explains their basis, distinguishing it from siblings by naming the alternative tool it complements.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear guidance on when to use the tool: when you need a range for a grid bot, and importantly, it explains how to set anchor_date for historical backtests (to match the entry date). It also notes free-tier limitations and the pair constraint. It doesn't explicitly say when NOT to use it or name alternative tools beyond the backtest, but the context is strong enough for an agent to decide correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_strategyValidate a strategy/signal (honest backtest)AInspect

Does this strategy survive an honest test? Backtest a trading strategy honestly — look-ahead-aware validation with Deflated-Sharpe-Ratio / multiple-testing correction (Bailey & López de Prado). Returns an EVIDENCE verdict (insufficient_evidence | anecdote | failed_oos | passed_oos) plus metrics, flags and caveats — NOT a buy/sell recommendation. Call this before acting on a strategy or signal list. Accepts a named catalog strategy (type=rules), a timestamped BUY/SELL signal list (signal_list), or a timestamped trade list (trade_list). Checks: realistic next-bar fills (look-ahead/optimism), net of cost, out-of-sample split, and a hard 30-round-trip sample gate (under 30 is always "anecdote"). Not reproducible via generic backtest tools that ignore overfitting. [API Pro tier]

ParametersJSON Schema
NameRequiredDescriptionDefault
oosNoHow the claim is tested out-of-sample. Omit for the default split — the out-of-sample part is what separates a finding from a fit.
costsNoTrading costs. Default 10 bps (crypto) / 5 bps (else) — a gross-only claim usually shrinks once these apply.
marketYesWhich market the claim is about — prices are re-fetched from here, not taken from you.
windowYesPeriod over which the claim is checked.
strategyYesThe claim being validated — supply exactly one of: a catalog strategy (type=rules), your signals (type=signal_list) or your finished trades (type=trade_list).

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It fully discloses the return format (EVIDENCE verdict plus metrics, flags, caveats), the checks performed (look-ahead-aware, net of cost, out-of-sample split, 30-round-trip gate), and explicitly states it is NOT a recommendation. It also mentions the 'API Pro tier' access constraint, which is not covered elsewhere. This is exceptional transparency that goes well beyond a typical description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact yet comprehensive, covering purpose, inputs, checks, output, and access in about 150 words. It is front-loaded with the core question and key details, with every sentence adding value. While the density might benefit from bullet points, it is well-structured and appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema is thorough (100% coverage), and the description explains the tool's behavior, returns an EVIDENCE verdict, and lists the checks performed. It does not provide an output schema, but it names the possible verdict values. It also mentions the Pro tier. For a tool with nested objects and multiple input types, this description, combined with the detailed schema, is complete enough for an agent to know when and how to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter is already well documented. The description adds context about the input types (rules, signal_list, trade_list) and the overall purpose, but does not add detailed parameter-specific guidance beyond what the schema provides. The 'API Pro tier' note is access-related, not parameter semantics. Given the high schema coverage, a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear question and states the tool's function: 'Backtest a trading strategy honestly' with a specific methodology (Deflated-Sharpe-Ratio / multiple-testing correction). It lists the three input types (rules, signal_list, trade_list), returns an EVIDENCE verdict, and explicitly states it is NOT a buy/sell recommendation. It also distinguishes itself from generic backtest tools, making its purpose unambiguous and well differentiated among the many arena_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises 'Call this before acting on a strategy or signal list' and notes it is 'not reproducible via generic backtest tools that ignore overfitting,' giving clear when-to-use context. However, it does not explicitly name sibling tools such as arena_run_backtest or arena_get_backtest, nor does it specify when not to use it (e.g., if you only need a simple backtest). This leaves some ambiguity but still provides strong usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool update
    • Addedarena_get_chart
  2. 3 tool updates
    • Changedarena_compare_strategies1 field changed
      • addedInput schema / properties / filters / properties / stochRsiWeekly
        Added value: +{
        +  "description": "Asset-specific weekly Stoch-RSI gate: entries only while the pair's weekly StochRSI(14) sits above its SMA(3). Default false.",
        +  "type": "boolean"
        +}
    • Changedarena_run_backtest1 field changed
      • addedInput schema / properties / filters / properties / stochRsiWeekly
        Added value: +{
        +  "description": "Asset-specific weekly Stoch-RSI gate: entries only while the pair's weekly StochRSI(14) sits above its SMA(3). Default false.",
        +  "type": "boolean"
        +}
    • Changedarena_run_universe_backtest1 field changed
      • addedInput schema / properties / filters / properties / stochRsiWeekly
        Added value: +{
        +  "description": "Asset-specific weekly Stoch-RSI gate: entries only while the pair's weekly StochRSI(14) sits above its SMA(3). Default false.",
        +  "type": "boolean"
        +}
  3. 5 tool updates
    • Changedarena_get_bullmarket_ampel3 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / history_days
        Added value: +{
        +  "description": "Days of stage_history to return (1-365, default 30). Each row carries active_count plus all five per-stage booleans, so stage flips are readable per day instead of only via the derived `since` of the current run.",
        +  "maximum": 365,
        +  "minimum": 1,
        +  "type": "integer"
        +}
    • Changedarena_get_fear_greed2 fields changed
      • changedInput schema / properties / days / description
        Previous value: -"How many recent daily readings to return (1-365, default 90). The full history since 2018 is deliberately not offered here — it is ~3,100 points and does not fit a tool response."New value: +"How many daily readings to return (1-365, default 90). The full history since 2018 is deliberately not offered in one response — it is ~3,100 points and does not fit a tool response. The cap limits window SIZE, not position: combine with end_date to read any window since 2018."
      • addedInput schema / properties / end_date
        Added value: +{
        +  "description": "Last day of the window (YYYY-MM-DD, inclusive). Positions the window anywhere in the history since 2018-02 — e.g. end_date=2025-10-06 answers \"what was sentiment at the October 2025 top\". Omit for a window ending today. value/classification/as_of describe the LAST day of the window; cadence/tempo (Pro+) compute on the history up to end_date only, never on later data.",
        +  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        +  "type": "string"
        +}
    • Changedarena_get_max_pain1 field changed
      • addedInput schema / properties / include_gex
        Added value: +{
        +  "description": "Default false (response unchanged). DERIBIT_BTC only. When true, each upcoming expiry carries a `gex` block plus `gex_totals` across the whole book: Black-Scholes gamma notional (USD per 1 % spot move) per 2.5 % band from LIVE Deribit mark IV per strike (gex_data_as_of names the fetch, ~10 min cache — a different observation time than the 02:00 UTC snapshot fields). The dealer SIGN is an assumption, not a measurement: both conventions are published side by side (assuming_dealers_short_all, assuming_squeezemetrics_convention) with a zero_gamma_level each; where they disagree, the data does not know the answer. Tau floor 2 h near expiry (tau_clamped flags it); instruments without usable IV are excluded and counted.",
        +  "type": "boolean"
        +}
    • Changedarena_get_pulse_history1 field changed
      • addedInput schema / properties / include_components
        Added value: +{
        +  "description": "Default false (rows carry date, score, band only). When true, each row also carries the 8 stored component readings of that day; window capped at 365 days.",
        +  "type": "boolean"
        +}
    • Addedarena_get_signal_events
  4. 1 tool update
    • Changedarena_get_max_pain1 field changed
      • addedInput schema / properties / include_strike_ladder
        Added value: +{
        +  "description": "Default false (response unchanged). When true, every expiry carries a `strike_ladder`: open interest per 2.5 % price band around the snapshot spot (±25 %, calls/puts separate, absolute contracts, share_pct), below_range/above_range sums, max_pain_recomputed (cross-check against the stored level) and `delta` vs the previous day's snapshot on the same band grid (null with delta_reason when there is none). OI is a stock, not a side — no hedge direction follows; the note travels with the response.",
        +  "type": "boolean"
        +}
  5. 1 tool update
    • Changedarena_get_platform_activity1 field changed
      • addedInput schema / properties / detail
        Added value: +{
        +  "description": "'summary' = totals + top-3 lists (~2 KB, names what it truncates); 'full' (default) = all 11 blocks (~53 KB incl. strategyAssetMatrix and daily series).",
        +  "enum": [
        +    "summary",
        +    "full"
        +  ],
        +  "type": "string"
        +}
  6. 5 tool updates
    • Addedarena_batch
    • Addedarena_get_kimchi_premium
    • Changedarena_get_max_pain2 fields changed
      • changedInput schema / properties / market / description
        Previous value: -"Options market. Currently only 'DERIBIT_BTC' (default). IBIT planned."New value: +"Options market: 'DERIBIT_BTC' (default) or 'IBIT' (BlackRock spot-ETF options, collected since 2026-08-24; settlement-timing fields are null until evidenced)."
      • changedInput schema / properties / market / enum
        Previous value: -[
        -  "DERIBIT_BTC"
        -]New value: +[
        +  "DERIBIT_BTC",
        +  "IBIT"
        +]
    • Changedarena_get_max_pain_history2 fields changed
      • changedInput schema / properties / market / description
        Previous value: -"Options market. Currently only 'DERIBIT_BTC' (default)."New value: +"Options market: 'DERIBIT_BTC' (default) or 'IBIT' (collected since 2026-08-24 — history is correspondingly short)."
      • changedInput schema / properties / market / enum
        Previous value: -[
        -  "DERIBIT_BTC"
        -]New value: +[
        +  "DERIBIT_BTC",
        +  "IBIT"
        +]
    • Addedarena_get_taker_imbalance
  7. 85 tool updates
    • Changedarena_cancel_subscription3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "subscription_id",
        -  "context"
        -]New value: +[
        +  "subscription_id"
        +]
    • Changedarena_check_subscription_updates2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_compare_strategies4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / asset_type / description
        Previous value: -"Asset class. Use 'crypto' unless you are explicitly backtesting a tokenized real-world asset."New value: +"Asset class. Use 'crypto' unless you are explicitly backtesting a tokenized real-world asset. Note: tokenized stocks/ETFs/gold trade AS crypto pairs (e.g. spybUSDT, qqqbUSDT) — there is no separate stocks/forex backtest surface; non-crypto asset classes were retired."
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "strategies",
        -  "pair",
        -  "asset_type",
        -  "interval",
        -  "date_from",
        -  "context"
        -]New value: +[
        +  "strategies",
        +  "pair",
        +  "asset_type",
        +  "interval",
        +  "date_from"
        +]
    • Changedarena_dip_decision3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_dip_scenario3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "preset",
        -  "invalidation",
        -  "context"
        -]New value: +[
        +  "preset",
        +  "invalidation"
        +]
    • Changedarena_get_altcoin_season2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_altcoin_season_history3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_backtest3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "id",
        -  "context"
        -]New value: +[
        +  "id"
        +]
    • Changedarena_get_backtest_trades3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "id",
        -  "context"
        -]New value: +[
        +  "id"
        +]
    • Changedarena_get_btc_macro_correlations2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_btc_market_structure2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_bullmarket_ampel2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_cost_basis_spread2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_cycle3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_cycle_history3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_drift_log3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_edge_reports3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "market",
        -  "context"
        -]New value: +[
        +  "market"
        +]
    • Changedarena_get_etf_flows3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_fear_greed3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_filter_insights2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_funding_rate2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_funding_rate_history3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_gem_score3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "coingecko_id",
        -  "context"
        -]New value: +[
        +  "coingecko_id"
        +]
    • Changedarena_get_gem_scores3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_gem_validation3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_halvings2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_hash_ribbons2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_historical_analog3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "preset",
        -  "context"
        -]New value: +[
        +  "preset"
        +]
    • Changedarena_get_indicator_snapshot3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_iv_snapshot3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "currency",
        -  "context"
        -]New value: +[
        +  "currency"
        +]
    • Changedarena_get_job_status3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "job_id",
        -  "context"
        -]New value: +[
        +  "job_id"
        +]
    • Changedarena_get_key_levels2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_knowledge3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "type",
        -  "subject",
        -  "context"
        -]New value: +[
        +  "type",
        +  "subject"
        +]
    • Changedarena_get_ma_distance_history3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_macro_regime2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_max_pain3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_max_pain_history3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_mayer_multiple2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_mayer_multiple_history3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_onchain_history3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "series_id",
        -  "context"
        -]New value: +[
        +  "series_id"
        +]
    • Changedarena_get_onchain_latest3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "series_id",
        -  "context"
        -]New value: +[
        +  "series_id"
        +]
    • Changedarena_get_ontology_term3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "term",
        -  "context"
        -]New value: +[
        +  "term"
        +]
    • Changedarena_get_platform_activity3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_pulse2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_pulse_history3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_report_status3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "job_id",
        -  "context"
        -]New value: +[
        +  "job_id"
        +]
    • Changedarena_get_robustness_field3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "strategy",
        -  "interval",
        -  "pair",
        -  "user_cagr",
        -  "context"
        -]New value: +[
        +  "strategy",
        +  "interval",
        +  "pair",
        +  "user_cagr"
        +]
    • Changedarena_get_sentiment3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_shared_backtest3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "share_id",
        -  "context"
        -]New value: +[
        +  "share_id"
        +]
    • Changedarena_get_signal_context3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "strategy",
        -  "pair",
        -  "context"
        -]New value: +[
        +  "strategy",
        +  "pair"
        +]
    • Changedarena_get_signal_status3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "strategy",
        -  "pair",
        -  "interval",
        -  "context"
        -]New value: +[
        +  "strategy",
        +  "pair",
        +  "interval"
        +]
    • Changedarena_get_spot_price2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_stablecoin_supply2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_sth_cost_basis2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_strategy_filter_effect3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "strategy",
        -  "asset",
        -  "context"
        -]New value: +[
        +  "strategy",
        +  "asset"
        +]
    • Changedarena_get_strategy_insights3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_strategy_performance3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "strategy",
        -  "asset",
        -  "context"
        -]New value: +[
        +  "strategy",
        +  "asset"
        +]
    • Changedarena_get_strategy_performance_by_regime3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "strategy",
        -  "asset",
        -  "context"
        -]New value: +[
        +  "strategy",
        +  "asset"
        +]
    • Changedarena_get_trend_channels3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_universe3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "universe_id",
        -  "context"
        -]New value: +[
        +  "universe_id"
        +]
    • Changedarena_get_volatility_history3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_volatility_insights3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_volatility_phases3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_get_volatility_recommendations3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "pair",
        -  "context"
        -]New value: +[
        +  "pair"
        +]
    • Changedarena_get_winners3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_is_distinguishable3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "a",
        -  "b",
        -  "axes",
        -  "context"
        -]New value: +[
        +  "a",
        +  "b",
        +  "axes"
        +]
    • Changedarena_list_backtests3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_list_knowledge2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_list_onchain_series2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_list_strategies3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_list_subscriptions2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_list_universes2 fields changed
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_quote_report3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "strategy",
        -  "universe_tier",
        -  "interval",
        -  "period_label",
        -  "context"
        -]New value: +[
        +  "strategy",
        +  "universe_tier",
        +  "interval",
        +  "period_label"
        +]
    • Changedarena_run_backtest4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / asset_type / description
        Previous value: -"Asset class. Use 'crypto' unless you are explicitly backtesting a tokenized real-world asset."New value: +"Asset class. Use 'crypto' unless you are explicitly backtesting a tokenized real-world asset. Note: tokenized stocks/ETFs/gold trade AS crypto pairs (e.g. spybUSDT, qqqbUSDT) — there is no separate stocks/forex backtest surface; non-crypto asset classes were retired."
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "strategy",
        -  "pair",
        -  "asset_type",
        -  "interval",
        -  "date_from",
        -  "context"
        -]New value: +[
        +  "strategy",
        +  "pair",
        +  "asset_type",
        +  "interval",
        +  "date_from"
        +]
    • Changedarena_run_grid_backtest3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "pair",
        -  "start_date",
        -  "end_date",
        -  "total_investment",
        -  "low_price",
        -  "high_price",
        -  "grid_count",
        -  "grid_type",
        -  "fee_rate",
        -  "context"
        -]New value: +[
        +  "pair",
        +  "start_date",
        +  "end_date",
        +  "total_investment",
        +  "low_price",
        +  "high_price",
        +  "grid_count",
        +  "grid_type",
        +  "fee_rate"
        +]
    • Changedarena_run_universe_backtest3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "strategy",
        -  "interval",
        -  "date_from",
        -  "context"
        -]New value: +[
        +  "strategy",
        +  "interval",
        +  "date_from"
        +]
    • Changedarena_share_grid_backtest3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "run_id",
        -  "context"
        -]New value: +[
        +  "run_id"
        +]
    • Addedarena_status
    • Changedarena_subscribe_bullmarket_stage3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_subscribe_cycle_changes3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_subscribe_pulse_changes3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "context"
        -]
    • Changedarena_subscribe_signal_alerts3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "ampel_config_id",
        -  "context"
        -]New value: +[
        +  "ampel_config_id"
        +]
    • Changedarena_suggest_grid_range3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "pair",
        -  "context"
        -]New value: +[
        +  "pair"
        +]
    • Removedget_more_tools
    • Changedvalidate_strategy3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / context
        Removed value: -{
        -  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "strategy",
        -  "market",
        -  "window",
        -  "context"
        -]New value: +[
        +  "strategy",
        +  "market",
        +  "window"
        +]
  8. 1 tool update
    • Addedarena_get_cost_basis_spread
  9. 3 tool updates
    • Addedarena_get_halvings
    • Changedarena_get_historical_analog3 fields changed
      • addedInput schema / properties / condition_on_direction
        Added value: +{
        +  "description": "quiet_volatility only. Condition episodes on the direction of the FIRST post-anchor move (sign of the direction_window_days-day return). Horizons <= direction_window_days are suppressed as circular. Sets study_finding_applies=false.",
        +  "enum": [
        +    "up",
        +    "down"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / direction_window_days
        Added value: +{
        +  "description": "Classification window for condition_on_direction (default 5). Only meaningful together with condition_on_direction.",
        +  "maximum": 90,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / vol_rank_threshold
        Added value: +{
        +  "description": "quiet_volatility only. Reference threshold as a FIXED step: 50 (default, below trailing median — the studied definition) or 5/10/20 (unusually quiet: RV30 below its trailing Nth percentile). Any value other than 50 sets study_finding_applies=false — the null study covered only the default.",
        +  "enum": [
        +    5,
        +    10,
        +    20,
        +    50
        +  ],
        +  "type": "number"
        +}
    • Changedarena_get_max_pain_history3 fields changed
      • addedInput schema / properties / expiry_type
        Added value: +{
        +  "description": "Filter expiries AND open_snapshots to one expiry class (label = highest level reached; the nesting booleans stay untouched). base_rates are always computed BEFORE this filter.",
        +  "enum": [
        +    "daily",
        +    "weekly",
        +    "monthly",
        +    "quarterly"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / min_contracts
        Added value: +{
        +  "description": "Only finalized expiries with total_contracts >= this (rows with unknown contracts drop out when set).",
        +  "exclusiveMinimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / snapshot_expiry_date
        Added value: +{
        +  "description": "Reduce open_snapshots[] to exactly this expiry date (YYYY-MM-DD). Only meaningful with include_open_snapshots=true.",
        +  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        +  "type": "string"
        +}
  10. 1 tool update
    • Changedarena_get_volatility_history1 field changed
      • changedInput schema / properties / fields / description
        Previous value: -"Default full. 'minimal' returns date, close, rv, rvRank, rvRankRolling, atrPctAnnRank, atrPctAnnRankRolling only — measured saving 18–20 % of characters (5,508-row series, 2026-07-31), not a fifth of the size. Combine with granularity or a from/to window for a real reduction; dropping fields alone saves less than it looks."New value: +"Default full. 'minimal' returns date, close, rv, rvRank, rvRankRolling, atrPctAnnRank, atrPctAnnRankRolling only — measured saving 18–20 % of characters (full-history series, 2026-07-31; the `size` block in the response has the figure for your actual call), not a fifth of the size. Combine with granularity or a from/to window for a real reduction; dropping fields alone saves less than it looks."
  11. 2 tool updates
    • Addedarena_share_grid_backtest
    • Addedarena_suggest_grid_range
  12. 1 tool update
    • Changedarena_get_fear_greed2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / properties / days
        Added value: +{
        +  "description": "How many recent daily readings to return (1-365, default 90). The full history since 2018 is deliberately not offered here — it is ~3,100 points and does not fit a tool response.",
        +  "maximum": 365,
        +  "minimum": 1,
        +  "type": "integer"
        +}
  13. 3 tool updates
    • Addedarena_get_ma_distance_history
    • Addedarena_get_platform_activity
    • Addedarena_get_signal_context

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Local-first backtesting engine with built-in overfitting detection (PBO, deflated Sharpe, bootstrap CI, walk-forward) and a native MCP server for AI agents to validate trading strategies.
    4
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides tools to research crypto trading strategies via backtesting, walk-forward validation, and paper trading, with a deflated-Sharpe overfitting check. Enables natural-language-driven analysis and interpretation of strategy performance.
    3
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.6/5.0
Disambiguation2/5

Many tools cover overlapping market indicators (e.g., cycle state, pulse, bullmarket ampel, volatility phases) and several share similar get_*_history patterns, which could cause an agent to select the wrong one. However, each tool has detailed descriptions with explicit references to related tools to reduce ambiguity.

Naming Consistency3/5

Tool names generally follow a verb_noun pattern (arena_get_*, arena_list_*, arena_run_*, arena_subscribe_*), but there are inconsistencies such as 'validate_strategy' (no arena_ prefix), 'arena_status' (not a clear verb_noun), and variations like 'arena_run_grid_backtest' vs 'arena_run_backtest'.

Tool Count2/5

With 84 tools, the server is heavily over-scoped for a typical MCP server, likely causing navigation and selection overhead. While the domain (crypto backtesting and analytics) is broad, 84 tools exceed reasonable coherence and impose a high cognitive load.

Completeness4/5

The tool surface covers a wide range of analytics (market indicators, backtesting, validation, alerts, subscriptions, reports) with few obvious dead ends. Minor gaps exist like lack of direct portfolio management or strategy editing, but core workflows are well covered.