Skip to main content
Glama

Agent Einstein — Crypto & Market Intelligence

Top Gainers and Losers

get_top_movers
Read-onlyIdempotent

The largest 24h movers across the major-cap crypto universe, gainers or losers, from a refreshed market snapshot.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sideNoWhich end of the board to return.gainers
limitNoMaximum rows (1-25).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
sideNoWhich side was asked for — gainers or losers.
limitNoRow cap applied to every list in this payload.
staleNoTrue when the snapshot is past its refresh interval.
errorsNoLegs that failed. A partial answer says so here rather than reading as a quiet market.
reasonNoWhy the payload is absent, when `available` is false.
sourceNoPrice source behind the cross-asset ranking.
idSourceNoSource of the asset identifiers.
perChainNoPer-chain movers, keyed by chain.
availableNoFalse when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.
fetchedAtNoWhen the underlying snapshot was refreshed (epoch ms or ISO-8601). Age matters: these are cached reads, not live queries.
crossAssetNoCross-asset ranking plus the universe/cohort sizes it was drawn from.
perChainUnavailableNoTrue when the per-chain leg could not be read.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / fetchedAt / description
      Previous value: -"When the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries."New value: +"When the underlying snapshot was refreshed (epoch ms or ISO-8601). Age matters: these are cached reads, not live queries."
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "available": {
      +      "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
      +      "type": "boolean"
      +    },
      +    "crossAsset": {
      +      "additionalProperties": true,
      +      "description": "Cross-asset ranking plus the universe/cohort sizes it was drawn from.",
      +      "properties": {
      +        "cohortSize": {
      +          "description": "Assets in the ranked cohort."
      +        },
      +        "gainers": {
      +          "description": "Top gainers.",
      +          "items": {},
      +          "type": "array"
      +        },
      +        "losers": {
      +          "description": "Top losers.",
      +          "items": {},
      +          "type": "array"
      +        },
      +        "universeSize": {
      +          "description": "Assets considered before filtering."
      +        }
      +      }
      +    },
      +    "errors": {
      +      "description": "Legs that failed. A partial answer says so here rather than reading as a quiet market.",
      +      "items": {
      +        "description": "Error text."
      +      },
      +      "type": "array"
      +    },
      +    "fetchedAt": {
      +      "description": "When the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries."
      +    },
      +    "idSource": {
      +      "description": "Source of the asset identifiers."
      +    },
      +    "limit": {
      +      "description": "Row cap applied to every list in this payload.",
      +      "type": "number"
      +    },
      +    "perChain": {
      +      "additionalProperties": true,
      +      "description": "Per-chain movers, keyed by chain."
      +    },
      +    "perChainUnavailable": {
      +      "description": "True when the per-chain leg could not be read."
      +    },
      +    "reason": {
      +      "description": "Why the payload is absent, when `available` is false.",
      +      "type": "string"
      +    },
      +    "side": {
      +      "description": "Which side was asked for — gainers or losers."
      +    },
      +    "source": {
      +      "description": "Price source behind the cross-asset ranking."
      +    },
      +    "stale": {
      +      "description": "True when the snapshot is past its refresh interval."
      +    }
      +  },
      +  "type": "object"
      +}
  3. Added

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds two useful behavioral facts beyond the annotations: the universe is limited to major-cap assets and the data comes from a refreshed snapshot. It still says nothing about ranking methodology or pagination/ordering, so this is only modest added 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?

A single front-loaded sentence with no filler or repetition of the title. It is efficient, though the trailing appositive 'gainers or losers, from a refreshed market snapshot' reads slightly loose rather than crisply structured.

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?

With an output schema present, the description need not explain return values, and annotations carry the safety profile. Universe scope, time window, and snapshot freshness are covered; only the definition of 'major-cap' and the ranking basis are left implicit, which is a minor gap for a two-parameter read 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?

Schema description coverage is 100% with both `side` and `limit` documented inline, including the 1-25 range, so the schema does the heavy lifting. The description's 'gainers or losers' merely restates the `side` enum without adding format or edge-case meaning, which is the expected baseline when coverage is complete.

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 names a specific resource and scope: 'the largest 24h movers across the major-cap crypto universe', with the gainers/losers dimension stated explicitly. It is clear what the tool returns, but it does not distinguish itself from sibling ranking tools such as scan_market or get_market_sentiment, so an agent must infer the boundary.

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 when-to-use guidance, no exclusions, and no named alternative among the many sibling analysis tools. The phrase 'from a refreshed market snapshot' hints at a cached-snapshot context but does not tell the agent when this tool is the right choice over scan_market or the analyze_* family.

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.