Skip to main content
Glama
aiexp1

Tanod MCP server

chainpeek: DEX trading volume by protocol and by chain over 24 hours, 7 days and 30 days (cached DefiLlama data)

get_dex_volume
Read-onlyIdempotent

Fetch DEX trading volume by protocol, chain, or both, including 24h, 7d, and 30d totals, change rates, and rankings from cached DefiLlama data.

Instructions

chainpeek: Get DEX volume by protocol and chain. For TVL use get_protocol_tvl. Returns DEX volume over 24 hours, 7 days and 30 days with change: a DEX's chains, a chain's largest DEXs, a DEX on a chain, or the market total and the largest DEXs, from Tanod's cache of DefiLlama data. Input: optional protocol, optional chain and limit; give one, both or neither. Cached DefiLlama data (refreshed every few hours), never live; as_of shows its age; chain tables cover the 25 chains with the most volume; an unknown name is a 422 with suggestions and a missing or over-2-day-old cache a 503 (neither charged). Informational only. Typically under 1 s (a local cache read). Price: USD 0.004. Free: 10 chain reads per IP per UTC day. Docs: https://tanod.dev/learn/defi-data-api.html

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chainNoChain name among the 25 chains with the most DEX volume, e.g. Solana, Ethereum, Base, BSC. With protocol: that DEX's volume on the chain. Alone: the chain and its largest DEXs.
limitNoRows in a ranking or a breakdown, 1-50 (default 10).
protocolNoDEX name or slug, e.g. uniswap, uniswap-v3, curve-dex, pancakeswap-amm (a parent such as uniswap sums its versions). Omit for a chain or the overview.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNo
as_ofNo
chainNo
errorNoOnly on an error result: an object {code, message}, or the reason string of an x402 PaymentRequired object.
scopeNo
staleNo
marketNo
reasonNo
sourceNo
protocolNo
other_matchesNo
top_protocolsNo
cache_age_hoursNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.6/5.0
Behavior5/5

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

Going well past the annotations (readOnly/idempotent/openWorld/non-destructive), it discloses the cache's refresh cadence, that as_of exposes staleness, that only the top-25 chains are covered, exact failure modes (422 with suggestions on unknown names, 503 on missing/stale cache) and that failures are not charged. It adds latency, price, and free-tier quota, which no structured field carries.

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, then the alternative, then behavioral and pricing details in descending priority. Dense but every clause carries operational information; it is on the long side but not padded with restated schema content.

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?

With an output schema present, return-shape explanation is unnecessary, and the description covers everything else an agent needs: input combinations, caching semantics, error behavior, cost, quota, and a docs link. Nothing material is missing for correct invocation.

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 adds value by explaining the combination semantics (one, both, or neither) and what each combination yields. It does not restate the limit bounds or slug examples, which the schema already handles.

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) and resource (DEX volume by protocol and chain), and explicitly routes the adjacent need elsewhere: 'For TVL use get_protocol_tvl.' It also enumerates the four output shapes (a DEX's chains, a chain's largest DEXs, a DEX on a chain, market total), so an agent can tell it apart from siblings without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

Clear usage rules: give protocol, chain, both or neither, and it names the alternative tool for TVL. It also flags the cache-only nature so an agent knows not to expect live data. It does not, however, differentiate from other DEX-volume-adjacent siblings such as get_dex_price_candles, leaving some sibling routing to inference.

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

Deploy Server

Other Tools