Skip to main content
Glama

Drawdown check

drawdown_check
Read-onlyIdempotent

Drawdown check: what it cost to collect the return you were shown. The coin is bought at the close of every day of its history and held for the period you name: you get the drawdown from the entry before the period was out, the share of starts that fell 30% and 50%, the days spent under water, how it ended — and, among the starts that ended in profit, the drawdown they sat through first. Spot tape, no fees, coins that died included.

Use when a return is quoted for holding a coin ("BTC did +150% in a year") and you want the fall endured on the way. With leverage use leverage_survival; to test a stop that cuts the fall, stop_loss_check.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
coinYesTicker or full pair. An unknown one comes back with the list we hold and the ones left out.
daysYesHow long it is held: 30, 90, 365 or 730.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okNofalse when we do not hold that data. Never a zero standing in for an answer.
errorNono_data when ok is false.
modelNoThe assumptions, stated.
reasonNoWhy, in one sentence, and what we do have instead.
sourceNoThe public file these numbers come from.
startsNoStart days tested. Fewer than 120 and we refuse to give a percentage.
try_insteadNoWhen ok is false: the closest call that does answer, ready to send (tool, arguments, and what changed).
same_coin_inNoWhen ok is false because this tool lacks the coin: the other tools that hold it, each with arguments ready to send.
median_return_pctNoHow the middle start ended.
share_fell_30_pctNoShare of starts that fell 30% or more from entry first.
share_fell_50_pctNoSame, 50% or more.
asset_max_drawdownNoThe coin's own biggest top-to-bottom fall, with dates and days to recover, for comparison.
share_in_profit_pctNoShare of starts that ended up.
median_worst_fall_pctNoThe middle start's worst fall from its own entry price within the hold.
median_days_under_waterNoDays of the hold spent below the entry price, middle start.
share_never_recovered_pctNoStarts that never closed back at their entry price within the hold.
median_worst_fall_among_winners_pctNoAmong the starts that ended in profit, the median fall they sat through first. The price of the number you were shown. A return without this is advertising.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "coin": "btc",
      +    "days": 365
      +  }
      +]
    • addedOutput schema / properties / same_coin_in
      Added value: +{
      +  "description": "When ok is false because this tool lacks the coin: the other tools that hold it, each with arguments ready to send.",
      +  "type": "array"
      +}
    • addedOutput schema / properties / try_instead
      Added value: +{
      +  "description": "When ok is false: the closest call that does answer, ready to send (tool, arguments, and what changed).",
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / days / enum
      Added value: +[
      +  30,
      +  90,
      +  365,
      +  730
      +]
  3. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare the safe read-only, idempotent, non-destructive profile, but the description adds substantive measurement context beyond them: spot tape, no fees, and dead coins included (an explicit survivorship-bias disclosure). It does not address data freshness or performance, so it falls just short of 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?

Purpose is front-loaded and the usage paragraph is cleanly separated, but the first sentence is dense and prose-heavy ("what it cost to collect the return you were shown") before the concrete method arrives. Every sentence still carries information.

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 an output schema present, the description need not enumerate return fields, yet it still sketches what comes back and, more importantly, defines the data universe and exclusions. Combined with annotations covering the safety profile and 100% schema coverage, nothing needed to call the tool 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 description coverage is 100% – both coin and days are documented in the schema, including the enum values and the unknown-ticker fallback behavior. The description adds only the framing "the period you name," so the 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 names a specific computation (buy at every daily close, hold for the named period) and the exact outputs (drawdown, share of starts that fell 30%/50%, days underwater, outcome). It explicitly distinguishes itself from siblings by naming leverage_survival and stop_loss_check with the conditions that select 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?

Gives a concrete trigger scenario ("when a return is quoted for holding a coin ('BTC did +150% in a year')") plus explicit alternative routing: leverage → leverage_survival, stop-cut → stop_loss_check. Both when-to-use and when-to-use-something-else are stated.

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.

Resources