Skip to main content
Glama

getTopTokens

Read-onlyIdempotent

Get the top tokens on one network ranked by volume, liquidity, transactions, FDV, or 24h price change, returned under 'results' with has_next_page and next_cursor. Read-only and keyless. Use for 'top gainers on Solana', 'highest-volume tokens on Base', or 'biggest tokens by FDV on ethereum'. For arbitrary numeric filters or a time window use filterNetworkTokens instead. Params: network (required slug); limit (default 50, max 100); cursor (pass previous next_cursor to page); sort_by (default 'volume_usd_24h', alias order_by), noting that ranking by raw price is unsupported and silently falls back to volume; sort_dir asc/desc (default 'desc', alias sort).

Input Schema

NameRequiredDescriptionDefault
sortNoOPTIONAL: alias of sort_dir; both are accepted. Not deprecated at the REST layer: api.dexpaprika.com itself takes sort, so use this name when calling the REST API directly.
limitNoOPTIONAL: Items per page (default: 50, max: 100)
cursorNoOPTIONAL: Pagination cursor. Pass `next_cursor` from a previous response to fetch the next page. Replaces the old page number.
networkYesREQUIRED: Network ID from getNetworks
sort_byNoOPTIONAL: Ranking field. Defaults to 'volume_usd_24h'. Prefer the canonical names (volume_usd_24h, liquidity_usd, txns_24h, fdv_usd, price_change_percentage_24h); short legacy names are still accepted. Note: ordering by price is not supported and falls back to volume. The REST API calls this parameter order_by.
order_byNoOPTIONAL: alias of sort_by; both are accepted. Not deprecated at the REST layer: api.dexpaprika.com itself takes order_by, so use this name when calling the REST API directly.
sort_dirNoOPTIONAL: Sort direction (asc/desc). Canonical parameter name. Defaults to 'desc' if neither sort_dir nor sort is provided. The REST API calls this parameter sort.
rationaleYesREQUIRED. 1-2 sentence rationale for this call (e.g. "User asked for X; calling Y to fetch Z"). Logged for MCP improvement, never shown to end users. No PII or secrets. See the server `instructions` field for the full convention and worked examples.

Output Schema

