Skip to main content
Glama

info_platformmetrics_get_exchange_reserves

Read-onlyIdempotent

Exchange reserve snapshots by venue and asset. scope=full adds por (PoR attestation). scope=full + include_flows=true returns flows.series[] (daily inflow/outflow/netflow). scope=full + include_events=true returns events[] (large_flow events). TVL history→get_platform_history. Read-only public research data. No account access, no order placement or fund transfers. Not investment advice.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
assetNoAsset filter: BTC|ETH|USDT|USDC; default BTC.
limitNoMax flow rows; default 100, max 400.
scopeNobasic (default)|full; full adds por + optionally flows/events.
end_dateNoYYYY-MM-DD; default today. Filter flows by part_date.
exchangeNoExchange name; empty returns all exchanges. Supports okx→okx, gate.io→gate via normalized mapping.
event_typeNoall|large_flow; filter events. Effective only when include_events=true.
start_dateNoYYYY-MM-DD; default end_date - 30d. Filter flows by part_date.
include_flowsNoscope=full only. true returns flows.series[].
history_windowNoOnly effective when include_history=true; currently only quarter is supported.
include_eventsNoscope=full only. true returns events[].
include_historyNoDefault false. true returns precomputed comparison fields only, not raw historical snapshots.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
assetYes
countYes
flowsNo
itemsYes
limitNo
scopeYes
totalYes
eventsNo
end_dateNo
exchangeYes
event_typeNo
start_dateNo
data_statusNo
duration_msYes
include_flowsNo
status_reasonNo
history_windowYes
include_eventsNo
include_historyYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed23 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedOutput schema / additionalProperties
      Added value: +false
    • addedOutput schema / properties / events / items / additionalProperties
      Added value: +false
    • changedOutput schema / properties / events / items / properties / daily_netflow_usd / type
      Previous value: -"number"New value: +[
      +  "null",
      +  "number"
      +]
    • changedOutput schema / properties / events / items / properties / large_flow_event / type
      Previous value: -"boolean"New value: +[
      +  "null",
      +  "boolean"
      +]
    • changedOutput schema / properties / events / items / properties / rolling_30d_std_usd / type
      Previous value: -"number"New value: +[
      +  "null",
      +  "number"
      +]
    • changedOutput schema / properties / events / items / properties / threshold_usd / type
      Previous value: -"number"New value: +[
      +  "null",
      +  "number"
      +]
    • changedOutput schema / properties / events / type
      Previous value: -"array"New value: +[
      +  "null",
      +  "array"
      +]
    • addedOutput schema / properties / flows / additionalProperties
      Added value: +false
    • addedOutput schema / properties / flows / properties / series / items / additionalProperties
      Added value: +false
    • changedOutput schema / properties / flows / properties / series / items / properties / daily_netflow_native / type
      Previous value: -"number"New value: +[
      +  "null",
      +  "number"
      +]
    • changedOutput schema / properties / flows / properties / series / items / properties / daily_netflow_usd / type
      Previous value: -"number"New value: +[
      +  "null",
      +  "number"
      +]
    • changedOutput schema / properties / flows / properties / series / items / properties / inflow_native / type
      Previous value: -"number"New value: +[
      +  "null",
      +  "number"
      +]
    • changedOutput schema / properties / flows / properties / series / items / properties / outflow_native / type
      Previous value: -"number"New value: +[
      +  "null",
      +  "number"
      +]
    • changedOutput schema / properties / flows / properties / series / items / properties / price_usd / type
      Previous value: -"number"New value: +[
      +  "null",
      +  "number"
      +]
    • changedOutput schema / properties / flows / properties / series / items / properties / reserve_change_1d_usd / type
      Previous value: -"number"New value: +[
      +  "null",
      +  "number"
      +]
    • changedOutput schema / properties / flows / properties / series / items / properties / reserve_change_7d_usd / type
      Previous value: -"number"New value: +[
      +  "null",
      +  "number"
      +]
    • changedOutput schema / properties / flows / properties / series / items / properties / reserve_native / type
      Previous value: -"number"New value: +[
      +  "null",
      +  "number"
      +]
    • changedOutput schema / properties / flows / properties / series / items / properties / reserve_usd / type
      Previous value: -"number"New value: +[
      +  "null",
      +  "number"
      +]
    • changedOutput schema / properties / flows / properties / series / type
      Previous value: -"array"New value: +[
      +  "null",
      +  "array"
      +]
    • changedOutput schema / properties / flows / type
      Previous value: -"object"New value: +[
      +  "null",
      +  "object"
      +]
    • addedOutput schema / properties / items / items / additionalProperties
      Added value: +true
    • changedOutput schema / properties / items / type
      Previous value: -"array"New value: +[
      +  "null",
      +  "array"
      +]
  2. Changed19 schema fields changed
    • changedInput schema / properties / asset / description
      Previous value: -"Optional asset filter: BTC|ETH|USDT|USDC."New value: +"Asset filter: BTC|ETH|USDT|USDC; default BTC."
    • addedInput schema / properties / end_date
      Added value: +{
      +  "description": "YYYY-MM-DD; default today. Filter flows by part_date.",
      +  "type": "string"
      +}
    • addedInput schema / properties / event_type
      Added value: +{
      +  "description": "all|large_flow; filter events. Effective only when include_events=true.",
      +  "type": "string"
      +}
    • changedInput schema / properties / exchange / description
      Previous value: -"Exchange name; empty keeps base onchain rollup logic."New value: +"Exchange name; empty returns all exchanges. Supports okx→okx, gate.io→gate via normalized mapping."
    • addedInput schema / properties / include_events
      Added value: +{
      +  "description": "scope=full only. true returns events[].",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / include_flows
      Added value: +{
      +  "description": "scope=full only. true returns flows.series[].",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / limit
      Added value: +{
      +  "description": "Max flow rows; default 100, max 400.",
      +  "type": "integer"
      +}
    • changedInput schema / properties / scope / description
      Previous value: -"basic (default)|full; full adds por object from dws_external_exchange_month_por_di."New value: +"basic (default)|full; full adds por + optionally flows/events."
    • addedInput schema / properties / start_date
      Added value: +{
      +  "description": "YYYY-MM-DD; default end_date - 30d. Filter flows by part_date.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / data_status
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / end_date
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / event_type
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / events
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "asset": {
      +        "type": "string"
      +      },
      +      "daily_netflow_usd": {
      +        "type": "number"
      +      },
      +      "event_type": {
      +        "type": "string"
      +      },
      +      "exchange_name": {
      +        "type": "string"
      +      },
      +      "large_flow_event": {
      +        "type": "boolean"
      +      },
      +      "metric_date": {
      +        "type": "string"
      +      },
      +      "rolling_30d_std_usd": {
      +        "type": "number"
      +      },
      +      "threshold_usd": {
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "event_type",
      +      "exchange_name",
      +      "asset",
      +      "metric_date"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / flows
      Added value: +{
      +  "properties": {
      +    "series": {
      +      "items": {
      +        "properties": {
      +          "asset": {
      +            "type": "string"
      +          },
      +          "daily_netflow_native": {
      +            "type": "number"
      +          },
      +          "daily_netflow_usd": {
      +            "type": "number"
      +          },
      +          "exchange_name": {
      +            "type": "string"
      +          },
      +          "inflow_native": {
      +            "type": "number"
      +          },
      +          "metric_date": {
      +            "type": "string"
      +          },
      +          "outflow_native": {
      +            "type": "number"
      +          },
      +          "price_usd": {
      +            "type": "number"
      +          },
      +          "reserve_change_1d_usd": {
      +            "type": "number"
      +          },
      +          "reserve_change_7d_usd": {
      +            "type": "number"
      +          },
      +          "reserve_native": {
      +            "type": "number"
      +          },
      +          "reserve_usd": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "exchange_name",
      +          "asset",
      +          "metric_date"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "series"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / include_events
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / include_flows
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / limit
      Added value: +{
      +  "type": "integer"
      +}
    • addedOutput schema / properties / start_date
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / status_reason
      Added value: +{
      +  "type": "string"
      +}
  3. Changed11 schema fields changed
    • changedInput schema / properties / asset / description
      Previous value: -"Asset e.g. BTC|ETH|USDT; empty = any asset within the exchange / rollup scope."New value: +"Optional asset filter: BTC|ETH|USDT|USDC."
    • changedInput schema / properties / exchange / description
      Previous value: -"Exchange name (e.g. Binance); empty = network-wide rollup (exchange_name ALL_EXCHANGE)."New value: +"Exchange name; empty keeps base onchain rollup logic."
    • addedInput schema / properties / history_window
      Added value: +{
      +  "description": "Only effective when include_history=true; currently only quarter is supported.",
      +  "type": "string"
      +}
    • addedInput schema / properties / include_history
      Added value: +{
      +  "description": "Default false. true returns precomputed comparison fields only, not raw historical snapshots.",
      +  "type": "boolean"
      +}
    • removedInput schema / properties / period
      Removed value: -{
      -  "description": "current|24h|7d|30d|90d on snapshot_time; empty = no time range filter. current uses the same recent window as other platform metrics (now-2d).",
      -  "type": "string"
      -}
    • addedInput schema / properties / scope
      Added value: +{
      +  "description": "basic (default)|full; full adds por object from dws_external_exchange_month_por_di.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / history_window
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / include_history
      Added value: +{
      +  "type": "boolean"
      +}
    • removedOutput schema / properties / period
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / scope
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "exchange",
      -  "asset",
      -  "period",
      -  "total",
      -  "count",
      -  "items",
      -  "duration_ms"
      -]New value: +[
      +  "exchange",
      +  "asset",
      +  "scope",
      +  "include_history",
      +  "history_window",
      +  "total",
      +  "count",
      +  "items",
      +  "duration_ms"
      +]
  4. Changed3 schema fields changed
    • changedInput schema / properties / asset / description
      Previous value: -"Asset e.g. BTC|ETH|USDT; empty = any."New value: +"Asset e.g. BTC|ETH|USDT; empty = any asset within the exchange / rollup scope."
    • changedInput schema / properties / exchange / description
      Previous value: -"Exchange name; empty = any."New value: +"Exchange name (e.g. Binance); empty = network-wide rollup (exchange_name ALL_EXCHANGE)."
    • changedInput schema / properties / period / description
      Previous value: -"24h|7d snapshot window; empty = no time filter."New value: +"current|24h|7d|30d|90d on snapshot_time; empty = no time range filter. current uses the same recent window as other platform metrics (now-2d)."
  5. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful context beyond these: it states 'Read-only public research data,' 'No account access, no order placement or fund transfers,' and 'Not investment advice.' This gives the agent a better sense of the tool's safety and purpose without contradicting the 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 compact yet dense, using only a few sentences to pack the core purpose, optional behaviors, a routing pointer, and safety disclaimers. It is front-loaded with the main action and then proceeds to details, with no filler. 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?

Given the tool's complexity (11 parameters) and the presence of an output schema, the description provides sufficient orientation: it explains the scope modes, flow/event options, and the distinction from TVL history. The safety and public-data nature are also covered. There is no obvious missing information that an agent would need to invoke 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 schema covers 100% of parameters, so the baseline is 3. The description adds value by explaining how parameters interact: e.g., 'scope=full adds por,' 'include_flows=true returns flows.series[],' and 'include_history=true returns precomputed comparison fields only, not raw historical snapshots.' This contextualizes the combination rules beyond individual parameter descriptions, raising it 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 specific verb and resource: 'Exchange reserve snapshots by venue and asset.' It immediately conveys what the tool does and distinguishes it from related tools by noting 'TVL history→get_platform_history.' This is far from a tautology and clearly differentiates it from siblings like get_platform_history or get_cex_orderbook_depth.

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 an explicit routing hint: 'TVL history→get_platform_history,' which tells the agent when to use an alternative. It also outlines optional parameter combinations (scope=full, include_flows, include_events) that clarify when those are applicable. It does not state exhaustive 'when not to use' conditions, but the guidance given is clear and actionable.

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.

TDQS

A4.1/5.0
Disambiguation5/5

Each tool targets a distinct data object and action (e.g., coin info vs rankings, market snapshot vs batch, marketdetail kline vs markettrend kline), with prefixes and descriptions clearly separated by domain. No two tools appear to serve the same purpose.

Naming Consistency5/5

All tools follow a consistent pattern: info_<domain>_<verb>_<object>, with verbs mainly get, search, and batch. The naming style is uniform across all 32 tools, making it easy to infer tool purpose from its name.

Tool Count3/5

32 tools is heavy compared to typical servers, and it exceeds the 25-tool threshold. However, the server is a comprehensive crypto data aggregator covering multiple subdomains (coin, macro, market, onchain, platform metrics), which justifies the large count to some extent. It sits at the borderline between borderline and too many.

Completeness5/5

The tool surface covers the full lifecycle for read-only research: coin discovery, rankings, search, technical analysis, onchain exploration, platform metrics, stablecoins, yield pools, bridges, and macro indicators. No critical missing functionality for the stated purpose of public research data access.