Skip to main content
Glama

getTokenPools

Read-onlyIdempotent

Get the liquidity pools that contain a specific token on one network, returned under 'results' with has_next_page and next_cursor. Read-only and keyless. Use for 'which pools hold WETH on ethereum?' or 'liquidity venues for 0x...'. Network-scoped, so run search first if unsure of the network; unknown addresses return empty results, not an error. For the token's own price use getTokenDetails. Params: network (required); token_address (required); limit (default 10, max 100); cursor to page; sort_by (default 'volume_usd_24h', alias order_by); sort_dir asc/desc (default 'desc', alias sort). Extra params such as inversed or paired_token_address are unsupported and error.

Input Schema

TableJSON 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: Number of items per page (default: 10, max: 100)
cursorNoOPTIONAL: Pagination cursor. Pass `next_cursor` from a previous response to fetch the next page (read `has_next_page` to know if more remain). Replaces the old page number.
addressNoREMOVED alias for paired_token_address. No longer supported by the API; supplying it returns an error.
networkYesREQUIRED: Network ID from getNetworks (e.g., 'ethereum', 'solana')
reorderNoREMOVED alias for inversed. No longer supported by the API; supplying true returns an error.
sort_byNoOPTIONAL: Sort field. Canonical parameter name. Defaults to 'volume_usd_24h'. Prefer the canonical *_24h names; short legacy names (volume_usd, transactions, last_price_change_usd_24h) are still accepted. The REST API calls this parameter order_by.
inversedNoREMOVED: the pair-perspective flip is no longer supported by the API; the pools/search replacement returns pool-perspective metrics only. Supplying true returns an error. For a single pool, getPoolDetails with inversed=true still flips the perspective.
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.
token_addressYesREQUIRED: Token contract address
paired_token_addressNoREMOVED: the second-token pair filter is no longer supported by the API. Supplying it returns an error. Filter client-side on each result's tokens[] instead.

Output Schema

