Skip to main content
Glama
coinpaprika

DexPaprika (CoinPaprika)

Official

getPoolDetails

Read-onlyIdempotent

Get a DEX pool's current snapshot: tokens, price, liquidity/TVL, 24h volume, and tx counts. For any pool address on supported networks.

Instructions

Get the full current snapshot for one pool by address: its two tokens, current price, liquidity/TVL, 24h volume, and transaction counts, returned as a single pool object (not a list). Read-only and keyless. Use after search or getNetworkPools surfaces a pool, or for 'price/TVL of this pool?' or 'details for pool 0x...'. Returns live values only; for historical candles use getPoolOHLCV, and for the raw swap feed use getPoolTransactions. Params: network (required slug); pool_address (required, e.g. '0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640'); inversed (optional bool, default false, flips the token price ratio to token1/token0).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
networkYesREQUIRED: Network ID from getNetworks (e.g., 'ethereum', 'solana')
inversedNoOPTIONAL: Whether to invert the price ratio (default: false)
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.
pool_addressYesREQUIRED: Pool address or identifier (e.g., '0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640')

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNo
feeNo
chainNo
dex_idNo
tokensNo
dex_nameNo
created_atNo
factory_idNo
last_priceNo
price_timeNo
price_statsNo
last_price_usdNo
token_reservesNo
created_at_block_numberNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv1.0.1
    • changedInput schema / properties / inversed / description
      Previous value: -"Whether to invert the price ratio"New value: +"OPTIONAL: Whether to invert the price ratio (default: false)"
    • changedInput schema / properties / network / description
      Previous value: -"Network ID from getNetworks (e.g., \"ethereum\", \"solana\")"New value: +"REQUIRED: Network ID from getNetworks (e.g., 'ethereum', 'solana')"
    • removedInput schema / properties / poolAddress
      Removed value: -{
      -  "description": "Pool address or identifier",
      -  "type": "string"
      -}
    • addedInput schema / properties / pool_address
      Added value: +{
      +  "description": "REQUIRED: Pool address or identifier (e.g., '0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640')",
      +  "type": "string"
      +}
    • addedInput schema / properties / rationale
      Added value: +{
      +  "description": "REQUIRED. 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.",
      +  "maxLength": 500,
      +  "minLength": 20,
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "network",
      -  "poolAddress"
      -]New value: +[
      +  "network",
      +  "pool_address",
      +  "rationale"
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": true,
      +  "properties": {
      +    "chain": {
      +      "type": "string"
      +    },
      +    "created_at": {
      +      "type": "string"
      +    },
      +    "created_at_block_number": {
      +      "type": "number"
      +    },
      +    "dex_id": {
      +      "type": "string"
      +    },
      +    "dex_name": {
      +      "type": "string"
      +    },
      +    "factory_id": {
      +      "type": "string"
      +    },
      +    "fee": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "id": {
      +      "type": "string"
      +    },
      +    "last_price": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "last_price_usd": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "price_stats": {},
      +    "price_time": {
      +      "type": "string"
      +    },
      +    "token_reserves": {
      +      "items": {},
      +      "type": "array"
      +    },
      +    "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"
      +}
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

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

The description goes beyond the annotations by disclosing that the tool is 'Read-only and keyless,' that it 'Returns live values only,' and that the result is a single object rather than a list. This adds meaningful behavioral context that the annotations alone do not provide, and it does not contradict any annotation.

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 information-dense and front-loaded: purpose comes first, followed by usage context, alternatives, then parameters. Despite length, every sentence earns its place by adding either scoping, routing, or parameter clarification that the schema and annotations do not already cover.

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?

The description fully covers what an agent needs: what the tool returns, when to use it, which siblings to use instead, the read-only/keyless behavior, and the key parameter semantics including the inversed flag. Since an output schema exists, the description does not need to explain return fields in more detail.

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 coverage is 100% for all parameters, so the baseline is 3. The description adds value by clarifying the pool_address format with a concrete example and explaining that inversed 'flips the token price ratio to token1/token0,' which is more semantically informative than the schema's 'whether to invert the price ratio'.

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 states a specific verb and resource: 'Get the full current snapshot for one pool by address,' and enumerates exactly what the snapshot contains (tokens, price, liquidity/TVL, 24h volume, transaction counts). It also explicitly says the result is a 'single pool object (not a list),' which clearly distinguishes it from any list-returning sibling.

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?

The description gives explicit when-to-use guidance: after search or getNetworkPools surfaces a pool, or for questions like 'price/TVL of this pool?' or 'details for pool 0x...'. It also names concrete alternatives and exclusions: use getPoolOHLCV for historical candles and getPoolTransactions for the raw swap feed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.