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.

  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

A3.7/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint), the description adds explicit statements about read-only public research data, no account access, no order placement, and no fund transfers. It also explains conditional response behaviors (e.g., scope=full adds por, include_flows returns flows.series), which supplements the annotation hints.

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 moderately concise but uses a list-like conditional style with several 'scope=full + ...' clauses, making it slightly verbose and harder to scan. It is not excessively long, but the structure could be improved by grouping related options more clearly.

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 description covers the main scopes, optional flags, and cross-references to a sibling tool. It clarifies the behavior of include_history (precomputed comparison fields vs raw snapshots) and event_type filtering. While it does not detail the full output schema, it provides enough context for a typical agent to understand the tool's capabilities and limitations.

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 100% of parameter descriptions, but the main description adds semantic details not present in the schema, such as the structure of flows.series[] and events[], the distinction between raw snapshots and precomputed comparison fields for include_history, and the normalized exchange name mapping. This enhances understanding beyond the schema alone.

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 identifies the resource as 'Exchange reserve snapshots by venue and asset', which is specific and distinguishes it from sibling data tools. While it lacks an explicit verb like 'Get' or 'Return', the tool name itself contains 'get_exchange_reserves' and the description makes 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 Guidelines3/5

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

The description provides a cross-reference to a sibling tool ('TVL history→get_platform_history'), giving some comparative context. However, it does not explicitly state when to prefer this tool over alternatives for exchange reserve data, leaving the usage largely implied from the title and content.

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.