TableJSON 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. Changed2 schema fields changed
    • changedInput schema / properties / order_by / enum
      Previous value: -[
      -  "volume_usd_24h",
      -  "volume_usd_7d",
      -  "volume_usd_30d",
      -  "liquidity_usd",
      -  "txns_24h",
      -  "created_at",
      -  "price_usd",
      -  "price_change_percentage_24h",
      -  "price_change_percentage_6h",
      -  "price_change_percentage_1h",
      -  "price_change_percentage_5m",
      -  "volume_usd",
      -  "transactions",
      -  "last_price_change_usd_24h",
      -  "volume_24h",
      -  "volume_7d",
      -  "volume_30d",
      -  "liquidity"
      -]New value: +[
      +  "volume_usd_24h",
      +  "volume_usd_7d",
      +  "volume_usd_30d",
      +  "liquidity_usd",
      +  "txns_24h",
      +  "created_at",
      +  "price_usd",
      +  "price_change_percentage_24h",
      +  "price_change_percentage_48h",
      +  "price_change_percentage_6h",
      +  "price_change_percentage_1h",
      +  "price_change_percentage_5m",
      +  "volume_usd",
      +  "transactions",
      +  "last_price_change_usd_24h",
      +  "volume_24h",
      +  "volume_7d",
      +  "volume_30d",
      +  "liquidity"
      +]
    • changedInput schema / properties / sort_by / enum
      Previous value: -[
      -  "volume_usd_24h",
      -  "volume_usd_7d",
      -  "volume_usd_30d",
      -  "liquidity_usd",
      -  "txns_24h",
      -  "created_at",
      -  "price_usd",
      -  "price_change_percentage_24h",
      -  "price_change_percentage_6h",
      -  "price_change_percentage_1h",
      -  "price_change_percentage_5m",
      -  "volume_usd",
      -  "transactions",
      -  "last_price_change_usd_24h",
      -  "volume_24h",
      -  "volume_7d",
      -  "volume_30d",
      -  "liquidity"
      -]New value: +[
      +  "volume_usd_24h",
      +  "volume_usd_7d",
      +  "volume_usd_30d",
      +  "liquidity_usd",
      +  "txns_24h",
      +  "created_at",
      +  "price_usd",
      +  "price_change_percentage_24h",
      +  "price_change_percentage_48h",
      +  "price_change_percentage_6h",
      +  "price_change_percentage_1h",
      +  "price_change_percentage_5m",
      +  "volume_usd",
      +  "transactions",
      +  "last_price_change_usd_24h",
      +  "volume_24h",
      +  "volume_7d",
      +  "volume_30d",
      +  "liquidity"
      +]
  2. Changed3 schema fields changed
    • changedInput schema / properties / order_by / enum
      Previous value: -[
      -  "volume_usd_24h",
      -  "volume_usd_7d",
      -  "volume_usd_30d",
      -  "liquidity_usd",
      -  "txns_24h",
      -  "created_at",
      -  "price_usd",
      -  "price_change_percentage_24h",
      -  "volume_usd",
      -  "transactions",
      -  "last_price_change_usd_24h",
      -  "volume_24h",
      -  "volume_7d",
      -  "volume_30d",
      -  "liquidity"
      -]New value: +[
      +  "volume_usd_24h",
      +  "volume_usd_7d",
      +  "volume_usd_30d",
      +  "liquidity_usd",
      +  "txns_24h",
      +  "created_at",
      +  "price_usd",
      +  "price_change_percentage_24h",
      +  "price_change_percentage_6h",
      +  "price_change_percentage_1h",
      +  "price_change_percentage_5m",
      +  "volume_usd",
      +  "transactions",
      +  "last_price_change_usd_24h",
      +  "volume_24h",
      +  "volume_7d",
      +  "volume_30d",
      +  "liquidity"
      +]
    • changedInput schema / properties / sort_by / enum
      Previous value: -[
      -  "volume_usd_24h",
      -  "volume_usd_7d",
      -  "volume_usd_30d",
      -  "liquidity_usd",
      -  "txns_24h",
      -  "created_at",
      -  "price_usd",
      -  "price_change_percentage_24h",
      -  "volume_usd",
      -  "transactions",
      -  "last_price_change_usd_24h",
      -  "volume_24h",
      -  "volume_7d",
      -  "volume_30d",
      -  "liquidity"
      -]New value: +[
      +  "volume_usd_24h",
      +  "volume_usd_7d",
      +  "volume_usd_30d",
      +  "liquidity_usd",
      +  "txns_24h",
      +  "created_at",
      +  "price_usd",
      +  "price_change_percentage_24h",
      +  "price_change_percentage_6h",
      +  "price_change_percentage_1h",
      +  "price_change_percentage_5m",
      +  "volume_usd",
      +  "transactions",
      +  "last_price_change_usd_24h",
      +  "volume_24h",
      +  "volume_7d",
      +  "volume_30d",
      +  "liquidity"
      +]
    • 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": {
      +          "chain": {
      +            "description": "Network slug (e.g. 'ethereum'). Note: also exposed as 'network' on some endpoints.",
      +            "type": "string"
      +          },
      +          "created_at": {
      +            "description": "ISO 8601 pool-creation timestamp.",
      +            "type": "string"
      +          },
      +          "created_at_block_number": {
      +            "type": "number"
      +          },
      +          "dex_id": {
      +            "type": "string"
      +          },
      +          "dex_name": {
      +            "type": "string"
      +          },
      +          "fee": {
      +            "description": "Pool fee (units depend on DEX; null for some DEXes).",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "id": {
      +            "description": "Pool contract address.",
      +            "type": "string"
      +          },
      +          "last_price": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "last_price_usd": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "tokens": {
      +            "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"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "results"
      +  ],
      +  "type": "object"
      +}
  3. Changed2 schema fields changed
    • changedInput schema / properties / order_by / enum
      Previous value: -[
      -  "volume_usd_24h",
      -  "volume_usd_7d",
      -  "volume_usd_30d",
      -  "liquidity_usd",
      -  "txns_24h",
      -  "created_at",
      -  "price_usd",
      -  "price_change_percentage_24h",
      -  "price_change_percentage_6h",
      -  "price_change_percentage_1h",
      -  "price_change_percentage_5m",
      -  "volume_usd",
      -  "transactions",
      -  "last_price_change_usd_24h",
      -  "volume_24h",
      -  "volume_7d",
      -  "volume_30d",
      -  "liquidity"
      -]New value: +[
      +  "volume_usd_24h",
      +  "volume_usd_7d",
      +  "volume_usd_30d",
      +  "liquidity_usd",
      +  "txns_24h",
      +  "created_at",
      +  "price_usd",
      +  "price_change_percentage_24h",
      +  "volume_usd",
      +  "transactions",
      +  "last_price_change_usd_24h",
      +  "volume_24h",
      +  "volume_7d",
      +  "volume_30d",
      +  "liquidity"
      +]
    • changedInput schema / properties / sort_by / enum
      Previous value: -[
      -  "volume_usd_24h",
      -  "volume_usd_7d",
      -  "volume_usd_30d",
      -  "liquidity_usd",
      -  "txns_24h",
      -  "created_at",
      -  "price_usd",
      -  "price_change_percentage_24h",
      -  "price_change_percentage_6h",
      -  "price_change_percentage_1h",
      -  "price_change_percentage_5m",
      -  "volume_usd",
      -  "transactions",
      -  "last_price_change_usd_24h",
      -  "volume_24h",
      -  "volume_7d",
      -  "volume_30d",
      -  "liquidity"
      -]New value: +[
      +  "volume_usd_24h",
      +  "volume_usd_7d",
      +  "volume_usd_30d",
      +  "liquidity_usd",
      +  "txns_24h",
      +  "created_at",
      +  "price_usd",
      +  "price_change_percentage_24h",
      +  "volume_usd",
      +  "transactions",
      +  "last_price_change_usd_24h",
      +  "volume_24h",
      +  "volume_7d",
      +  "volume_30d",
      +  "liquidity"
      +]
  4. Changed2 schema fields changed
    • changedInput schema / properties / order_by / enum
      Previous value: -[
      -  "volume_usd_24h",
      -  "volume_usd_7d",
      -  "volume_usd_30d",
      -  "liquidity_usd",
      -  "txns_24h",
      -  "created_at",
      -  "price_usd",
      -  "price_change_percentage_24h",
      -  "volume_usd",
      -  "transactions",
      -  "last_price_change_usd_24h",
      -  "volume_24h",
      -  "volume_7d",
      -  "volume_30d",
      -  "liquidity"
      -]New value: +[
      +  "volume_usd_24h",
      +  "volume_usd_7d",
      +  "volume_usd_30d",
      +  "liquidity_usd",
      +  "txns_24h",
      +  "created_at",
      +  "price_usd",
      +  "price_change_percentage_24h",
      +  "price_change_percentage_6h",
      +  "price_change_percentage_1h",
      +  "price_change_percentage_5m",
      +  "volume_usd",
      +  "transactions",
      +  "last_price_change_usd_24h",
      +  "volume_24h",
      +  "volume_7d",
      +  "volume_30d",
      +  "liquidity"
      +]
    • changedInput schema / properties / sort_by / enum
      Previous value: -[
      -  "volume_usd_24h",
      -  "volume_usd_7d",
      -  "volume_usd_30d",
      -  "liquidity_usd",
      -  "txns_24h",
      -  "created_at",
      -  "price_usd",
      -  "price_change_percentage_24h",
      -  "volume_usd",
      -  "transactions",
      -  "last_price_change_usd_24h",
      -  "volume_24h",
      -  "volume_7d",
      -  "volume_30d",
      -  "liquidity"
      -]New value: +[
      +  "volume_usd_24h",
      +  "volume_usd_7d",
      +  "volume_usd_30d",
      +  "liquidity_usd",
      +  "txns_24h",
      +  "created_at",
      +  "price_usd",
      +  "price_change_percentage_24h",
      +  "price_change_percentage_6h",
      +  "price_change_percentage_1h",
      +  "price_change_percentage_5m",
      +  "volume_usd",
      +  "transactions",
      +  "last_price_change_usd_24h",
      +  "volume_24h",
      +  "volume_7d",
      +  "volume_30d",
      +  "liquidity"
      +]
  5. 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: Sort field. Canonical parameter name. Defaults to 'volume_usd_24h'. Prefer the canonical *_24h names; short legacy names (volume_usd, transactions, last_price_change_usd_24h) are still accepted."New value: +"OPTIONAL: Sort field. Canonical parameter name. Defaults to 'volume_usd_24h'. Prefer the canonical *_24h names; short legacy names (volume_usd, transactions, last_price_change_usd_24h) are still accepted. 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."
  6. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), and the description still adds non-obvious behavior: keyless auth, the response envelope ('results' with has_next_page/next_cursor), empty-result-rather-than-error semantics, and that extra params like inversed or paired_token_address error out. That is meaningful disclosure beyond the structured fields.

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?

Front-loaded with purpose and routing guidance, and every sentence carries information. The trailing 'Params:' inventory is somewhat redundant with the fully-documented schema and slightly inflates length, but it is dense rather than padded.

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?

Despite 13 parameters, 3 required, and a mandatory rationale field, the description covers pagination, sorting, network scoping, unsupported params, and error behavior. An output schema exists, so return-value detail is not required and the brief envelope mention is sufficient.

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?

Schema description coverage is 100%, so the baseline is 3; the description goes further by restating defaults, max limit, and the alias pairs (sort_dir/sort, sort_by/order_by) and by warning which legacy params are unsupported. It largely mirrors the schema text rather than adding new semantics, so it stops short of a 5.

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 and resource ('Get the liquidity pools that contain a specific token on one network'), including the scope constraint (network-scoped) that separates it from getNetworkPools and getDexPools. The worked examples ('which pools hold WETH on ethereum?') make the resource unambiguous.

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?

Names an alternative and the condition that selects it: 'For the token's own price use getTokenDetails', plus 'run search first if unsure of the network'. It also sets expectations for edge cases ('unknown addresses return empty results, not an error'), so the agent knows when a valid-looking call is still the right one.

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