NameRequiredDescriptionDefault
queryNoEcho of the resolved query and filters the API applied.
resultsYes
next_cursorNoOpaque pagination cursor. Pass back as the `cursor` argument to fetch the next page; null/absent on the last page.
has_next_pageNoTrue if more results are available; fetch them by passing next_cursor as `cursor`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • changedOutput schema / properties / has_next_page / type
      Previous value: -"boolean"New value: +[
      +  "boolean",
      +  "null"
      +]
    • removedOutput schema / properties / query / additionalProperties
      Removed value: -{}
    • addedOutput schema / properties / query / anyOf
      Added value: +[
      +  {
      +    "additionalProperties": {},
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / query / type
      Removed value: -"object"
    • removedOutput schema / properties / results / items / additionalProperties
      Removed value: -true
    • addedOutput schema / properties / results / items / anyOf
      Added value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "added_at": {
      +        "description": "ISO 8601 timestamp when DexPaprika first indexed this token.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "chain": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "decimals": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "fdv": {
      +        "description": "Fully-diluted valuation in USD.",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "id": {
      +        "description": "Token contract address (chain-canonical form).",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "name": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "symbol": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / results / items / properties
      Removed value: -{
      -  "added_at": {
      -    "description": "ISO 8601 timestamp when DexPaprika first indexed this token.",
      -    "type": "string"
      -  },
      -  "chain": {
      -    "type": "string"
      -  },
      -  "decimals": {
      -    "type": "number"
      -  },
      -  "fdv": {
      -    "description": "Fully-diluted valuation in USD.",
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "id": {
      -    "description": "Token contract address (chain-canonical form).",
      -    "type": "string"
      -  },
      -  "name": {
      -    "type": "string"
      -  },
      -  "symbol": {
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / results / items / type
      Removed value: -"object"
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": true,
      +  "properties": {
      +    "has_next_page": {
      +      "description": "True if more results are available; fetch them by passing next_cursor as `cursor`.",
      +      "type": "boolean"
      +    },
      +    "next_cursor": {
      +      "description": "Opaque pagination cursor. Pass back as the `cursor` argument to fetch the next page; null/absent on the last page.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "query": {
      +      "additionalProperties": {},
      +      "description": "Echo of the resolved query and filters the API applied.",
      +      "type": "object"
      +    },
      +    "results": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "added_at": {
      +            "description": "ISO 8601 timestamp when DexPaprika first indexed this token.",
      +            "type": "string"
      +          },
      +          "chain": {
      +            "type": "string"
      +          },
      +          "decimals": {
      +            "type": "number"
      +          },
      +          "fdv": {
      +            "description": "Fully-diluted valuation in USD.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "id": {
      +            "description": "Token contract address (chain-canonical form).",
      +            "type": "string"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "symbol": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "results"
      +  ],
      +  "type": "object"
      +}
  3. Changed4 schema fields changed
    • changedInput schema / properties / order_by / description
      Previous value: -"DEPRECATED alias for sort_by. Both accepted; prefer sort_by going forward."New value: +"OPTIONAL: alias of sort_by; both are accepted. Not deprecated at the REST layer: api.dexpaprika.com itself takes order_by, so use this name when calling the REST API directly."
    • changedInput schema / properties / sort / description
      Previous value: -"DEPRECATED alias for sort_dir. Both accepted; prefer sort_dir going forward."New value: +"OPTIONAL: alias of sort_dir; both are accepted. Not deprecated at the REST layer: api.dexpaprika.com itself takes sort, so use this name when calling the REST API directly."
    • changedInput schema / properties / sort_by / description
      Previous value: -"OPTIONAL: Ranking field. Defaults to 'volume_usd_24h'. Prefer the canonical names (volume_usd_24h, liquidity_usd, txns_24h, fdv_usd, price_change_percentage_24h); short legacy names are still accepted. Note: ordering by price is not supported and falls back to volume."New value: +"OPTIONAL: Ranking field. Defaults to 'volume_usd_24h'. Prefer the canonical names (volume_usd_24h, liquidity_usd, txns_24h, fdv_usd, price_change_percentage_24h); short legacy names are still accepted. Note: ordering by price is not supported and falls back to volume. The REST API calls this parameter order_by."
    • changedInput schema / properties / sort_dir / description
      Previous value: -"OPTIONAL: Sort direction (asc/desc). Canonical parameter name. Defaults to 'desc' if neither sort_dir nor sort is provided."New value: +"OPTIONAL: Sort direction (asc/desc). Canonical parameter name. Defaults to 'desc' if neither sort_dir nor sort is provided. The REST API calls this parameter sort."
  4. 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 readOnly/idempotent/non-destructive, so the safety profile is covered; the description adds 'keyless' auth context, the response envelope ('results', has_next_page, next_cursor), and the non-obvious quirk that ranking by raw price silently falls back to volume. That fallback disclosure is real value beyond structured fields, though some return-shape detail overlaps the output schema.

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 and examples are front-loaded before parameters, and each sentence carries information. It is a dense single paragraph; the param recap could be trimmed since the schema already covers it, but nothing is filler.

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?

For a paged, sortable read-only listing with full schema coverage, annotations, and an output schema, the description supplies everything an agent needs: scope, examples, the alternative tool, pagination chaining, and the sort fallback caveat.

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 coverage is 100% and every parameter (limit default/max, cursor paging, sort_by enum, alias pairs) is already documented in the input schema. The description restates the same facts (defaults, aliases, price fallback) without adding format or precedence rules the schema lacks, so baseline 3 applies.

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?

States a specific verb (get) plus resource (top tokens on one network) plus the ranking dimensions supported, and names the sibling it is not (filterNetworkTokens). An agent can distinguish it from the other 19 siblings without opening a schema.

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 concrete query patterns ('top gainers on Solana', 'highest-volume tokens on Base') and an explicit exclusion: arbitrary numeric filters or a time window belong to filterNetworkTokens. The routing decision is fully resolved in the text.

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