Skip to main content
Glama

Get Token Price

get_token_price
Read-only

Get current price, 24h change, market cap, FDV, and volume for one or more crypto tokens. Accepts ticker symbols, full names, or CoinGecko IDs; unknown symbols resolve automatically. Batch up to 50 tokens. Reuse price_usd/value_usd already returned by get_wallet_portfolio instead of re-calling.

Use when: Use for spot pricing of named tokens — including batched multi-token queries. Do not call for tokens whose price get_wallet_portfolio already returned, or for address-only unknown tokens (report them as unrecognized). For historical windows use get_token_price_historical.

Limitations: CoinGecko spot data; point-in-time and not an executable swap quote. Bare 0x addresses are not resolvable and should be treated as unknown tokens.

Alternatives: get_token_price_historical, get_wallet_portfolio, get_dex_quote

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tokensYesToken symbols or CoinGecko IDs (e.g. ['BTC', 'ETH', 'SOL'])
vs_currencyNoQuote currency (usd, eur, gbp, btc, eth)usd

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
pricesYes
vs_currencyYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / tokens / title
      Added value: +"Tokens"
    • addedInput schema / properties / vs_currency / title
      Added value: +"Vs Currency"
    • addedInput schema / title
      Added value: +"mcp_get_token_priceArguments"
    • addedOutput schema / $defs
      Added value: +{
      +  "TokenPriceEntry": {
      +    "properties": {
      +      "change_24h_pct": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "title": "Change 24H Pct"
      +      },
      +      "fully_diluted_valuation": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Fully Diluted Valuation"
      +      },
      +      "id": {
      +        "title": "Id",
      +        "type": "string"
      +      },
      +      "market_cap": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "title": "Market Cap"
      +      },
      +      "price": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "title": "Price"
      +      },
      +      "symbol": {
      +        "title": "Symbol",
      +        "type": "string"
      +      },
      +      "volume_24h": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "title": "Volume 24H"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "symbol",
      +      "price",
      +      "market_cap",
      +      "volume_24h",
      +      "change_24h_pct"
      +    ],
      +    "title": "TokenPriceEntry",
      +    "type": "object"
      +  }
      +}
    • addedOutput schema / properties / prices / items / $ref
      Added value: +"#/$defs/TokenPriceEntry"
    • removedOutput schema / properties / prices / items / properties
      Removed value: -{
      -  "change_24h_pct": {
      -    "anyOf": [
      -      {
      -        "type": "number"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "title": "Change 24H Pct"
      -  },
      -  "fully_diluted_valuation": {
      -    "anyOf": [
      -      {
      -        "type": "number"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null,
      -    "title": "Fully Diluted Valuation"
      -  },
      -  "id": {
      -    "title": "Id",
      -    "type": "string"
      -  },
      -  "market_cap": {
      -    "anyOf": [
      -      {
      -        "type": "number"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "title": "Market Cap"
      -  },
      -  "price": {
      -    "anyOf": [
      -      {
      -        "type": "number"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "title": "Price"
      -  },
      -  "symbol": {
      -    "title": "Symbol",
      -    "type": "string"
      -  },
      -  "volume_24h": {
      -    "anyOf": [
      -      {
      -        "type": "number"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "title": "Volume 24H"
      -  }
      -}
    • removedOutput schema / properties / prices / items / required
      Removed value: -[
      -  "id",
      -  "symbol",
      -  "price",
      -  "market_cap",
      -  "volume_24h",
      -  "change_24h_pct"
      -]
    • removedOutput schema / properties / prices / items / title
      Removed value: -"TokenPriceEntry"
    • removedOutput schema / properties / prices / items / type
      Removed value: -"object"
  2. Changed1 schema field changed
    • addedOutput schema / properties / prices / items / properties / fully_diluted_valuation
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Fully Diluted Valuation"
      +}
  3. First observed

TDQS

A4.7/5.0
Behavior4/5

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

The readOnlyHint annotation already covers safety, and the description goes beyond it by disclosing the data source (CoinGecko spot data), the point-in-time nature, the fact that it is not an executable swap quote, and the resolution behavior for unknown symbols and bare 0x addresses. It stops short of a 5 because it omits rate-limit or freshness disclosures, but it adds substantial behavioral context the annotation alone would not provide.

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 organized into clearly labeled sections — overview, Use when, Limitations, Alternatives — and every sentence carries decision-relevant information. The core purpose is front-loaded, and the scoping/exclusion guidance is compact and immediately actionable. Length is justified by the volume of distinct behavioral constraints conveyed.

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 two-parameter tool with a rich output schema and a readOnlyHint annotation, the description covers all an agent needs to call it correctly: what it returns, accepted inputs, batch limits, when to prefer siblings, when not to call, and known failure modes (unresolvable addresses). The existence of an output schema means return-value documentation is not the description's job, and nothing essential is missing.

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%, so the baseline is 3, but the description adds meaning beyond the schema: it reveals that full names are accepted (schema only says 'symbols or CoinGecko IDs'), that unknown symbols resolve automatically, and that batch size caps at 50. The vs_currency parameter is also implicitly disambiguated by the 'Reuse price_usd/value_usd' guidance. These additions lift it above the bare 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-resource pair — 'Get current price, 24h change, market cap, FDV, and volume for one or more crypto tokens' — and explicitly names sibling alternatives (get_token_price_historical, get_wallet_portfolio, get_dex_quote). It also states the accepted input forms (tickers, full names, CoinGecko IDs) and batch capacity, leaving no ambiguity about what the tool is and is not.

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 'Use when' section gives explicit positive conditions ('spot pricing of named tokens — including batched multi-token queries') and explicit exclusions ('Do not call for tokens whose price get_wallet_portfolio already returned, or for address-only unknown tokens'). It also routes historical needs to get_token_price_historical and lists an Alternatives section — exactly the when/when-not/alternative guidance an agent needs.

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