Skip to main content
Glama

Backtesting Arena

Get Crypto Cycle Snapshot (BTC / ETH / SOL)

arena_get_cycle
Read-only

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 — each indicator’s 0-100 sub-score is in the score_* fields; the weights are in drivers[] under fields="full"; 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. score_fields_note explains the four score fields: z_score/z_adj_score are the composite standardized against its own history and mapped back onto the 0-100 scale, NOT statistical z-values; halving_context.ath_days_after_halving puts the observed cycle high next to days_since_halving. Pass fields="full" (BTC) for drivers[]: each indicator sub-score with its renormalized weight, contribution (they add up to raw_score — the input of the z_adj_score that signal follows) and percentile_rank against its own history. Related: arena_get_historical_analog (what followed states like this one), arena_get_bullmarket_ampel, arena_get_pulse. [Free tier]

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "arena_get_cycle"
  }
}

Input Schema

NameRequiredDescriptionDefault
assetNoWhich asset’s cycle. Default BTC. ETH/SOL return a price-derived cycle read with not_applicable fields for BTC-native indicators.
fieldsNoBTC only. 'full' adds `drivers[]` (indicator sub-scores with renormalized weight, contribution summing to raw_score, percentile_rank with basis and n) plus drivers_note.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / additionalProperties
      Removed value: -false
  2. Changed1 schema field changed
    • addedInput schema / properties / fields
      Added value: +{
      +  "description": "BTC only. 'full' adds `drivers[]` (indicator sub-scores with renormalized weight, contribution summing to raw_score, percentile_rank with basis and n) plus drivers_note.",
      +  "enum": [
      +    "full"
      +  ],
      +  "type": "string"
      +}
  3. Changed3 schema 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"
      -]
  4. First observed

TDQS

A4.5/5.0
Behavior5/5

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

With readOnlyHint=true already covering the safety profile, the description adds extensive behavioral context: point-in-time scoring, renormalized weights when components lack input, the fixed score-band nature of the signal enum, price_context drift, highlights[] semantics, and free-tier status. It also discloses important limitations, such as the 45–60 band reading as 'expansion' even during a drawdown and BTC-native indicators being returned as not_applicable for ETH/SOL.

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 front-loaded with the core purpose and contains largely substantive information rather than filler. However, it is extremely dense and long for a two-parameter tool, with many parenthetical caveats and asides that make it harder to scan than necessary.

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 complexity of a multi-indicator cycle snapshot, the minimal annotations, and the absence of an output schema, the description is thorough. It covers return structure, scoring semantics, asset-specific behavior, caveats, related tools, and access tier, leaving no major gap an agent would need before invoking 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?

Schema coverage is 100%, so both parameters are already documented in the schema. The description nevertheless adds useful semantics beyond the schema, especially what fields="full" unlocks for BTC (drivers[], renormalized weights, contribution summing to raw_score, percentile_rank) and how asset=ETH/SOL changes the returned indicator set.

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: a point-in-time crypto cycle snapshot aggregating nine named indicators for BTC by default, with per-coin ETH/SOL variants. It explicitly distinguishes itself from sibling tools like arena_get_volatility_history and names related tools, so an agent can identify its role 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 Guidelines4/5

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

The description clearly establishes default BTC usage and explains when to pass asset=ETH or asset=SOL, including that BTC-native indicators become not_applicable. It also points to alternative/related tools such as arena_get_volatility_history, arena_get_historical_analog, arena_get_bullmarket_ampel and arena_get_pulse, though it does not give explicit when-not-to-use guidance against every sibling.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.