Skip to main content
Glama

Server Details

Real-time whale trades, Smart Money Radar, market snapshots, news sentiment, signal outcomes.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Available Tools

38 tools
coin_liquidationsRecorded liquidations for one coinA
Read-onlyIdempotent
Inspect

Forced closes ALREADY recorded for one pair, split long versus short. These are executed liquidations, not projected levels: for where liquidations could happen next use liq_zones, and for the whole market at once use market_liquidations. The plain-English name for liquidations (identical data and credit cost). Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoAlias for pair.
pairNoe.g. ETH/USD. A bare symbol like ETH also works.
hoursNoLook back this many hours, up to 720. Omit for the most recent events.
limitNoMax rows returned. Capped at 25 keyless and 1000 on a paid plan; asking for more returns the cap, and the payload says so in `capped`. count and the *_usd totals always cover the whole window regardless.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
pairNoThe pair these events belong to.
countNoHow many events fired in the whole window, not how many rows came back.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
sourcesNoHow the events split between the streamed exchanges and Hyperliquid, and whether the Hyperliquid part is a sample.
long_usdNoDollars of longs force-closed across the window.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
short_usdNoDollars of shorts force-closed across the window.
truncatedNoTrue when more rows matched than were returned, so what you have is a page and not the whole set.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
liquidationsNoThe events themselves, newest first: price, size in base and quote, side (long_liquidated or short_liquidated), exchange and time. A sample of the window when truncated is true.
window_hoursNoThe period the totals cover, in hours.
rows_returnedNoHow many event rows are actually in this reply.
window_minutesNoThe same period in minutes.
requested_hoursNoThe period asked for, so a page can be told apart from a period.
total_in_windowNoHow many events the window holds in total.
history_includedNoTrue when the recorded series was merged in, so a restart has not erased earlier events.
total_volume_usdNoDollars forced out across the whole window.
long_liquidationsNoCOUNT of longs force-closed. For dollars read long_usd.
rows_span_minutesNoHow far back the returned rows themselves reach.
short_liquidationsNoCOUNT of shorts force-closed. For dollars read short_usd.

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, and non-destructive behavior. The description adds context by noting these are executed rather than projected liquidations, that results are split long versus short, and that the data is descriptive market data only. It also mentions identical data and credit cost for the plain-English alias, which is useful beyond the annotations.

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?

The description is compact and front-loads the core distinction ('ALREADY recorded'). The alternative routing is concise, though the sentence about the plain-English name is slightly awkward and could confuse the agent given the sibling tool named 'liquidations'. Still, overall it is tight and informative.

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 output schema exists, so return-value details need not be in the description. Param semantics are fully covered by the schema, and annotations cover safety/idempotence. The description supplies tool-selection context, scope, and enough behavioral framing to make the tool confidently invokable.

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 description coverage is 100%, so the schema documents all four parameters well. The description adds little directly about parameter semantics, but the 'one pair' and 'split long versus short' context helps frame the coin/pair parameters. This aligns with the baseline 3 for high schema coverage.

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 clearly states the tool returns forced closes already recorded for one pair, split long versus short, and explicitly contrasts it with projected levels and whole-market liquidations. This gives a specific verbless but unmistakable resource scope and distinguishes it from sibling tools like liq_zones and market_liquidations.

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 explicitly tells the agent when to use alternatives: liq_zones for projected liquidation levels and market_liquidations for the whole market. It also clarifies this tool is for executed, per-pair liquidations, providing both an inclusion and exclusion condition.

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

crypto_newsCrypto news and sentimentA
Read-onlyIdempotent
Inspect

Recent crypto headlines with a pre-computed sentiment score (-100 to +100) for one coin plus the macro picture. Use this when a move might be NEWS-driven, or when the user asks what is being said about a coin ("any news on SOL", "why is ETH moving, is it news"). Reach for this AFTER the market read (market_brief / whale flow / liquidations) has ruled out a market-structure cause, so news is offered as one candidate explanation, never asserted as the reason. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoCoin symbol, for example BTC. A pair like ETH/USD works too, the quote leg is dropped. Defaults to BTC. News coverage is not every coin: where nothing was recorded the reply carries covered:false and a null sentiment_score, which is absence and not a neutral reading.
pairNoAlias for coin.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin the headlines and score are about.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
macroNoThe same three fields for the market as a whole: sentiment, sentiment_score and summary.
coveredNoFalse when nothing was recorded for this coin, which is why sentiment_score is null. Not a neutral reading.
summaryNoThe pre-written summary for this coin, or null.
realtimeNoTrue when the headlines are live. Keyless connections get the delayed set.
headlinesNoUp to 20 recent headlines, each with title, source, published time and link.
sentimentNoThe wording that goes with the score, or unknown.
sentiment_scoreNoMinus 100 to plus 100. Null means nothing was measured, which is not the same as zero.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds meaningful behavioral context beyond those: 'Descriptive market data only' and the nuance that news is 'offered as one candidate explanation, never asserted as the reason.' This fully aligns with the annotations and enriches them.

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?

The description is compact and front-loaded: first sentence defines what the tool returns, second gives usage triggers, third provides sequencing and a caveat. It is slightly dense but every sentence earns its place.

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?

Covers purpose, output contents (headlines, sentiment range, macro picture), when to use vs alternatives, sequencing after market-structure tools, and the descriptive-only nature. With an output schema present and annotations covering safety, nothing essential is missing for an agent to select and invoke the tool.

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 description coverage is 100%, so the baseline applies. The description reinforces the 'one coin' scope but does not need to detail parameters because the schema already documents the coin default, pair alias, and the covered:false/null sentiment behavior.

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: provides recent crypto headlines with a pre-computed sentiment score for one coin plus the macro picture. It also distinguishes itself from the many sibling market tools by explicitly centering on news/sentiment and naming market_brief / whale flow / liquidations as related but different tools.

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 explicit when-to-use guidance: 'when a move might be NEWS-driven' or when the user asks what is being said about a coin. It also tells the agent when not to rely on it — only AFTER a market read has ruled out market-structure causes — and clarifies that news should be a candidate explanation, never asserted as the reason.

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

defi_liquidationsDeFi lending liquidationsA
Read-onlyIdempotent
Inspect

Lending liquidations from Aave V3 and Morpho Blue on Ethereum, Arbitrum and Base: a third party repaid the debt and seized the collateral, so both wallets are named on every row. A different event from a perp liquidation (see the liquidations tool) and never summed with one. count and total_usd cover exactly the rows returned and the window field states the period those rows span, so the total is never mistaken for a fixed 24h figure. Keyless. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNoRestrict to one chain: ethereum, base, arbitrum. Anything else is refused by name rather than answered as nothing happening there. Omit for all of them.
limitNoMax rows returned. Defaults to 50, hard ceiling 200 for everyone and no plan raises it. count and total_usd cover exactly the rows returned, and window states the period those rows span, so neither is a fixed 24h figure.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
countNoHow many rows this reply carries.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
windowNoThe period the returned rows actually span: from, to and hours.
matchedNoHow many rows matched the chain filter before the row cap.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
total_usdNoDollars across exactly the rows returned. A page sum, not a fixed 24h total: the window field says what period those rows span.
truncatedNoTrue when more rows matched than were returned, so what you have is a page and not the whole set.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
liquidationsNoThe events, each naming BOTH wallets: the one liquidated and the one that repaid the debt and took the collateral.
unknown_chainNoSet when a chain was named that this lane does not index. Nothing was searched, so this is not no liquidations there.
chains_coveredNoThe chains this lane indexes.
protocols_coveredNoThe lending protocols behind these rows.
duplicates_droppedNoHow many repeat rows for the same event were removed before counting, so the dollars are not doubled.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds valuable behavioral context: keyless access, descriptive market data only, and clarifies that 'count' and 'total_usd' cover exactly the returned rows with a 'window' field, avoiding misinterpretation of fixed 24h figures. This exceeds the annotation baseline.

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?

Three sentences, each dense with information: scope, event distinction, and metric semantics. No fluff, front-loaded with the most important purpose, and every sentence earns its place.

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?

Given an output schema exists and annotations cover safety, the description covers scope, event type, chain availability, metric semantics, and alternative tool differentiation. It is complete for a read-only filtered tool with simple parameters.

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% for both parameters, providing full documentation. The description further clarifies the 'limit' parameter's behavior (defaults, hard ceiling) and the 'chain' parameter's refusal behavior, adding value beyond schema. Baseline 3 is elevated to 4 due to meaningful extra context.

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 ('repaid debt and seized collateral') and clearly names resources (Aave V3, Morpho Blue on Ethereum, Arbitrum, Base). It distinguishes from the sibling 'liquidations' tool by explicitly saying it's a different event and never summed with one.

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?

It provides clear context on what the tool covers (lending liquidations vs perp liquidations) and names the alternative 'liquidations' tool for perp liquidations. It does not explicitly say 'when not to use' beyond the differentiation, but the guidance is specific enough to select correctly.

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

defi_summaryDeFi / on-chain summaryA
Read-onlyIdempotent
Inspect

One-call on-chain DEX state across Ethereum, Base and Arbitrum: 24h volume and TVL per chain, the highest-volume tokens, and whale swap activity (buy/sell split, unique and repeat wallets, per-DEX breakdown). Use this for the DeFi / on-chain picture ("what is happening in DeFi", "which chain has the most volume", "where is capital moving on chain"). For the individual wallets behind large swaps use onchain_whales; for CEX whale flow use whale_profile. Keyless returns totals and a short token list with swap USD withheld; a paid plan returns the full table. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
chainsNoOne row per chain: the chain, tokens tracked, 24h volume and total value locked.
totalsNoAcross all chains: 24h volume, total value locked, how many chains and how many tokens are tracked.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
top_tokensNoThe highest-volume tokens: chain, symbol, name, address, price, 24h change, volume and value locked. Shortened on a keyless connection.
updated_atNoWhen the on-chain token snapshot was published.
coverage_noteNoWhat the numbers do and do not cover.
whale_activityNoLarge swaps in the window: how many, buy and sell dollars, net, the largest, unique and repeat wallets, and the split per exchange and per chain. A keyless connection gets the counts with magnitudes_withheld set instead of the dollars.
tokens_withheldNoKeyless only: how many tokens were cut from top_tokens.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds valuable behavioral context beyond that: keyless access returns totals and a short token list with swap USD withheld, while a paid plan returns the full table. It also notes 'Descriptive market data only,' clarifying the nature of the data. No contradiction with annotations.

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 compact yet information-dense: first sentence defines the resource and outputs, second sentence provides usage context with example questions, third sentence covers access limitations and alternatives. Every sentence earns its place, and no filler exists.

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?

Given that the tool has no parameters, annotations already cover safety and idempotency, and an output schema exists, the description supplies all extra context an agent needs: content, usage intent, alternative routing, and access-tier behavior. Nothing material 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?

The tool has zero parameters, so there is nothing for the description to document. The baseline for a parameterless tool is 4, and the description correctly focuses on behavior and output rather than inventing parameter guidance.

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 clearly identifies the tool as a one-call on-chain DEX state summary across Ethereum, Base, and Arbitrum, listing concrete outputs like 24h volume, TVL, top tokens, and whale swap activity. It also explicitly distinguishes itself from sibling tools by naming onchain_whales and whale_profile as alternatives, making purpose 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?

The description explicitly states when to use this tool ('Use this for the DeFi / on-chain picture') with concrete example queries, and gives clear routing guidance: for individual wallets use onchain_whales, for CEX whale flow use whale_profile. This is explicit when/when-not guidance with named alternatives.

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

dex_walletOn-chain wallet activityA
Read-onlyIdempotent
Inspect

One Ethereum, Base or Arbitrum address: its recorded DEX swaps, net flow per token and activity pattern. For a Hyperliquid ACCOUNT use hl_wallet instead: the same 0x string can exist on both and they are different subjects with different pages. Real coverage limit, state it once when the answer turns on it: the swap feed sees roughly 7 percent of a wallet total activity, so quiet here does not mean inactive. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax recorded swaps returned for this address. Defaults to 25, hard ceiling 100 for everyone and no plan raises it.
addressYesEthereum, Base or Arbitrum address, 0x followed by 40 hex characters. Required. This is the on-chain wallet, not the Hyperliquid account that can sit at the same 0x string: use hl_wallet for that one. An address outside the followed set answers tracked:false, which is a coverage fact and not a wallet doing nothing.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
errorNoinvalid_address when the address is not 0x plus 40 hex characters. Nothing was looked up.
venueNoAlways on-chain. This is NOT the Hyperliquid account that can sit at the same 0x string.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
eventsNoIts recorded swaps, newest first.
addressNoThe address, normalised.
profileNoWhat this address has been doing: net flow per token and its activity pattern.
trackedNoFalse when this address is outside the followed set. A coverage fact, not a wallet doing nothing.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds valuable context beyond annotations: the 7% coverage limit, the meaning of tracked:false, and the 'descriptive market data only' caveat. No contradiction with annotations.

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?

Three sentences, each purposeful: the first states the tool's function, the second disambiguates from a sibling, and the third discloses the critical coverage limitation. No wasted words; information is front-loaded and directly relevant.

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?

Given the output schema exists (so return values are documented) and annotations cover safety, the description provides the essential remaining context: the tool's scope (Ethereum/Base/Arbitrum), the sibling distinction, and a realistic coverage limitation that affects interpretation. This is complete for an agent to use the tool correctly.

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 description coverage is 100%, so the schema already fully describes both parameters, including address format and limit defaults/cap. The tool description reinforces the address/vs Hyperliquid distinction but does not add new parameter-specific meaning beyond what is in the schema, so baseline 3 is appropriate.

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 'One Ethereum, Base or Arbitrum address: its recorded DEX swaps, net flow per token and activity pattern,' clearly identifying the resource (wallet address) and specific actions (DEX swaps, net flow, activity pattern). It also explicitly distinguishes from hl_wallet, ensuring no confusion among siblings.

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?

It gives explicit direction to use hl_wallet for Hyperliquid accounts ('For a Hyperliquid ACCOUNT use hl_wallet instead') and warns about the 7% coverage limit with the instruction to 'state it once when the answer turns on it,' which guides when and how to interpret results. This is strong usage guidance.

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

flag_outcomesSignal outcomes ledgerA
Read-onlyIdempotent
Inspect

Recently fired signal-ledger flags with fire-time price and later price outcomes, logged live and never backfilled. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter to one coin, for example BTC. A pair like ETH/USD works too, the quote leg is dropped. One symbol, not a list. Omit for every coin.
pairNoAlias for coin.
typeNoFilter to one signal type. One of: whale-spike, funding-extreme, squeeze-flip, liq-cascade, flow-divergence, major-pctile, major-block, deriv-record. The underscore spellings used by alert rules (for example funding_extreme, or spike for whale-spike) are accepted too. Anything else is refused by name rather than answered as every signal. Omit for all types.
hoursNoHow far back to look, in hours. Defaults to 48. Capped at 168 keyless and 720 on a paid plan; asking for more returns the cap, and the payload says so in `capped`. The all_time block is unaffected by this window.
limitNoMax rows returned. Capped at 25 keyless and 500 on a paid plan; asking for more returns the cap, and the payload says so in `capped`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin filter applied, or null for all coins.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
typeNoThe signal type filter applied, or null for all types.
countNoHow many rows this reply carries.
hoursNoThe window actually read, in hours.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
signalsNoThe signals that fired in the window, each with its type, coin, fire time, price at fire time and later price outcomes where they have been scored.
all_timeNoPermanent counters from the archive, independent of the window asked for: fired, scored_h24, since, through and by_type.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
aggregatesNobyType: how many fired per signal type inside the window.
depth_noteNoHow far back the data behind this answer reaches.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
valid_typesNoThe signal types that do exist, returned alongside unknown_type.
unknown_typeNoSet when the type asked for is not one this record keeps. Nothing was filtered and nothing was searched.
total_in_windowNoHow many signals fired in the whole window, before the row cap.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already mark the tool read-only and idempotent; the description adds useful context on top by noting that data is logged live and never backfilled, which shapes expectations about data availability and freshness. The 'Descriptive market data only' note reinforces the non-actionable nature of the data. No contradiction with annotations.

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 one tight sentence that front-loads the central concept and adds only one clarifying caveat: 'Descriptive market data only.' Every clause carries information and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given full parameter documentation, an output schema, and read-only annotations, the description covers the essential context: time scope, live-only provenance, and outcome fields. The main gap is the lack of an explicit pointer to the closely named sibling signal_outcomes to guide selection.

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?

All five parameters have detailed schema descriptions, so the schema carries the full semantic load. The free-text description adds no parameter-level guidance beyond referring to recently fired flags and later outcomes, which earns the baseline score for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete resource—recently fired signal-ledger flags—and specifies the data shape: fire-time price and later price outcomes. It is clear at a glance, but it does not explicitly distinguish flag_outcomes from the similarly named sibling signal_outcomes.

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

Usage Guidelines3/5

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

The phrases 'Recently fired' and 'never backfilled' imply this tool is for live, recent signal flags and not for historical or corrected data, which provides some usage context. However, it never names alternatives or states when to prefer signal_outcomes, so the guidance remains implied rather than explicit.

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

funding_matrixPer-venue funding matrixA
Read-onlyIdempotent
Inspect

Per-venue funding rates for one pair, side by side, with the predicted next rate and payout time where the venue provides it. Use this when the user asks about funding across exchanges, where funding is most extreme, or where perp longs vs shorts are paying ("compare BTC funding across venues", "which venue has the richest funding"). For the single average funding on a coin alongside price/OI/whales, market_brief already includes it; for whether funding is unusual vs the coin's history, market_history/market_extremes carry the comparison. Keyless on any streamed pair. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoAlias for pair.
pairNoTrading pair, for example ETH/USD. A bare symbol like ETH is read as ETH/USD. Defaults to BTC/USD when omitted. Every streamed pair answers keyless. Rates come back per exchange at that exchange's own interval_h, so magnitudes are not comparable across rows without normalising first.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
pairNoThe pair these rates belong to.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
per_venueNoOne row per exchange: the exchange name, its current funding rate, its predicted next rate where it publishes one, the next payout time, and interval_h. Rates are per that exchange own interval, so magnitudes are not comparable across rows until they are normalised.
updated_atNoWhen these rates were read.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark the tool as read-only and idempotent. The description adds useful behavioral context beyond that: 'Keyless on any streamed pair' reveals authentication and streaming-pair requirements, and 'Descriptive market data only' reinforces the non-mutating nature. It also discloses that prediction and payout time appear only 'where the venue provides it,' which helps set expectations about variable output.

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 compact and front-loaded: output first, usage guidance second, alternatives third, and access/reliability notes last. Every sentence adds value, and the example queries make selection immediate without bloat.

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?

Given the output schema exists, the description need not restate return fields. It covers what the tool returns, when to use it, when not to use it, which siblings to route to instead, authentication requirements, and data classification. That is complete for a read-only market-data tool.

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 description coverage is 100%, with coin described as 'Alias for pair' and pair described with an example. The description adds the 'one pair' and 'streamed pair' context but does not materially expand parameter meaning beyond what the schema already provides. The baseline of 3 is appropriate.

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 first sentence states a specific function: 'Per-venue funding rates for one pair, side by side' including predicted next rate and payout time. It clearly distinguishes from sibling tools like market_brief and market_history by describing what this tool covers versus what those cover.

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 explicitly says 'Use this when the user asks about funding across exchanges, where funding is most extreme, or where perp longs vs shorts are paying' and gives concrete example queries. It also tells the agent when not to use it: for single average funding, use market_brief; for historical comparisons, use market_history/market_extremes.

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

hl_boardHyperliquid whale boardA
Read-onlyIdempotent
Inspect

The tracked Hyperliquid whale accounts: equity, open notional, leverage, net bias, plus per-coin crowding across those wallets. Use this for how the tracked HL whales are positioned right now ("are HL whales long or short BTC", "what are the big HL accounts in"). For one specific wallet use hl_wallet; for the proven-profitable trader cohort use smart_money or hl_traders; for individual recent fills use hl_whales. Keyless returns the top rows and states how many are withheld; a paid plan returns the whole board. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
rowsNoThe accounts: wallet, equity, dollars open, leverage and which way they lean. Shortened on a keyless connection.
venueNoAlways Hyperliquid.
trackedNoHow many accounts are tracked.
crowdingNoPer-coin crowding across the tracked accounts.
withheldNoHow many rows a keyless connection did not receive. Zero on a paid plan.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
updated_atNoWhen the board was published.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
with_open_positionsNoHow many of them currently hold something.
tracked_notional_usdNoTotal dollar value of everything those accounts hold open.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, and the description adds meaningful behavioral context: the keyless vs. paid access difference, that keyless returns only top rows and states withheld counts, and that this is 'descriptive market data only.' No contradiction exists.

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 compact yet information-dense: it leads with the core data content, gives concrete usage examples, then routing to alternatives, and closes with access-tier behavior. Every sentence earns its place and there is no fluff.

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 zero-parameter tool with an output schema, the description is fully complete: it defines the data, gives usage context, differentiates from relevant siblings, and explains access limitations. Nothing an agent needs to correctly select and invoke this tool 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?

The tool has zero parameters and the schema already covers everything, so the baseline is 4. The description compensates by explaining what the returned board contains and the kinds of questions it answers, which adds semantic value beyond the empty schema.

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 clearly identifies the tool as an aggregated view of tracked Hyperliquid whale accounts, listing the exact data dimensions (equity, open notional, leverage, net bias, per-coin crowding). It also distinguishes itself from sibling tools like hl_wallet and hl_whales, so an agent can confidently select it for positioning questions.

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 explicitly states when to use this tool ('how the tracked HL whales are positioned right now') with concrete example queries, and also names alternatives for different intents: hl_wallet for a specific wallet, smart_money or hl_traders for profitable traders, and hl_whales for recent fills. This is explicit when/when-not guidance.

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

hl_tradersVerified traders (every wallet)A
Read-onlyIdempotent
Inspect

Every Hyperliquid wallet that has closed a trade, screened from primary closing fills for net-of-fees realized profit and a human trade pace, so a profitable trader outside the venue's ranked leaderboard is still found. A stage-1 claim from fills alone: equity, ROI and the market-maker volume ratio are not verified, because a closing fill carries no account value, so it is a weaker and different claim than smart_money or hl:proven and is never the same number. Net realizedPnl sits next to its gross and fees, and profitableCloses counts distinct closing actions, not partial fills. Keyless returns the top rows and states how many are withheld; a paid plan returns the whole board. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
rowsNoThe wallets that passed both gates, ranked by net realized PnL: net realizedPnl (plus realizedPnlGross and feesUsd), closes vs closingFills, profitableCloses, winRate, coins, fillsPerDay and topCoins. Shortened on a keyless connection.
venueNoAlways Hyperliquid.
funnelNoThe screen as four shrinking counts (seen, enough closing trades, human pace, profitable), so a small final count is never mistaken for the whole population.
withheldNoHow many rows a keyless connection did not receive. Zero on a paid plan.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
updated_atNoWhen the scan was published. The scan runs daily and the board self-expires after 24h.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
window_daysNoThe window the scan aimed to cover, in days.
wallets_seenNoHow many distinct wallets closed a trade in the window.
scan_completeNoTrue when the whole requested block range was read; false when the scan truncated (still honest, just a shorter window).
reconciliationNoFor wallets also on hl:proven, both numbers side by side with comparable:false. NOT like-for-like: a realized-closes figure over this window vs the venue leaderboard figure.
effective_window_daysNoThe window actually covered. Below window_days means the scan was rate-limited by the portal and the pace figures cover a shorter span.

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the readOnly and idempotent annotations, the description discloses methodology (screened from primary closing fills), claim limitations (stage-1 claim, equity/ROI not verified), metric semantics (profitableCloses counts distinct closing actions not partial fills), and access behavior (Keyless returns top rows and withheld count; paid plan returns whole board). This is rich behavioral context.

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 dense but well-structured: definition, verification caveats, metric definitions, and access behavior. It is front-loaded with the core purpose and every sentence adds non-redundant information.

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?

Given no parameters, a read-only annotation set, and an existing output schema, the description covers the essential operational details: what is screened, what is not verified, how metrics are counted, and how access differs by plan. It is complete for correct selection and use.

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?

The input schema has zero parameters, so there is no parameter burden for the description. Baseline for no parameters is 4; the description appropriately uses its space to explain output and data semantics instead.

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 clearly defines the tool's purpose: finding every Hyperliquid wallet that has closed a trade and screening for net-of-fees realized profit and human trade pace. It also explicitly distinguishes itself from smart_money and hl:proven, so an agent can tell them apart.

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 states when this is useful ('a profitable trader outside the venue's ranked leaderboard is still found') and gives an explicit when-not: equity, ROI, and market-maker volume ratio are not verified, making this a weaker and different claim than smart_money or hl:proven. Naming the alternatives and the limitation provides clear routing guidance.

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

hl_walletHyperliquid wallet bookA
Read-onlyIdempotent
Inspect

One Hyperliquid account: live positions, equity, leverage, net bias and unrealized PnL, plus its recent whale-sized fills. The live book is public on Hyperliquid so it stays keyless; computed history (win rates, cadence, realized PnL) and the full fill trail need a paid plan. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax recent fills returned for this account. Defaults to 50, hard ceiling 200 for everyone and no plan raises it. Keyless calls receive 3 of them whatever is asked for, and the live positions come back either way.
addressYesHyperliquid account address, 0x followed by 40 hex characters. Required. Every hl_whales row carries the wallet that filled it, so it can be passed straight in. An address outside the tracked set answers tracked:false, which is a coverage fact and not an account holding nothing.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
errorNoinvalid_address when the address is not 0x plus 40 hex characters. Nothing was looked up.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
printsNoRecent whale-sized fills for this account. Keyless connections receive 3 of them whatever was asked for.
addressNoThe account address, normalised.
profileNoThe live account: what it holds, equity, dollars open, leverage, which way it leans and unrealized profit. Public on Hyperliquid, so it stays keyless.
trackedNoFalse when this account is outside the tracked set. A coverage fact, not an account holding nothing.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
locked_layersNoKeyless only: which computed blocks a paid plan adds.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already mark this as read-only, idempotent, and non-destructive, and the description adds useful behavioral detail beyond those flags: it explains keyless access to live data, paid-plan restrictions for computed history and full fill trails, and closes with 'Descriptive market data only.' This gives the agent a clearer model of data availability without contradicting annotations.

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?

The description is compact and front-loaded with the core purpose, followed by access-tier nuances. Every sentence contributes useful information, though the final sentence 'Descriptive market data only' is somewhat redundant given the readOnly annotation.

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 full input schema, an output schema, and safety annotations, the description provides the remaining context needed: it clarifies keyless vs paid data access, the account-scoped nature, and the read-only character. No critical gap remains for an agent to invoke it correctly.

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 description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds thematic context around 'recent whale-sized fills' that maps to the limit parameter, but it does not meaningfully extend the schema's parameter explanations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource: a single Hyperliquid account's live positions, equity, leverage, net bias, unrealized PnL, and recent whale-sized fills. It differentiates from market-wide or multi-account tools by emphasizing 'One Hyperliquid account,' though it does not explicitly name a sibling tool for comparison.

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

Usage Guidelines3/5

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

The description provides implied usage context by noting that live data is keyless while computed history and the full fill trail require a paid plan. However, it does not explicitly state when to prefer this tool over alternatives like hl_whales or whale_profile, nor does it mention exclusions.

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

hl_whalesHyperliquid named whale fillsA
Read-onlyIdempotent
Inspect

Recent whale-sized Hyperliquid fills WITH THE WALLET ADDRESS attached. Hyperliquid is the one venue whose public feed names the account on both sides of a fill, so every row here is followable to a live book. Use this to see which named accounts just traded a coin ("which HL whales just bought BTC"). For one wallet's full book and leverage use hl_wallet; for the ranked tracked-account board and net bias use hl_board; for the proven-profitable cohort use smart_money. Keyless. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter to one coin, for example PEPE. Matched against the parsed symbol as well as the raw market name, so the 1000-unit markets (kPEPE, kSHIB, kBONK) are found under PEPE, SHIB and BONK. One symbol, not a list. Omit for every coin.
pairNoAlias for coin.
limitNoMax fills returned. Defaults to 50, hard ceiling 200 for everyone and no plan raises it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin filter applied, or null for every coin.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
countNoHow many rows this reply carries.
venueNoAlways Hyperliquid.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
tradesNoThe fills, each carrying the wallet on both sides, the coin, the direction, the size and the time. Pass a wallet to hl_wallet for that account live positions.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful behavioral context beyond those structured fields: every row is followable to a live book, the feed names accounts on both sides, and the data is descriptive market data with no state mutation. This helps the agent understand the nature of the data without contradicting the annotations.

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 efficient and front-loaded. It states the core behavior in the first sentence, then adds one sentence of unique source context, one sentence of use-case guidance, and one sentence of sibling routing. There is no wasted wording or repetition of schema details.

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 simple, read-only tool with three optional parameters, full schema coverage, and an output schema, the description is complete. It tells the agent what the tool does, why it is unique, when to use alternatives, and that no authentication is required. Nothing important is left to inference.

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 description coverage is 100%, so the baseline of 3 applies. The description does not itself elaborate on coin, pair, or limit, but it also does not need to: the schema already documents the coin matching behavior, the pair alias, and the limit ceiling and default. No extra parameter semantics are missing.

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 statement: returns recent whale-sized Hyperliquid fills with wallet addresses attached. It clearly distinguishes this tool from siblings by emphasizing that Hyperliquid's public feed names both sides of every fill, which is unique among the alternative whale-data tools.

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 an explicit use case ('which HL whales just bought BTC') and names the relevant alternatives for different queries: hl_wallet for one wallet's book and leverage, hl_board for ranked tracked accounts, and smart_money for proven-profitable traders. It also notes the tool is keyless, making invocation prerequisites clear.

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

liquidationsRecent liquidationsA
Read-onlyIdempotent
Inspect

Liquidation trades for a pair with the long and short breakdown, live tape merged with the recorded series so a restart never erases history. A long is force-closed by selling, so sell-side events are long liquidations. long_liquidations and short_liquidations are event COUNTS; long_usd and short_usd carry the dollar split. Pass hours to ask for a period (hours: 24 for today); without it you get the most recent rows and window_minutes tells you how far back they reach. truncated:true means more events matched than were returned, so window_minutes covers the returned rows only and total_in_window has the real count. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoAlias for pair.
pairNoe.g. ETH/USD. A bare symbol like ETH also works.
hoursNoLook back this many hours, up to 720. Omit for the most recent events.
limitNoMax rows returned. Capped at 25 keyless and 1000 on a paid plan; asking for more returns the cap, and the payload says so in `capped`. count and the *_usd totals always cover the whole window regardless.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
pairNoThe pair these events belong to.
countNoHow many events fired in the whole window, not how many rows came back.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
sourcesNoHow the events split between the streamed exchanges and Hyperliquid, and whether the Hyperliquid part is a sample.
long_usdNoDollars of longs force-closed across the window.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
short_usdNoDollars of shorts force-closed across the window.
truncatedNoTrue when more rows matched than were returned, so what you have is a page and not the whole set.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
liquidationsNoThe events themselves, newest first: price, size in base and quote, side (long_liquidated or short_liquidated), exchange and time. A sample of the window when truncated is true.
window_hoursNoThe period the totals cover, in hours.
rows_returnedNoHow many event rows are actually in this reply.
window_minutesNoThe same period in minutes.
requested_hoursNoThe period asked for, so a page can be told apart from a period.
total_in_windowNoHow many events the window holds in total.
history_includedNoTrue when the recorded series was merged in, so a restart has not erased earlier events.
total_volume_usdNoDollars forced out across the whole window.
long_liquidationsNoCOUNT of longs force-closed. For dollars read long_usd.
rows_span_minutesNoHow far back the returned rows themselves reach.
short_liquidationsNoCOUNT of shorts force-closed. For dollars read short_usd.

TDQS

A4.4/5.0
Behavior5/5

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

The description goes well beyond the annotations by explaining live tape merging, restart persistence, the mapping of sell-side events to long liquidations, count vs dollar fields, truncation semantics, and the read-only market-data nature. This is rich behavioral disclosure.

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 dense but every sentence earns its place, covering scope, field meanings, parameter behavior, and edge cases. It is front-loaded with the core purpose and avoids fluff.

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 read-only, pair-scoped liquidation data tool, the description covers parameter semantics, output field meanings, truncation edge cases, and the descriptive-only nature. With a full output schema and strong annotations, 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. The description adds value by clarifying how hours behaves, what window_minutes represents, and the meaning of output fields like truncated and total_in_window, going beyond the raw schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource: liquidation trades for a pair with long/short breakdown. It adds concrete details about event counts vs dollar splits, making the purpose unmistakable, but it does not explicitly differentiate this tool from close siblings like coin_liquidations or market_liquidations.

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?

The description gives clear usage context: pass hours to request a period, omit it for recent rows, and explains window_minutes and truncated behavior. It does not explicitly state when to prefer this tool over alternatives, but the pair-scoped descriptive nature is clearly conveyed.

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

liq_zonesProjected liquidation levelsA
Read-onlyIdempotent
Inspect

Projected liquidation level book for one pair (modeled from leverage assumptions - clearly labeled as a projection, not executed trades). Keyless serves the free pairs without cascade chains; an active paid plan serves any pair with the full snapshot. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoAlias for pair.
pairNoTrading pair, for example ETH/USD. A bare symbol like ETH is read as ETH/USD. Defaults to BTC/USD when omitted. Keyless calls reach the free pairs and get the projected levels without the cascade chains; a paid plan reaches any streamed pair with the full snapshot.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
pairNoThe pair this projection covers.
coveredNoFalse when this server does not stream the pair at all. No plan adds it.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
free_pairsNoThe pairs a keyless connection can read, returned when the pair asked for is not one of them.
projectionNoThe projected levels: where forced closes would sit under the modeled leverage assumptions, plus the cascade chains on a paid plan. Modeled levels, NOT trades that happened.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds meaningful behavioral context beyond the annotations: the data is a projection, not executed trades, and the returned data depends on keyless vs. paid access.

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?

Two sentences carry substantial information with the key identity of the tool front-loaded in the first clause. The phrasing is efficient, though 'clearly labeled as a projection, not executed trades' is slightly redundant with 'modeled from leverage assumptions.'

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the annotations, output schema, and 100% parameter schema coverage, the description covers the essential context: purpose, one-pair scope, projection nature, and access-tier differences. Nothing critical is missing for an agent to select and invoke the tool correctly.

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 description coverage is 100%, so the schema already documents coin as an alias for pair and pair's default and bare-symbol handling. The description reinforces the keyless/paid behavior but adds little new parameter meaning beyond the schema.

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 names a specific resource: a projected liquidation level book for one pair, and explicitly distinguishes it from executed trades by saying it is modeled from leverage assumptions. This clarity separates it from sibling liquidation tools that likely report actual liquidation events.

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?

The description gives clear usage context: keyless callers receive free pairs without cascade chains, while paid plans get the full snapshot for any pair. It does not name specific alternatives or explicit when-not-to-use conditions, but the one-pair scope and access-tier behavior guide selection adequately.

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

market_briefOne-call market briefA
Read-onlyIdempotent
Inspect

A complete current market brief for ONE coin in a single call: price, cross-venue funding with carry, open interest, whale flow versus the coin's own baseline, recent liquidations and historical context. The plain-English name for trade_context (identical data and credit cost). Use for a general "what is happening with BTC / how is ETH positioned" question, and do not also call the separate whale, funding or liquidation tools unless the user drills into one of them. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoAlias for pair.
pairNoTrading pair, for example ETH/USD. A bare symbol like ETH is read as ETH/USD. Defaults to BTC/USD when omitted. Any streamed pair answers keyless; off the free pairs a keyless reply is the lite shape and names what it withheld in locked_layers.
compactNoReturn one line of plain text rather than the JSON blob, about 30 tokens instead of 800. Same facts, same windows, same dates, no structured fields to read. Defaults to false.
position_usdNoPosition size in US dollars, for example 25000. Above zero only. When given, carry_cost adds per_day_usd_at_current_rate, the dollars a day the current funding average across exchanges works out to at that size. Arithmetic on the rate as it stands now, not a projection of future rates. Omit and carry_cost still carries the percentage and APR figures.

Output Schema

ParametersJSON Schema
NameRequiredDescription
lineNoThe composed one-line answer, returned only when compact:true was asked for. The same facts, the same windows and the same dates as the full shape.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
pairNoThe pair this context describes.
depthNoWhich shape came back: lite, free-pair or keyed.
priceNoLast traded price.
compactNoPresent and true only on a compact:true call, where the whole answer is the single line in `line`.
fundingNoaverage_rate across exchanges, how many exchanges are in it, the interval in hours, and minutes to the next funding time.
crowdingNoThe crowding read and the overexposed side. Null without a paid plan.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
stats_24hNoThe 24h statistics block. Absent on the lite shape, where locked_layers names it.
carry_costNoArithmetic on the current funding average: percent per day, the same as an annual rate, which side pays, and dollars a day when position_usd was passed. Not a projection of future rates.
whale_flowNoWhale direction against the same coin logged baseline: the multiple, days logged, record and N-day-high flags, and buy share now versus 7 days. Dollar sizes are added on a paid plan.
price_readsNoPlain descriptions of price against its own recent hours, computed from hourly candles: vs_recent_average (above or below its 50-hour and 200-hour average, and which way it is drifting), recent_move (how stretched the latest move is, plus the change against 7 days ago) and choppiness (calm, normal or choppy). Each block is available:true with values or available:false with a plain reason; a leg with too few recorded hours is null with a note, never a made-up neutral. Descriptive, not a trade signal.
locked_layersNoNamed rather than silently missing: which blocks this connection did not receive.
vs_own_historyNoWhere funding and open interest sit against the same pair recorded days: phrase, band, day count, the date the reading is from, and how past cases resolved.
open_interest_usdNoOpen interest in dollars across the exchanges that publish it.
liquidations_recentNoForced closes visible right now: count, long_usd, short_usd and window_minutes. A timing series, market-wide totals run higher.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already provide readOnly, idempotent, and non-destructive hints; the description adds that the tool is descriptive only, that data and credit cost are identical to trade_context, and that it is a one-call aggregation. These are meaningful behavioral clarifications beyond the annotation booleans.

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?

Three sentences with no filler: the payload is front-loaded in sentence one, the sibling-alias and credit note in sentence two, and usage/exclusion guidance in sentence three. Every sentence earns its place.

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?

Given the rich output schema and detailed input schema, the description covers scope, alias, credit cost, exclusions, and use case. Nothing needed to choose or invoke the tool correctly is missing.

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 description coverage is 100%, so the schema already documents coin, pair, and position_usd. The description reinforces the 'ONE coin' scope but does not need to add parameter-level detail; baseline 3 is appropriate.

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?

Description states exactly what it returns ('complete current market brief for ONE coin in a single call') and enumerates the data categories: price, funding with carry, open interest, whale flow, liquidations, historical context. It also differentiates from the identical trade_context sibling and from granular whale/funding/liquidation tools.

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 explicit when-to-use framing ('general what is happening with BTC / how is ETH positioned question') and explicit when-not-to: do not also call separate whale, funding, or liquidation tools unless the user drills in. This is exactly the routing 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.

market_changesWhat changed across the marketA
Read-onlyIdempotent
Inspect

What changed across the market recently, in one call: the current risk regime, which coins whales are net buying and selling now, the coins that just turned unusual, the biggest movers, and the 24h forced-close picture (perp and lending kept separate). The same one-call brief market_digest serves on a timer, framed for an on-demand "what changed since this morning / overnight" question. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive hints, so the description does not need to repeat safety traits. It adds value by detailing the call's behavior: it returns a composite of risk regime, whale flows, unusual coins, movers, and forced-close picture, and explicitly notes perp/lending are kept separate. A minor gap is not specifying the exact recency window, but the output schema likely covers return details.

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 two sentences with no wasted words. The first sentence front-loads the core promise and content list; the second effectively differentiates the tool from market_digest. Every element earns its place and the length is appropriate for the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter tool with an output schema, the description fully covers purpose, scope, and positioning among many sibling tools. The only minor ambiguity is the vague time window ('recently'), which is likely intentional for an on-demand brief but could be tightened. Overall it is complete enough for an agent to select and invoke the tool correctly.

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?

The tool has zero parameters and schema coverage is 100%, so there are no parameter ambiguities to resolve. The description instead lists the informational content of the call, which is all that is needed. It deliberately conveys no extra parameter detail because none exists.

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 clear verb+resource framing ('What changed across the market recently, in one call') and enumerates the specific data categories covered. It also distinguishes itself from sibling market_digest by framing the use case as on-demand versus timer-driven, which sets it apart from other market brief tools.

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 explicitly names market_digest as the same one-call brief intended for a timer, positioning market_changes for on-demand questions like 'what changed since this morning / overnight.' It also states 'Descriptive market data only,' giving the agent clear expectations about scope without needing to infer.

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

market_digestMarket digest (one-call brief)A
Read-onlyIdempotent
Inspect

One-call market brief for a scheduled or recurring run: current BTC risk regime, which coins whales are net buying and selling now, the coins on the Smart Money Radar, the biggest movers, and the 24h forced-close picture (perp and lending kept separate). No arguments; returns everything in one payload so an automation can ask it on a timer. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

The description adds behavioral context beyond the annotations by stating 'No arguments; returns everything in one payload' and 'Descriptive market data only.' This tells the agent this is a read-only, non-executing aggregate snapshot, reinforcing the readOnlyHint and destructiveHint. It does not detail output schema specifics, but the output schema exists, so the added context is sufficient.

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 two sentences, front-loaded with the core purpose and usage context, then lists the payload contents in a compact series. Every clause adds information, with no filler or repetition.

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 zero-parameter tool with an output schema, the description is complete: it defines when to use it, what it returns, that it is safe/descriptive, and that no arguments are needed. The absence of explicit return-field details is acceptable because the output schema exists.

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?

There are zero parameters, so the baseline is 4. The description explicitly confirms 'No arguments,' which is the only parameter-related information needed. Nothing is left ambiguous about the input surface.

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 clear purpose: a one-call market brief for scheduled or recurring runs. It enumerates the exact content (BTC risk regime, whale net flows, Smart Money Radar coins, biggest movers, 24h forced-close picture) and explicitly contrasts with a single-purpose tool by calling itself 'one-call' and 'everything in one payload.' This distinguishes it from the many focused sibling tools.

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?

The description says this is for 'a scheduled or recurring run' and that 'an automation can ask it on a timer,' which gives clear context for when to use it. It does not explicitly name alternatives or when-not-to-use conditions, so it stops short of a full 5.

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

market_extremesMarket extremes, latest recorded dayA
Read-onlyIdempotent
Inspect

Which pairs sit at a record or in their own top or bottom 5 percent for funding, open interest or liquidations, each vs that pair's own recorded history, with next-day outcome stats for past occurrences where enough events exist. Covers the latest day the daily scan recorded, which is NOT necessarily today: read as_of_day and stale before describing any of it as current. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
top5NoThe same, for pairs in their own top or bottom 5 percent rather than at a record.
staleNoTrue only when the rows are further back than the settle horizon explains.
recordsNoPairs sitting at a record high or low for funding, open interest or forced closes, each against the same pair recorded days, with a ready phrase and next-day outcome stats where enough past cases exist.
as_of_dayNoThe day the rows actually describe. This is the honest date, and it is usually not today.
stale_noteNoPresent when stale is true: how far past the horizon the scan has fallen.
computed_atNoWhen the daily scan ran.
coverage_noteNoPresent when stale is false: why these extremes are from as_of_day rather than today.
data_age_daysNoHow many days back as_of_day sits.
expected_lag_daysNoHow far behind live this archive is meant to run.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds that data may be stale, pointing to as_of_day and stale fields, and notes that next-day outcome stats exist only where enough events are available. This is useful context beyond annotations, though it does not fully explain how to interpret staleness.

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 two sentences, front-loaded with the core purpose, followed by a clear caveat about data staleness. Every sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no input parameters and an output schema available, the description need not explain return values. It covers the key elements: what the tool reveals, the staleness caveat, and the descriptive-only nature. It could clarify what 'pairs' refers to, but that is domain-specific context rather than a critical gap.

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?

The tool has zero parameters, so the baseline is 4. The description mentions as_of_day and stale but these are response fields, not inputs. No additional parameter semantics are needed.

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 clearly states it identifies pairs at record highs/lows or in the top/bottom 5% for funding, open interest, or liquidations relative to their own history, and provides next-day outcome stats. This is a specific, resource-focused purpose that distinguishes it from siblings like market_overview or market_history.

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?

It provides context that the tool covers the latest recorded day, not necessarily today, and instructs to check as_of_day and stale before treating data as current. However, it does not explicitly name alternative tools or state when not to use it, so it falls short of a 5.

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

market_historyMarket historyA
Read-onlyIdempotent
Inspect

Daily history: funding rate, open interest, price and liquidation totals for one pair (archived since 2026-03-18), or daily whale buy/sell flow for one coin (since 2026-06-18). Keyless calls cover 30 days; a paid plan reaches the full archive. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoRead the daily whale buy and sell flow lane for one coin instead, for example BTC, recorded since 2026-06-18. Passing coin selects that lane and pair is then ignored. This is the one tool here where coin and pair are different questions, not two spellings of one.
daysNoHow many recorded days to return. Defaults to the whole window, which is also the ceiling: 30 keyless and 400 on a paid plan. Asking for more returns the cap, and the payload says so in `capped`. Both lanes settle several days behind live by design, so read as_of and data_age_days before calling any of it current.
pairNoRead the daily market lane for one pair: funding, open interest, price and liquidation totals, recorded since 2026-03-18. For example ETH/USD; a bare symbol like ETH is read as ETH/USD, and BTC/USD is the default. Ignored when coin is passed, because coin selects the other lane.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin, when the daily whale-flow lane was read.
pairNoThe pair, when the daily market lane was read.
as_ofNoThe newest day in this reply. Not today: both lanes settle several days behind live by design.
priceNoDaily price readings.
staleNoTrue only when the lane is further back than its own settle horizon explains.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
fundingNoDaily funding readings, oldest first, each carrying its own coverage evidence.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
depth_noteNoHow far back the data behind this answer reaches.
stale_noteNoPresent when stale is true: how far past the horizon it has fallen.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
liquidationsNoDaily forced-close totals.
coverage_noteNoPresent when stale is false: why the newest day is not today, and that these days must not be described as current.
data_age_daysNoHow many days back as_of sits.
days_returnedNoHow many recorded days came back.
open_interestNoDaily open interest readings.
hour_of_day_utcNoWhat a typical hour looks like for this coin, as medians per UTC hour. Absent under 14 recorded days.
whale_flow_dailyNoDaily whale buy and sell dollars, when the coin lane was read.
expected_lag_daysNoHow far behind live this lane is meant to run, so a healthy lag can be told from a stopped one.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already convey readOnlyHint, idempotentHint, and non-destructive behavior. The description adds valuable behavioral context by disclosing archive coverage limits, keyless versus paid plan access, and the read-only nature of the data. The schema further discloses settlement delay and as_of/data_age_days, but the main description still adds meaning beyond the annotations.

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 three tight sentences that front-load the core purpose and data fields, then add archive dates, access limits, and read-only status. No sentence is wasted and no important detail is buried.

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 read-only historical data lookup with no required parameters, an output schema, and detailed parameter documentation, the package is complete. The description plus schema covers lane selection, defaults, archive windows, keyless vs paid caps, and the data freshness 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 description coverage is 100%: all three optional parameters are thoroughly documented, including lane selection, pair defaults, coin overriding pair, the days cap, and the capped response field. The main description largely restates what the schema already covers, so a baseline 3 is appropriate.

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 exactly what the tool returns: daily history with funding rate, open interest, price, and liquidation totals for one pair, or daily whale buy/sell flow for one coin. This is a specific verb+resource description and clearly distinguishes the tool from the many snapshot, news, and flow-focused siblings.

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?

The description gives clear usage context: historical daily data for one pair or one coin, archive start dates, keyless 30-day coverage versus paid full archive access, and a read-only 'descriptive market data only' note. It does not explicitly name alternative sibling tools or state when-not-to-use, so it stops short of a 5.

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

market_liquidationsMarket-wide liquidationsA
Read-onlyIdempotent
Inspect

The whole market's forced closes in one call rather than per pair: 24h dollars and counts split long vs short, hour by hour so a cascade is locatable, ranked by coin, plus the biggest single event. Perp dollars come from the venues that publish a liquidation feed, not from every venue we stream, and the Hyperliquid share is a sample of that venue read from tracked wallets, so the totals are a FLOOR. Includes named_liquidations, the wallets that were closed out on Hyperliquid, which no other venue publishes. lending_liquidations rides alongside as a SEPARATE lane (an on-chain debt repaid and collateral seized) and must never be added to the perp numbers. A long is force-closed by selling, so long dollars are sell-side pressure. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
as_ofNoWhen the combined snapshot was taken, as an ISO stamp.
staleNoTrue when the snapshot is older than it should be.
coverageNoWhich feeds fed this snapshot.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
perp_liquidationsNoThe 24h forced-close picture on leveraged markets: count, total_usd, the long and short split in both dollars and counts, hour by hour, the peak hour, the ranked coins, the biggest single event, and which exchanges are behind the totals. Long dollars are sell-side pressure.
named_liquidationsNoHyperliquid closures with the wallet named, which no other market publishes.
lending_liquidationsNoA SEPARATE 24h lane: on-chain debts repaid and collateral seized. count, total_usd, protocols, chains and recent rows. Never add these to the leveraged numbers.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (read-only, idempotent, non-destructive), the description discloses critical caveats: data only from venues publishing liquidation feeds, the Hyperliquid share is a sample, totals are a floor, and long dollars represent sell-side pressure. This is exactly the kind of behavioral context annotations do 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 dense but every sentence adds unique value: scope, data caveats, separate lanes, and interpretation. It is structured logically, starting with the definition, then limitations, then usage warnings, and ending with a clarifying statement about descriptive data. No 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?

Given the tool has an output schema and zero parameters, the description carries the responsibility of explaining the nuanced data behavior. It covers data provenance, aggregation method, the floor nature of totals, the unique named_liquidations, and the separation of lending liquidations. This is complete for a tool of this complexity.

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?

The input schema has zero parameters, so the baseline is 4 per the rubric. The description does not need to add parameter detail because there are none, and the schema coverage is effectively 100%.

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 and resource: "The whole market's forced closes in one call rather than per pair." This clearly distinguishes it from per-pair liquidation tools, and the detailed breakdown (24h dollars/counts, long vs short, hourly, ranked by coin) makes the tool's purpose unambiguous.

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?

The description states the tool is market-wide rather than per-pair, implying it should be used when a whole-market view is needed. It also provides an explicit when-not: lending_liquidations must never be added to perp numbers. However, it does not name specific sibling tools as alternatives, so it stops short of the highest bar.

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

market_moversMarket movers (24h)A
Read-onlyIdempotent
Inspect

The biggest 24h gainers and losers across the streamed top-~300 board, each with price, 24h change and 24h volume (so a move on thin volume shows). Use this for momentum discovery ("which coins are moving most right now", "biggest gainers today", "what is pumping"). For WHY a coin is moving use market_brief; to cross-filter movers by another condition (price up but volume weak, up with negative funding) use market_screener; for unusual WHALE flow specifically use whale_radar. Descriptive market state, never a prediction. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
onlyNoReturn only one side. Omit for both.
limitNoHow many gainers and losers each. Defaults to 8, capped at 25.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, and non-destructive behavior. The description adds valuable context: it is 'Descriptive market state, never a prediction', includes volume so thin-volume moves are visible, and scopes to the streamed top-~300 board. No contradiction with annotations.

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?

The description is densely functional and front-loads the core definition, then provides routing and caveats. The final two clauses ('Descriptive market state, never a prediction. Descriptive market data only.') are slightly redundant, but overall the length is justified by the amount of guidance.

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?

Given the presence of an output schema, full parameter documentation, and annotations, the description covers all critical aspects: scope, content, use cases, alternatives, and non-predictive nature. Nothing essential is missing for an agent to select and invoke it correctly.

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 both parameters (only, limit) are fully described there, including enum values, defaults, and cap. The description does not add meaning beyond the schema, so the baseline score of 3 is appropriate.

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 names a specific resource ('biggest 24h gainers and losers across the streamed top-~300 board') and a concrete purpose (momentum discovery). It clearly distinguishes itself from siblings by naming market_brief, market_screener, and whale_radar for other use cases.

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?

It gives explicit 'Use this for' scenarios with example queries, and explicitly states which alternative tool to use for WHY, cross-filtering, and whale flow. This leaves little ambiguity about when to select this tool.

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

market_overviewMarket overview + regimeA
Read-onlyIdempotent
Inspect

One-call market scan: totals (volume, OI, liquidations, mcap), 24h whale net flow, BTC risk regime (SMA20/50 + breadth), and the top rows by volume. Pass coin to get one symbol's row directly (no paging needed). Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoReturn this coin's row on its own, for example BTC, instead of the whole board. Only coins in the streamed overview (roughly the top 300 by volume) are there; anything else comes back available:false rather than as an empty board.
pairNoAlias for coin.
limitNoMax board rows returned. Defaults to 20, hard ceiling 50 for everyone and no plan raises it. total_rows reports the size of the whole board so a shortened list is visible. Ignored when coin is passed, since that returns a single row.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowNoThat one symbol row: base, price_usd, chg_24h_pct, vol_usd_24h and oi_usd.
coinNoThe symbol asked for, when a single row was requested.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
rowsNoThe board, ranked by volume: base symbol, price, 24h change, 24h volume and open interest.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
regimeNoThe Bitcoin risk state: state, btc_price and breadth_pct. A null state means the field is absent, not neutral.
totalsNoMarket-wide totals: volume, open interest, forced closes and market cap.
summaryNoThe answer in one plain sentence, computed from the fields below. Open the reply with this, then let the numbers back it up. Null only when there was nothing to summarise.
returnedNoHow many rows are in this reply.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
truncatedNoTrue when more rows matched than were returned, so what you have is a page and not the whole set.
total_rowsNoHow many rows the whole board holds.
updated_atNoWhen the snapshot was published.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
coverage_noteNoThe same in one sentence, present only when something is missing.
whale_net_usd_24hNoBuys minus sells across the board over 24h. Null means the field is absent from this snapshot, not that flow was balanced.
unavailable_fieldsNoFields this snapshot is not carrying. They are null because the field is absent, NOT because the value is zero.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds a useful behavioral note with 'Descriptive market data only' and implies no side effects, but it does not disclose pagination nuances or the available:false fallback, which are only in the schema.

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?

Two tight sentences cover the tool's data scope, the single-row mode, and the non-mutating nature. Every clause earns its place, and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only overview tool with no required parameters and a full output schema, the description is nearly sufficient: it explains the purpose, the optional coin shortcut, and that data is descriptive. The only notable gap is lack of explicit guidance on when to prefer this tool over sibling overview-style tools.

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 description coverage is 100%, so the schema already documents coin, pair, and limit thoroughly. The description reinforces the coin behavior and 'no paging needed,' but adds little meaning beyond what the input schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('One-call market scan') and enumerates distinct resources: totals, whale net flow, BTC risk regime, and top rows by volume. This makes the tool's purpose clear, though it does not explicitly contrast itself with close siblings like market_snapshot or market_digest.

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

Usage Guidelines3/5

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

It gives clear context for the default board and a direct instruction for the coin parameter ('Pass coin to get one symbol's row directly'). It does not, however, say when to choose this tool over its many siblings or when not to use it.

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

market_screenerCross-market screenerA
Read-onlyIdempotent
Inspect

Screen every recorded pair in one call: filter by funding_band / oi_band (vs each pair's OWN recorded days: record high, top 5%, top 25%, typical, bottom 25%, bottom 5%, record low), minimum whale-flow multiple vs the coin's own average, and radar-unusual. The discovery call. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows returned. Defaults to 20, hard ceiling 50 for everyone and no plan raises it. `matched` counts every pair that passed the filters regardless, and truncated says whether the rows are a shortened list.
compactNoReturn one plain-text line per matching pair rather than the JSON rows. Defaults to false.
oi_bandNoSame values as funding_band.
funding_bandNoOne of: record high, top 5%, top 25%, typical, bottom 25%, bottom 5%, record low.
unusual_onlyNoKeep only coins the radar currently marks unusual in its 1h, 4h or 24h window. Defaults to false.
whale_mult_minNoKeep only coins whose 24h whale flow is at least this multiple of their own logged daily average, for example 3 for 3x and up. Coins with no logged multiple are dropped rather than treated as zero. Omit for no flow filter.

Output Schema

ParametersJSON Schema
NameRequiredDescription
lineNoOne plain-text line per matching pair, returned only when compact:true was asked for.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
rowsNoOne row per matching pair: pair, coin, price, 24h change, the funding and open interest bands against the same pair recorded days with the day counts behind them, the whale multiple, and whether the ranking currently calls it unusual.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
compactNoPresent and true only on a compact:true call, where the whole answer is the text in `line`.
matchedNoHow many pairs passed every filter, counted before the row cap. Null when nothing was screened.
criteriaNoThe filters as they were actually applied, so a misread argument is visible.
returnedNoHow many rows are in this reply.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
truncatedNoTrue when more rows matched than were returned, so what you have is a page and not the whole set.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
valid_bandsNoThe bands that do exist, returned alongside unknown_band.
unknown_bandNoSet when a band was named that this screen does not know. Nothing was screened, so this is not no matches.
scanned_pairsNoHow many pairs were examined.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is established. The description adds the key behavioral nuance that band comparisons are 'vs each pair's OWN recorded days' and that the whale-flow multiple is relative to the coin's own average, which is useful context beyond the annotations. However, it doesn't describe pagination, rate limits, or exact output behavior beyond what schema/output schema already provide.

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?

The description is a dense two-sentence structure that front-loads the core action ('Screen every recorded pair') and then lists filters. It earns its length by conveying the discovery call scope and relative-band logic, though the parenthetical enumeration of band values (record high, top 5%, etc.) duplicates schema content and could be shortened without losing value.

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 tool has 6 parameters, no required ones, full schema coverage, an output schema, and clear read-only annotations. The description supplies the missing high-level context: this is the cross-market discovery screen ('every recorded pair in one call') and filters are self-relative. It is complete enough for an agent to decide when to invoke and what to expect, without needing to explain return values due to the output schema.

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?

All 6 parameters have complete, detailed descriptions in the schema (100% coverage), so the description does not need to compensate. The description reiterates filter concepts like 'funding_band / oi_band' and 'whale_mult_min' but adds no new parameter-level meaning beyond summarizing what the schema already documents. Baseline 3 is appropriate.

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 'Screen every recorded pair in one call', giving a specific verb, resource, and scope. It then enumerates the filtering dimensions (funding/oi bands, whale-flow multiple, radar-unusual) and ends with 'The discovery call. Descriptive market data only.', which distinguishes it from other market tools like market_snapshot or whale_trades.

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?

The phrase 'The discovery call' clearly signals when to use this tool: when exploring across all recorded pairs. It also notes 'Descriptive market data only', excluding trade execution or data modification. However, it stops short of explicitly naming alternatives for different use cases (e.g., 'for pair-specific data use market_snapshot'), so it lacks formal exclusion guidance.

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

market_snapshotMarket snapshotA
Read-onlyIdempotent
Inspect

One-call market state for a pair: last price, 24h stats, average funding rate, open interest and recent liquidation totals from the venues that publish them. Keyless calls cover the free pairs; a paid plan covers every streamed pair. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoAlias for pair.
pairNoTrading pair, for example ETH/USD. A bare symbol like ETH is read as ETH/USD. Defaults to BTC/USD when omitted. Keyless calls reach the free pairs only; a paid plan reaches every streamed pair. A pair this server does not stream comes back covered:false, and no plan adds it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
pairNoThe pair this snapshot describes.
priceNoLast traded price.
coveredNoFalse when this server does not stream the pair at all. No plan adds it.
fundingNoaverage_rate across the exchanges that publish one, and exchange_count behind that average.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
stats_24hNoThe 24h statistics block: open, high, low, close, change and volume.
free_pairsNoThe pairs a keyless connection can read, returned when the pair asked for is not one of them.
vs_historyNoWhere funding and open interest sit against the same pair recorded days: a phrase, a band and how many days back the comparison reaches. Null under 30 recorded days.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
open_interest_usdNoOpen interest in dollars, summed across the exchanges that publish it.
exchanges_streamingNoHow many exchanges are currently streaming this pair.
liquidations_recentNoRecent forced closes for this pair: count, total_usd, the long and short split in counts and dollars, and window_minutes, without which a count cannot be read. available:false here means no reading, not zero.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already signal read-only, idempotent, and non-destructive behavior. The description adds useful behavioral context by disclosing the keyless vs. paid plan coverage and stating "Descriptive market data only," which reinforces the read-only nature. It also notes that data comes "from the venues that publish them," giving agents insight into data sourcing without contradicting annotations.

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 three short sentences with no redundant phrasing. It front-loads the core purpose and data fields, then covers access and read-only nature efficiently. Every sentence contributes meaningful information without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, read-only snapshot tool with an output schema and strong annotations, the description covers the essential context: what data is returned, access level requirements, and the descriptive nature of the call. It does not cover alternative selection, but that falls under usage guidance; the tool can be invoked correctly based on this description.

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 description coverage is 100%, so the schema fully documents both 'coin' and 'pair' parameters, including defaults and access implications. The description does not add parameter-level detail beyond the schema; 'pair' is implied by "for a pair," but this is already well-covered. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's specific function: "One-call market state for a pair" and enumerates the exact data fields (last price, 24h stats, average funding rate, open interest, recent liquidation totals). It names the resource (pair) and uses a specific verb, making the purpose straightforward, though it does not explicitly differentiate from siblings like market_brief or market_overview beyond its field list.

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

Usage Guidelines2/5

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

The description gives access-tier guidance ("Keyless calls cover the free pairs; a paid plan covers every streamed pair") and labels the tool as "Descriptive market data only," but it provides no guidance on when to use this tool versus alternatives such as market_brief, market_digest, or market_overview. No exclusions or alternative selection criteria are mentioned.

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

my_accessWhat this connection includesA
Read-onlyIdempotent
Inspect

What THIS connection can and cannot see: whether it is on the free plan (on_free_plan), how many credits are left and roughly how many more tool calls that buys, which tier it is on, the exact row cap and time window every tool applies to it right now, what is locked, and precisely what lifts each limit. Call it whenever the user asks what they get, how many credits they have, why a result came back capped (any payload carrying a capped field), or how and where to upgrade. Only an active paid plan lifts the caps here (one subscription works across the website, your AI and the REST API on a shared credit balance), and this settles the thing people get wrong most often: a free API key lifts no cap here either (it gives this connection its own rate limit instead of a shared one, and unlocks the metered REST endpoints, but changes nothing in here). Free to call and never metered.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
capsNoThe row cap and time window every capped tool applies right now, each with the free value and the paid-plan value beside it.
tierNoWhich of four states this connection is in: keyless, signed_in_free, coinlobster_pro or developer_plan.
plainNoOne sentence describing this tier in the user own words rather than ours.
creditsNoThe balance: credits_remaining, plan, plan_active, credits_per_call, calls_left_estimate and where to top up. A null credits_remaining always carries a note saying WHY, because could not read and spent to zero send a user to two different places.
meteredNoWhether calls cost credits on this connection, and how much.
free_pairsNoThe pairs this connection can read. A list when keyless, the words every streamed pair on a paid plan, or a short sentence when the market lane could not be read.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
how_to_liftNoWhat lifts the caps, where to get it, and (as not_this) the two things people buy by mistake that change nothing here.
locked_hereNoWhat this connection cannot reach right now. Empty on a paid plan.
on_free_planNoTrue when this connection reads free-shaped data. The single fact most users are asking for.
authenticatedNoTrue when any valid sign-in or key was presented.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and idempotentHint, and the description adds meaningful behavioral context: it is free to call, never metered, and changes nothing about the connection's caps. It also explains the shared credit balance behavior and the common misconception about free API keys, beyond what annotations can convey.

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?

The description is long but every sentence adds necessary behavioral or usage detail, and the opening phrase front-loads the core scope. It could be lightly restructured into shorter sentences for easier scanning, but it is not padded or redundant.

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 zero-parameter access-info tool with an output schema, the description fully covers what the agent needs: what the tool returns conceptually, when to invoke it, what does not affect it, and how the cap-lifting model works. No critical calling context 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?

The tool has zero parameters, so the description carries no parameter burden; the baseline of 4 applies. It adds value by clarifying what output dimensions the agent can expect, such as exact row caps, time windows, and locked items, which supports interpretation of the result even without parameter docs.

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: it tells the agent this tool explains what the connection can and cannot see, covering plan tier, credits, row caps, time windows, and locked features. It is clearly distinct from the market-data siblings, which all report on crypto/DeFi content rather than the user's own access entitlements.

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?

It gives explicit triggering conditions: call it when the user asks what they get, how many credits they have, why a result was capped, or how to upgrade. It also states when not to expect change, clarifying that a free API key does not lift caps and that only an active paid plan affects the limits.

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

onchain_whalesOn-chain DEX whale swapsA
Read-onlyIdempotent
Inspect

Executed DEX whale swaps on Ethereum, Base and Arbitrum, each carrying the wallet, the DEX, the token and the USD size. Use this to see WHO is swapping large size on chain and in what ("which wallets are buying PEPE", "large DEX swaps today"). Filter by chain, coin or minimum size. For chain-level DeFi totals use defi_summary; for one address's full history use dex_wallet; for CEX whale flow use whale_trades. Keyless. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter to one token symbol, for example PEPE. A pair like ETH/USD works too, the quote leg is dropped. One symbol, not a list. Omit for every token.
pairNoAlias for coin.
chainNoRestrict to one chain: ethereum, base, arbitrum. Anything else is refused by name rather than answered as nothing happening there. Omit for all of them.
limitNoMax swaps returned. Defaults to 50, hard ceiling 200 for everyone and no plan raises it.
min_usdNoSmallest swap to return, in US dollars, for example 500000 for $500K and up. Omit for everything above the size floor this feed already records, which is not every swap on chain.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
countNoHow many rows this reply carries.
swapsNoThe swaps, each carrying the wallet that signed it, the exchange it went through, the token and the dollar size.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
unknown_chainNoSet when a chain was named that this feed does not index. Nothing was searched, so this is not no swaps there.
chains_coveredNoThe chains this feed indexes.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive, so the description need not repeat those. It adds useful behavioral context: the tool is keyless, provides descriptive market data only, and records only swaps above a size floor rather than every swap on chain. This goes beyond what annotations convey, though it could say slightly more about response ordering or recency.

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 compact, front-loads the core behavior, and every sentence earns its place: what is returned, when to use it, how to filter, and which siblings to choose instead. The use-case examples make it immediately actionable without bloating the text.

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?

Coverage is complete given the presence of a rich input schema, output schema, and annotations. The description supplies the selection context, filters, alternative tools, and data character while leaving schema-level details to the schema. An agent has enough to decide whether and how to call this tool.

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?

Input schema covers all 5 parameters with descriptions, so the baseline is 3. The description reinforces that filtering by chain, coin, or minimum size is possible and clarifies the 'coin' use case, but it does not add substantial parameter meaning beyond what the schema already provides.

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 exactly what the tool does: returns executed DEX whale swaps on Ethereum, Base, and Arbitrum along with wallet, DEX, token, and USD size. It also distinguishes itself from sibling tools by naming alternatives for related but different use cases, so an agent can select it confidently.

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?

It gives explicit usage examples such as 'which wallets are buying PEPE' and 'large DEX swaps today', states the available filters (chain, coin, minimum size), and names three sibling tools to use instead for different intents: defi_summary, dex_wallet, and whale_trades. This is clear when-to-use and when-not-to-use guidance.

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

optionsOptions intelligence (Deribit)A
Read-onlyIdempotent
Inspect

The options picture for BTC or ETH from Deribit: total open interest, the strikes holding the most of it (the walls, which act as magnets into expiry), the put/call balance, max pain per near expiry, the implied-vol regime (DVOL), and recent large option trades. Aggregate market structure, keyless; the large-trade feed deepens on a paid plan. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoBTC or ETH (the only coins Deribit lists options for). A pair like BTC/USD works too, the quote leg is dropped. Defaults to BTC.
pairNoAlias for coin.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin these options are for (BTC or ETH).
dvolNoImplied-vol index: how big a swing the market is pricing in. Lower is calmer.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
venueNoAlways Deribit.
maxPainNoPer near expiry, the strike where the most options expire worthless.
summaryNoThe answer in one plain sentence, computed from the fields below. Open the reply with this, then let the numbers back it up. Null only when there was nothing to summarise.
expiriesNoOpen interest grouped by expiry date, with days to go.
putOiUsdNoOpen interest sitting in puts (downside protection), in USD.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
callOiUsdNoOpen interest sitting in calls (upside bets), in USD.
updatedAtNoWhen this snapshot was published.
gammaWallsNoThe strikes holding the most open interest, biggest first, with the call and put split. These often act as magnets into expiry.
putCallRatioNoPut open interest divided by call open interest. Above ~1.15 is put-heavy, below ~0.7 is call-heavy.
coins_coveredNoThe coins options are carried for (BTC, ETH).
openInterestUsdNoTotal open interest in USD across all listed options.
underlyingPriceNoSpot price of the coin, from the venue.
recentLargeTradesNoLarge option buys and sells above a size floor, newest first. Deeper on a paid plan.
recentTradesTruncatedNoTrue when the large-trade list was shortened for a keyless caller.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly=true, idempotent=true, and destructve=false. The description adds worthwhile behavioral context: it is keyless, it is 'Descriptive market data only', and the large-trade feed deepens on a paid plan. No contradiction with the annotations exists.

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?

The description is compact, front-loaded with the resource and data contents, then adds auth and safety caveats in short declarative sentences. The parenthetical 'which act as magnets into expiry' is a little extra but still informative; overall no sentence is waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a rich output schema, full parameter schema coverage, and safety annotations, the description covers coins, exchange, data fields, auth model, paid-plan limitation, and descriptive nature. It is complete enough for an agent to invoke correctly, though it could have briefly noted when not to choose it among the many sibling market tools.

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 description coverage is 100%, so the baseline is 3. The schema already documents coin and pair, including that BTC/ETH are the only supported coins and that BTC is default. The tool description repeats 'BTC or ETH' but does not add new parameter-level semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource (Deribit BTC/ETH options) and the exact data points returned: open interest, strike walls, put/call balance, max pain, DVOL, and large trades. It uses a noun phrase ('The options picture') rather than a direct verb, but the scope and contents are unmistakable. It distinguishes itself from siblings by focusing on options-specific intelligence rather than general market data, though it does not name an alternative.

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

Usage Guidelines3/5

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

The descriptionmakes the use case clear by enumerating options-relevant fields and saying it is aggregate market structure, so an agent can infer to use it for options sentiment/positioning questions. However, it does not explicitly state when to prefer it over siblings like market_snapshot or market_overview, nor mention exclusions or conditions.

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

price_candlesNear-live price barsA
Read-onlyIdempotent
Inspect

Near-live price bars (OHLCV) for a pair: interval "1h" (default) or "1d", oldest first, each bar { t, o, h, l, c, v }. This is the lane a bot reads to compute its OWN indicators (moving averages, momentum, whatever it wants), so CoinLobster does not need to ship them. NEAR-LIVE and separate on purpose from market_history, which is the daily archive that settles days behind: every reply carries newest_candle_age_min and stale so a live lane is never confused with a stopped one. Keyless covers the free pairs up to 168 bars; a paid plan covers every streamed pair up to 720 bars (asking for more returns the cap and says so in capped). The newest bar is still forming. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoAlias for pair.
pairNoTrading pair, for example ETH/USD. A bare symbol like ETH is read as ETH/USD. Defaults to BTC/USD when omitted. Keyless calls reach the free pairs only; a paid plan reaches every streamed pair. A pair this server does not stream comes back covered:false.
limitNoHow many bars, newest-ending. Capped at 168 keyless and 720 on a paid plan; asking for more returns the cap, and the payload says so in `capped`.
intervalNoBar length: "1h" (default) or "1d". Anything else is read as 1h.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
pairNoThe pair these candles are for.
as_ofNoThe time of the newest bar, in milliseconds.
countNoHow many rows this reply carries.
staleNoTrue only when the newest bar is older than a live lane explains. When true the numbers are stopped, not the current price.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
candlesNoThe bars, oldest first, each { t, o, h, l, c, v }: time, open, high, low, close and volume. The newest bar is still forming. This is the NEAR-LIVE lane, not the days-behind daily archive that market_history reads.
coveredNoFalse when this server does not stream the pair at all. No plan adds it.
intervalNo1h or 1d. The bar length each candle covers.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
free_pairsNoThe pairs a keyless connection can read, returned when the pair asked for is not one of them.
stale_noteNoPresent when stale is true: how far past live the newest bar has fallen.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
newest_candle_age_minNoHow many minutes old the newest bar is, so a live lane can be told from a stopped one.

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses staleness fields (newest_candle_age_min, stale), the plan-based caps (168 vs 720), the capped field, the fact that the newest bar is still forming, and that it is descriptive data only. This goes well beyond the annotations and accurately reflects the operational behavior.

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 dense but every clause addes value: resource, interval, format, ordering, intended use, distinction from sibling, staleness fields, plan caps, and data-only nature. No waste and front-loaded with the core purpose.

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?

Combined with the rich schema and output schema, the description covers defaults, caps, error responses (capped/covered), freshness, ordering, and the live-vs-archive distinction. An agent has everything needed to invoke this tool correctly and interpret its role.

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?

The input schema already documents all four parameters with 100% coverage, including defaults, plan caps, and invalid-interval fallback. The description restates those limits and defaults rather than adding new parameter-level meaning, though it does add context about bar ordering and OHLCV structure.

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 clearly states a specific resource (OHLCV price candes) and the action (retrieving near-live bars). It dintinguishes itself from market_history by emphasizing it is the live, bot-facing lane, so an agent can select it without opening sibling schemas.

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?

It expliciitly says this tool is for a bot computing its OWN indicators and separately on purpose from market_history, which settles days behind. This gives clear when-to-use guidance and names the alternative to avoid confusion.

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

signal_outcomesSignal outcomes (what happened after)A
Read-onlyIdempotent
Inspect

Recorded signals with the price when each fired and the price afterwards, logged live and never backfilled: whether a whale, funding or other signal has historically led anywhere. The plain-English name for flag_outcomes (identical data and credit cost). Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter to one coin, for example BTC. A pair like ETH/USD works too, the quote leg is dropped. One symbol, not a list. Omit for every coin.
pairNoAlias for coin.
typeNoFilter to one signal type. One of: whale-spike, funding-extreme, squeeze-flip, liq-cascade, flow-divergence, major-pctile, major-block, deriv-record. The underscore spellings used by alert rules (for example funding_extreme, or spike for whale-spike) are accepted too. Anything else is refused by name rather than answered as every signal. Omit for all types.
hoursNoHow far back to look, in hours. Defaults to 48. Capped at 168 keyless and 720 on a paid plan; asking for more returns the cap, and the payload says so in `capped`. The all_time block is unaffected by this window.
limitNoMax rows returned. Capped at 25 keyless and 500 on a paid plan; asking for more returns the cap, and the payload says so in `capped`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin filter applied, or null for all coins.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
typeNoThe signal type filter applied, or null for all types.
countNoHow many rows this reply carries.
hoursNoThe window actually read, in hours.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
signalsNoThe signals that fired in the window, each with its type, coin, fire time, price at fire time and later price outcomes where they have been scored.
all_timeNoPermanent counters from the archive, independent of the window asked for: fired, scored_h24, since, through and by_type.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
aggregatesNobyType: how many fired per signal type inside the window.
depth_noteNoHow far back the data behind this answer reaches.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
valid_typesNoThe signal types that do exist, returned alongside unknown_type.
unknown_typeNoSet when the type asked for is not one this record keeps. Nothing was filtered and nothing was searched.
total_in_windowNoHow many signals fired in the whole window, before the row cap.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/destructive annotations, the description adds meaningful behavioral context: data is 'logged live and never backfilled', it has identical credit cost to flag_outcomes, and it is 'descriptive market data only'. This gives an agent operational expectations that annotations alone do not convey.

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 three dense, purposeful sentences: what the tool does, the live/backfill behavior, and the sibling alias. There is no filler, and the most important semantic is front-loaded.

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 full parameter schema coverage, an output schema present, and annotations covering safety and idempotence, the description adds the remaining needed context: data provenance, alias relationship, cost, and descriptive nature. Nothing material is missing for an agent to select and invoke this tool correctly.

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 description coverage is 100%, so the parameter schema already documents coin, pair, type, hours, and limit thoroughly. The description adds no per-parameter meaning beyond what the schema provides, which puts it at the baseline of 3.

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 exactly what the tool returns: recorded signals with the price at fire time and afterwards, showing whether signals historically led anywhere. It also explicitly identifies itself as the plain-English alias for flag_outcomes, which distinguishes it from a key sibling without needing to inspect schemas.

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?

The description explicitly names flag_outcomes as the identical counterpart and notes the same data and credit cost, which effectively tells an agent this tool is interchangeable with that sibling. It does not provide broader when-to-use versus other sibling tools, but for a tool that is an alias this is adequate context.

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

smart_moneySmart Money (proven cohort)A
Read-onlyIdempotent
Inspect

What the PROVEN trader cohort is holding and trading, coin by coin. The cohort is not a guess at who is smart: it is Hyperliquid leaderboard accounts screened for provable profit (equity band, month and all-time PnL and ROI, volume-to-equity) and then verified against their own fills to trade at a cadence a person could follow. Two blocks, two different units, never added: positions_held is notional currently open, flow_traded is dollars executed inside the window (1h, 4h or 24h). Every row carries the wallet COUNT behind it and a thin flag when fewer than 3 cohort wallets are in it, because a one-wallet row is one person and not a cohort. cohort.rosterAgeHours is how old the MEMBERSHIP screen is (up to 24h), which is a separate fact from updated_at. Wallets whose live book could not be read are reported as unprofiled and are never counted as flat. Keyless. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
windowNoWhich window flow_traded covers: 1h, 4h or 24h. Defaults to 24h. It does not move positions_held, which is always what the cohort holds right now, and windows_available in the reply lists what the roll-up actually published.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
venueNoWhich market the cohort trades on.
cohortNoWho is in the cohort and how it was screened, including rosterAgeHours, the age of the membership screen.
windowNoWhich window flow_traded covers: 1h, 4h or 24h.
summaryNoThe answer in one plain sentence, computed from the fields below. Open the reply with this, then let the numbers back it up. Null only when there was nothing to summarise.
coverageNoWhich wallets could be read, and which are reported as unprofiled rather than counted as holding nothing.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
updated_atNoWhen the roll-up was published. Separate from how old the membership screen is.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
flow_tradedNoDollars EXECUTED inside the window per coin, same row shape. A different unit from positions_held and never added to it.
flow_withheldNoHow many traded rows were not returned at this access level.
positions_heldNoDollars currently OPEN per coin, with the wallet count behind each row and a thin flag under 3 wallets.
windows_availableNoThe windows the roll-up actually published.
positions_withheldNoHow many holding rows were not returned at this access level.

TDQS

A4.7/5.0
Behavior5/5

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

The description adds substantial behavioral detail beyond the annotations: positions_held and flow_traded are never added despite different units, unprofitable/unreadable wallets are never counted as flat, and rosterAgeHours is distinct from updated_at. These edge-case disclosures are valuable and consistent with the readOnly/idempotent annotations.

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?

The description is dense and front-loaded with the core purpose, and every sentence carries useful information. It is somewhat long and includes detailed methodology that could be trimmed, but it remains well-structured and free of 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?

Given the tool has an output schema, the description does not need to explain return values, and it covers the essential behavioral nuances: cohort definition, data units, wallet counts, flags, roster freshness, and unreadable-wallet handling. Nothing critical is missing for an agent to call this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema already covers the window parameter at 100%, the description enriches it by clarifying what window affects (flow_traded, not positions_held), the unit semantics, and that windows_available in the reply reflects what was actually published. This goes well beyond the bare enum definition.

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 clearly states the verb and resource: it reports what the PROVEN trader cohort is holding and trading, coin by coin. It also distinguishes itself from other tools by defining the cohort as Hyperliquid leaderboard accounts screened for provable profit rather than a guess.

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?

The description provides clear context for when this tool is relevant — accessing proven-cohort holdings and traded flow — and notes it is keyless and descriptive. It does not explicitly name alternative tools or state when not to use it, so it falls short of a 5.

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

squeeze_scoreSqueeze Score (crowding)A
Read-onlyIdempotent
Inspect

A fused 0-100 crowding read for one pair (funding + long/short accounts + taker imbalance + OI trend) with the overexposed side. Use this when the user asks how crowded or squeeze-prone a coin is, or which side is over-leveraged ("how crowded is BTC", "is ETH set up for a long squeeze"). For WHERE forced closes would land use liq_zones; for forced closes that already happened use liquidations/market_liquidations. Descriptive, never a trade signal or a prediction. Needs a paid plan. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoAlias for pair.
pairNoTrading pair, for example ETH/USD. A bare symbol like ETH is read as ETH/USD. Defaults to BTC/USD when omitted. A paid plan is needed for any pair here: without one the call is refused before the pair is even read.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
pairNoThe pair this crowding read describes.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
updated_atNoWhen the read was computed.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
by_exchangeNoThe same read broken out per exchange.
crowded_sideNoWhich side is overexposed, long or short.
squeeze_scoreNoCrowding from 0 to 100. Descriptive, not a trade signal.
long_short_ratioNoLong accounts against short accounts.
taker_buy_sell_ratioNoAggressive buying against aggressive selling.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is known. The description adds meaningful context beyond that: 'Descriptive, never a trade signal or a prediction' and 'Needs a paid plan' (auth requirement), plus the note that the call is refused without a paid plan for any pair. No contradiction with annotations.

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?

The description is ~80 words, front-loaded with the core function, then use cases, alternatives, and caveats. It is well-structured, but there is minor redundancy between 'Descriptive, never a trade signal or a prediction' and 'Descriptive market data only' that prevents a perfect score.

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 covers when to use the tool, when not to (explicit alternatives), the paid-plan requirement, and its non-predictive nature. An output schema exists, so return format is covered. Nothing essential an agent needs to select and call this tool correctly is missing.

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 description coverage is 100%, and the description repeats rather than extends the parameters: 'coin' as alias and 'pair' details (e.g., 'Defaults to BTC/USD when omitted') are already in the schema. No added semantic value beyond the schema, so the baseline of 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?

The description states a specific function: a 'fused 0-100 crowding read' for one pair, listing the underlying components (funding, long/short accounts, taker imbalance, OI trend) and the overexposed side. It differentiates from siblings by explicitly routing WHERE forced closes land to liq_zones and past forced closes to liquidations/market_liquidations.

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 explicit when-to-use guidance: 'Use this when the user asks how crowded or squeeze-prone a coin is, or which side is over-leveraged,' with concrete example queries. It also names alternatives for other specific intents, so an agent can route correctly.

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

trade_contextOne-call trade contextA
Read-onlyIdempotent
Inspect

The pre-trade context blob in one call: price, cross-venue funding with time-to-next-funding and carry arithmetic (optional position_usd), open interest, whale flow vs the coin's own baseline, and recent visible liquidations, on ANY streamed pair keyless. compact: true returns the one-line composed answer (about 30 tokens). A paid plan adds the percentile judgment vs the pair's own recorded days, whale USD magnitudes, full 24h stats and the crowding score. Strictly descriptive: state plus recorded history, no advice. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoAlias for pair.
pairNoTrading pair, for example ETH/USD. A bare symbol like ETH is read as ETH/USD. Defaults to BTC/USD when omitted. Any streamed pair answers keyless; off the free pairs a keyless reply is the lite shape and names what it withheld in locked_layers.
compactNoReturn one line of plain text rather than the JSON blob, about 30 tokens instead of 800. Same facts, same windows, same dates, no structured fields to read. Defaults to false.
position_usdNoPosition size in US dollars, for example 25000. Above zero only. When given, carry_cost adds per_day_usd_at_current_rate, the dollars a day the current funding average across exchanges works out to at that size. Arithmetic on the rate as it stands now, not a projection of future rates. Omit and carry_cost still carries the percentage and APR figures.

Output Schema

ParametersJSON Schema
NameRequiredDescription
lineNoThe composed one-line answer, returned only when compact:true was asked for. The same facts, the same windows and the same dates as the full shape.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
pairNoThe pair this context describes.
depthNoWhich shape came back: lite, free-pair or keyed.
priceNoLast traded price.
compactNoPresent and true only on a compact:true call, where the whole answer is the single line in `line`.
fundingNoaverage_rate across exchanges, how many exchanges are in it, the interval in hours, and minutes to the next funding time.
crowdingNoThe crowding read and the overexposed side. Null without a paid plan.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
stats_24hNoThe 24h statistics block. Absent on the lite shape, where locked_layers names it.
carry_costNoArithmetic on the current funding average: percent per day, the same as an annual rate, which side pays, and dollars a day when position_usd was passed. Not a projection of future rates.
whale_flowNoWhale direction against the same coin logged baseline: the multiple, days logged, record and N-day-high flags, and buy share now versus 7 days. Dollar sizes are added on a paid plan.
price_readsNoPlain descriptions of price against its own recent hours, computed from hourly candles: vs_recent_average (above or below its 50-hour and 200-hour average, and which way it is drifting), recent_move (how stretched the latest move is, plus the change against 7 days ago) and choppiness (calm, normal or choppy). Each block is available:true with values or available:false with a plain reason; a leg with too few recorded hours is null with a note, never a made-up neutral. Descriptive, not a trade signal.
locked_layersNoNamed rather than silently missing: which blocks this connection did not receive.
vs_own_historyNoWhere funding and open interest sit against the same pair recorded days: phrase, band, day count, the date the reading is from, and how past cases resolved.
open_interest_usdNoOpen interest in dollars across the exchanges that publish it.
liquidations_recentNoForced closes visible right now: count, long_usd, short_usd and window_minutes. A timing series, market-wide totals run higher.

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare readOnly, idempotent, non-destructive, and the description adds substantial behavior beyond that: keyless access, a free-vs-paid plan split (percentile judgment, whale USD magnitudes, 24h stats, crowding score), compact-mode output shape (~30 vs 800 tokens), and the position_usd-gated carry arithmetic when omitted. No contradiction with the annotations.

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?

The description is front-loaded with its content list and every clause carries information. It is mildly redundant at the close — 'Strictly descriptive' followed by 'Descriptive market data only' restate the same idea — and the opening sentence is a long single clause, costing it the top score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full parameter coverage, the description need not explain return values, and it covers scope, plan tiers, compact mode, and the no-advice boundary. Remaining gaps are minor: 'keyless' is asserted without elaboration, and coin-vs-pair precedence when both are supplied is left unresolved.

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 description coverage is 100% and each parameter is already richly documented in the schema (pair bare-symbol expansion, compact token counts, position_usd carry math). The description only cross-references position_usd as optional carry input, so it adds little beyond the schema — 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?

The description states a specific composite deliverable — 'The pre-trade context blob in one call' — and enumerates its composition: price, cross-venue funding with carry arithmetic, open interest, whale flow, and recent visible liquidations. The composite one-call framing inherently distinguishes it from single-aspect siblings such as funding_matrix, coin_liquidations, and whale_flow.

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?

It establishes clear usage context — 'pre-trade context in one call', 'on ANY streamed pair keyless' — and gives mode-level guidance for compact: true (one-line ~30-token answer). It also draws an exclusion boundary with 'Strictly descriptive... no advice', though it never names a preferred alternative when only one data type is needed.

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

whale_activityWhat whales are doing with one coinA
Read-onlyIdempotent
Inspect

Everything the recorded whale record can say about ONE coin in one call: net flow over 1h, 4h, 24h and 7d, the CEX / on-chain / Hyperliquid split, which of the 15 streamed CEX venues hold it, and flow measured against price. The plain-English name for whale_profile (identical data and credit cost), and the first tool for a general "what are whales doing with SOL" question. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoCoin symbol, for example BTC. A pair like ETH/USD works too, the quote leg is dropped. Required: with nothing to look up the call is refused rather than answered about a different coin.
pairNoAlias for coin.
hoursNoHow far back to read the record (min 168, i.e. 7 days). The reported windows are always 1h, 4h, 24h and 7d.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin this profile describes.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
caveatNoA real limit on this answer, in one clause. Present only when something genuinely narrows what can be said.
venuesNoWhich of the streamed exchanges the flow actually sits on and how concentrated it is. split marks two exchanges on opposite sides; partial marks a window whose exchange dollars are unknown rather than zero.
sourcesNoThe CEX, on-chain and Hyperliquid split, including sourceSplit when those markets sit on opposite sides.
summaryNoThe answer in one plain sentence, computed from the fields below. Open the reply with this, then let the numbers back it up. Null only when there was nothing to summarise.
windowsNoNet flow per window, keyed 1h, 4h, 24h and 7d. A window states hoursCovered only when it holds fewer hours than it spans.
coverageNoHow much of the window carries a recorded reading.
pressureNoFlow measured against price. state is absorption, distribution or confirming. When there is no state, reason names why (price-coverage, flow-too-small, price-flat), which means not enough to say, never no activity.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
depth_noteNoHow far back the data behind this answer reaches.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds value by emphasizing 'Descriptive market data only' and clarifying that this is identical in behavior and cost to whale_profile. It does not contradict any annotation and gives extra semantic context about the nature of the data.

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?

The description is dense but not bloated, front-loading the main purpose and then enumerating specific outputs. The phrase 'recorded whale record' is slightly awkward, but the structure is efficient and informative without unnecessary filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich output schema, annotations, and the tool's complexity, the description covers the core selection-relevant context: what data is returned, that it is descriptive, and how it relates to whale_profile. It could add an example or clarify input constraints beyond the schema, but it is sufficiently complete for an agent to call it correctly.

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 description coverage is 100%, so the parameters are already documented at the schema level. The tool description does not add much parameter-level detail, but it reinforces the 'one coin' focal point. This meets the baseline for a fully schema-documented tool.

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 names a specific resource ('ONE coin'), a clear scope ('net flow over 1h, 4h, 24h and 7d...'), and the exact output categories. It also differentiates itself from whale_profile by explicitly stating it is the 'plain-English name' with identical data and credit cost. This gives an agent a precise understanding of what the tool does.

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?

The description provides actionable usage context: it is 'the first tool for a general "what are whales doing with SOL" question' and positions itself as the human-friendly alias for whale_profile. It does not explicitly spell out when not to use it, but the use-case framing is clear enough for tool selection among many siblings.

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

whale_contextWhale flow vs own historyA
Read-onlyIdempotent
Inspect

Per-coin whale flow vs that coin's OWN logged history: multiple of its daily average, N-day-high flags, buy share now vs 7d. The "is this unusual for THIS coin" call; coin accepts a comma-separated list for portfolio briefs (single coin returns a flat object; a list returns {coins:[...]}). Keyless returns multiples and records (USD magnitudes need an active paid plan). Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoCoin symbol, for example BTC, or a comma-separated list of up to 15 for a portfolio in one call. A single coin returns a flat object, a list returns {coins:[...]} with an available:false entry for any member with no logged history. Omit for the 15 coins sitting at the highest multiple right now.
pairNoAlias for coin.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin this row describes, when one coin was asked for.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
coinsNoOne row per coin when a comma-separated list was asked for. A member with no logged history comes back as available:false.
breadthNoHow wide the buying or selling is across the coins with logged history.
summaryNoThe answer in one plain sentence, computed from the fields below. Open the reply with this, then let the numbers back it up. Null only when there was nothing to summarise.
usd_24hNoTotal whale dollars in the last 24h.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
since_dayNoThe first day this baseline covers.
valid_daysNoHow many days of the baseline hold usable readings.
days_loggedNoHow many days wide the baseline window is.
net_usd_24hNoBuys minus sells in the last 24h.
buy_share_7dNoShare of the last 7 days dollars that were buys, 0 to 1.
ranking_noteNoHow the list is sorted, and why a thin_baseline row can sit near the top without meaning anything.
buy_share_24hNoShare of the last 24h dollars that were buys, 0 to 1.
thin_baselineNoTrue when about one day of flow sits in the whole window, so the multiple is close to the day count by construction and is not evidence of unusual activity.
highest_in_daysNoHighest flow in this many days, or null.
mult_vs_avg_24hNoHow many times its own logged daily average the last 24h of flow is.
record_high_dayNoTrue when this is the highest recorded day for the coin.
top_by_multipleNoThe coins sitting at the highest multiple right now, when no coin was asked for.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds meaningful behavior beyond that: keyless access returns multiples and records, USD magnitudes require an active paid plan, the response shape differs between single coin and list inputs, and 'descriptive market data only' reinforces its non-mutating nature. No contradiction with annotations.

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?

Three dense sentences with no filler. The core differentiator is front-loaded, followed by input/output behavior and access-tier caveat. Every sentence earns its place.

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?

Given the tool is read-only, idempotent, has only two well-documented params, and has an output schema, the description covers the essential operational facts: purpose, call shape, list behavior, keyless access, and paid-plan limitation. There is no meaningful gap for an agent to invoke it correctly.

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 description coverage is 100%, and the schema fully documents coin's comma-separated list behavior, flat vs {coins:[...]} response shapes, the available:false entry, omit behavior, and pair as an alias. The description largely restates this rather than adding new parameter-level meaning, so the 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?

The description opens with a specific verb+resource: 'Per-coin whale flow vs that coin's OWN logged history', and explicitly brands itself as the 'is this unusual for THIS coin' call. This clearly distinguishes it from broader siblings like whale_flow or whale_activity.

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?

The description establishes clear context: use this tool when you need to judge whether current whale flow is unusual relative to a coin's own history, and it explains the omit-coin behavior for top movers. However, it does not explicitly name sibling alternatives or state when not to use it, so it stops short of full exclusion guidance.

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

whale_flowWhale flow by hourA
Read-onlyIdempotent
Inspect

Hourly buy and sell USD flow buckets for one coin, CEX and DEX split, over a rolling window. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoCoin symbol, for example BTC. A pair like ETH/USD works too, the quote leg is dropped. Required: with nothing to look up the call is refused rather than answered about a different coin.
pairNoAlias for coin.
hoursNoHow many hours of hourly buckets to read back. Defaults to the whole window, which is also the ceiling: 168 keyless and 720 on a paid plan. Asking for more returns the cap, and the payload says so in `capped`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin these hours belong to.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
rowsNoOne row per recorded hour: the hour stamp, buy and sell dollars, and the CEX / on-chain / Hyperliquid split. The per-hour wallet list and per-exchange table are not carried here (see whale_profile and hl_whales for those); this tool is the hourly timeline.
countNoHow many hours carry a recorded reading. Fewer than hours means the rest were never recorded, not that they were quiet.
hoursNoHow many hours back were read.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
summaryNoThe answer in one plain sentence, computed from the fields below. Open the reply with this, then let the numbers back it up. Null only when there was nothing to summarise.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
depth_noteNoHow far back the data behind this answer reaches.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description does not need to re-establish safety. It adds useful behavior beyond annotations: descriptive market data only, rolling window, one-coin scope, and CEX/DEX split. No contradiction with annotations.

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 a single focused sentence that front-loads the core data shape and scope. Every clause adds useful information without repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description, combined with rich parameter descriptions, annotations, and an output schema, gives an agent enough context to call the tool correctly. Minor missing context, such as explicit naming of alternatives, does not prevent correct use.

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 description coverage is 100%, so the schema already documents coin, pair, and hours in detail. The description itself does not add parameter-level semantics, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states exactly what the tool returns: hourly buy/sell USD flow buckets for one coin, split by CEX and DEX, over a rolling window. It is specific and distinct from most sibling tools, though it does not explicitly name a sibling it 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 Guidelines3/5

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

The description conveys the data domain and scope clearly, so an agent can infer when hourly CEX/DEX flow data is needed. However, it offers no explicit guidance about when to prefer this tool over related whale/market tools, nor any exclusion criteria.

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

whale_profileOne coin, whole whale pictureA
Read-onlyIdempotent
Inspect

Everything the recorded whale record can say about ONE coin in a single call: net flow over 1h, 4h, 24h and 7d; the CEX, on-chain and Hyperliquid split; WHICH of the 15 streamed CEX venues the flow actually sits on and how concentrated it is; whether two venues sit on opposite sides (venues.split) or the CEX and on-chain markets disagree outright (sources.sourceSplit); the current run of same-direction hours; and flow measured against price. pressure.state is one of absorption (whales bought while price fell), distribution (sold while it rose) or confirming (flow and price agree). It is null with a NAMED reason (price-coverage, flow-too-small, price-flat) whenever a leg is too thin to judge, so an absent verdict must be reported as "not enough to say", never as "no activity". venues.partial marks a window containing hours recorded before per-venue dollars existed, whose venue dollars are UNKNOWN and must not be read as zero. A window states hoursCovered ONLY when it holds fewer hours than it spans, so a 3-of-24 figure is never presented as a 24h figure; full windows carry no such field and need no disclaimer. Price-coverage figures are not sent when the pressure verdict already required them to pass, so there is nothing there to hedge with: a real shortfall arrives as a caveat field instead. Keyless (7-day window; a paid plan reaches the full 30-day record). Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoCoin symbol, for example BTC. A pair like ETH/USD works too, the quote leg is dropped. Required: with nothing to look up the call is refused rather than answered about a different coin.
pairNoAlias for coin.
hoursNoHow far back to read the record (min 168, i.e. 7 days). The reported windows are always 1h, 4h, 24h and 7d.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin this profile describes.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
caveatNoA real limit on this answer, in one clause. Present only when something genuinely narrows what can be said.
venuesNoWhich of the streamed exchanges the flow actually sits on and how concentrated it is. split marks two exchanges on opposite sides; partial marks a window whose exchange dollars are unknown rather than zero.
sourcesNoThe CEX, on-chain and Hyperliquid split, including sourceSplit when those markets sit on opposite sides.
summaryNoThe answer in one plain sentence, computed from the fields below. Open the reply with this, then let the numbers back it up. Null only when there was nothing to summarise.
windowsNoNet flow per window, keyed 1h, 4h, 24h and 7d. A window states hoursCovered only when it holds fewer hours than it spans.
coverageNoHow much of the window carries a recorded reading.
pressureNoFlow measured against price. state is absorption, distribution or confirming. When there is no state, reason names why (price-coverage, flow-too-small, price-flat), which means not enough to say, never no activity.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
depth_noteNoHow far back the data behind this answer reaches.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.

TDQS

A4.7/5.0
Behavior5/5

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

The description goes far beyond the readOnly/idempotent annotations, explaining that pressure.state is null with named reasons and must be reported as 'not enough to say', that venues.partial means venue dollars are UNKNOWN and must not be treated as zero, and that hoursCovered appears only on partial windows. It also warns that price-coverage shortfalls arrive as caveat fields, giving the agent precise reporting rules.

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?

Every sentence earns its place: the first sentence gives the core contract, then each subsequent sentence addresses a specific misinterpretation or edge case that an agent would otherwise get wrong. It is long because the tool has real output sematics, not because of 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 complex profile tool with an output schema, the description covers the main output groups, null semantics, partial-data rules, and access limits, while the schema fully documents all three parameters. An agent has enough to select, invoke, and interpret the result without guessing.

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 baselline is 3, but the description adds a useful access constraint: 'Keyless (7-day window; a paid plan reaches the full 30-day record)' clarifies what the `hours` parameter can actually retrieve for a given caller. The rest of the parameter meaning is already in the schema, so credit beyond baseline is warranted but modest.

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 names a precise verb–resource pair: one call returns everything the recorded whale record can say about ONE coin, enumerating flow windows, venue splits, concentration, sources, and pressure state. It is immediately distinguishable from siblings like whale_flow or whale_radar by its explicit 'single call' and 'one coin' scoping.

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?

It clearly frames when to call this tool: when a full, single-coin whale picture is needed in one call, and it notes descriptive-only data and the keyless 7-day access boundary. It does not explicitly name sibling alternatives or state when NOT to use it, but the context is strong enough to route an agent appropriately.

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

whale_radarSmart Money RadarA
Read-onlyIdempotent
Inspect

Which coins have UNUSUAL whale flow right now, each measured against its OWN trailing baseline, across 1h, 4h and 24h windows. Use this to DISCOVER coins worth a look when the user has not named one ("what looks unusual", "what are whales into right now", "anything moving under the radar"). Ranks by how far above a coin's normal, not by dollar size, so a smaller coin can top a larger one. For ONE named coin use whale_profile (or whale_activity); to ask whether a named coin's flow is unusual FOR THAT COIN use whale_context; for a full market brief use market_digest. No arguments. Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
summaryNoThe answer in one plain sentence, computed from the fields below. Open the reply with this, then let the numbers back it up. Null only when there was nothing to summarise.
windowsNoThe ranked coins per window, keyed 1h, 4h and 24h. Each row names the coin, its dollars in the window and how that compares with the same coin trailing hours.
buildingNoTrue while the ranking has not been published yet.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
freeCoinsNoKeyless only: the coins whose numbers come through unblurred.
freshnessNoHow often the ranking is rebuilt.
generatedAtNoWhen the ranking was computed.
lockedCountNoKeyless only: how many coins were held back.
blurredMagnitudeNoKeyless only: true because dollar sizes on held-back coins are rounded away.
lockedUnusualCountNoKeyless only: how many of the held-back coins are the unusual ones.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral context beyond annotations: it emphasizes 'Descriptive market data only,' explains that ranking is relative to the coin's own baseline rather than dollar size, and explicitly states there are no arguments. This is meaningful but not exhaustive; the output schema covers remaining behavior.

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?

The description is longer than average but every sentence earns its place: it front-loads the core function, then supplies use-case examples, ranking methodology, and explicit sibling routing. It is dense but not redundant; minor trimming of the quoted user-phrase examples could tighten it slightly.

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?

Given zero parameters, a rich output schema, and strong annotations, the description covers everything an agent needs: what the tool does, when to choose it, what it does not do, and which alternatives to use. No critical context 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?

There are no parameters and the schema is an empty object, so the baseline is already 4. The description goes further by explicitly stating 'No arguments,' which removes any ambiguity about whether hidden or optional inputs exist. This is sufficient for a zero-parameter tool.

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 uses a specific verb ('discover'/'rank') with a precise resource: coins with unusual whale flow relative to their own trailing baseline across 1h/4h/24h windows. It clearly differentiates from siblings by emphasizing discovery of unnamed coins and relative rather than absolute ranking.

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 explicitly states when to use this tool: when the user has not named a coin and wants unusual movements. It names concrete alternatives (whale_profile, whale_activity, whale_context, market_digest) and the conditions that select each, giving an agent unambiguous routing guidance.

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

whale_tapeWhale trades feed (alias)A
Read-onlyIdempotent
Inspect

Deprecated alias for whale_trades, kept so existing clients keep working. Prefer whale_trades. Live whale trades merged across 15 CEX venues plus on-chain DEX swaps (Ethereum, Base, Arbitrum), newest first. Keyless calls get the free shape (BTC/USD + $1M+ CEX trades live, other pairs delayed 30 min, DEX swaps $250K+) and up to 25 rows; a paid plan lifts the shape to every pair with no delay and up to 500 rows here (deeper pages on the REST API). Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter to one coin, for example BTC. A pair like ETH/USD works too, the quote leg is dropped. One symbol, not a list. Omit for every coin.
pairNoAlias for coin.
limitNoMax rows returned. Capped at 25 keyless and 500 on a paid plan; asking for more returns the cap, and the payload says so in `capped`.
sourceNoWhich markets to read: cex for the 15 streamed exchanges, dex for on-chain swaps on Ethereum, Base and Arbitrum, all for both merged. Defaults to all.
min_usdNoSmallest trade to return, in US dollars, for example 5000000 for $5M and up. Omit for everything already large enough to count as whale-sized. Keyless calls hold on-chain swaps to $250K and up regardless. A size filter runs after the fetch, so scan_capped in the payload states whether the search reached its own ceiling and older matches may exist.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin filter that was applied, or null for every coin.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
countNoHow many rows this reply carries.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
sourceNoWhich markets were read: cex, dex or all.
tradesNoThe matching trades, newest first. A CEX row carries pair, exchange, price, size and side; an on-chain row carries the token, the wallet and the dollar size. Every row carries source.
coveredNoFalse when the coin asked for is not one this feed streams, so nothing was searched. That is different from a quiet market.
matchedNoHow many trades matched the filters before the row cap was applied.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
scan_noteNoSays the search stopped at its ceiling, so this is not the complete set for the window.
truncatedNoTrue when more rows matched than were returned, so what you have is a page and not the whole set.
depth_noteNoHow far back the data behind this answer reaches.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
scan_cappedNoTrue when the search hit its own depth ceiling, so older matches may exist that were never looked at.
scanned_rowsNoHow deep the search went before filtering. Present only when a coin or size filter ran.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark the tool read-only, idempotent, and non-destructive, and the description adds substantial behavioral detail: it is deprecated, merges CEX and DEX data, returns newest first, applies keyless vs. paid shape differences, enforces row caps, and states 'Descriptive market data only.' No contradiction exists, and the description goes well beyond the annotation safety profile.

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 efficiently structured: the deprecation and preferred alternative are front-loaded, followed by the data coverage, then keyless vs. paid limitations, and a closing safety note. Every sentence adds information an agent needs, with no filler or repetition of 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?

For a deprecated alias with five optional parameters, full schema coverage, an output schema, and read-only annotations, the description supplies the missing context: venue coverage, live vs. delayed data, plan-based shape differences, row caps, and the 'descriptive only' nature. Nothing essential for correct tool selection or invocation is missing.

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 description coverage is 100%, so the schema already documents every parameter, including cap behavior, aliases, defaults, and the keyless $250K DEX floor. The description reinforces the plan-based limits and data scope but does not materially add parameter-level semantics beyond what the input schema already provides. Baseline 3 is appropriate.

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 immediately declares this is a 'Deprecated alias for whale_trades' and that its purpose is to provide a 'Live whale trades merged across 15 CEX venues plus on-chain DEX swaps... newest first.' It clearly distinguishes itself from the preferred sibling by naming whale_trades and stating the relationship, so an agent understands what the tool is and how it relates to alternatives.

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 explicitly says 'Prefer whale_trades' and explains this alias exists only 'so existing clients keep working.' This is direct, unambiguous guidance to use the alternative unless backward compatibility is required. It also notes deeper pages are available on the REST API, which further helps an agent decide whether this tool is appropriate.

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

whale_tradesWhale trades feedA
Read-onlyIdempotent
Inspect

Live whale trades merged across 15 CEX venues plus on-chain DEX swaps (Ethereum, Base, Arbitrum), newest first. Keyless calls get the free shape (BTC/USD + $1M+ CEX trades live, other pairs delayed 30 min, DEX swaps $250K+) and up to 25 rows; a paid plan lifts the shape to every pair with no delay and up to 500 rows here (deeper pages on the REST API). Descriptive market data only.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter to one coin, for example BTC. A pair like ETH/USD works too, the quote leg is dropped. One symbol, not a list. Omit for every coin.
pairNoAlias for coin.
limitNoMax rows returned. Capped at 25 keyless and 500 on a paid plan; asking for more returns the cap, and the payload says so in `capped`.
sourceNoWhich markets to read: cex for the 15 streamed exchanges, dex for on-chain swaps on Ethereum, Base and Arbitrum, all for both merged. Defaults to all.
min_usdNoSmallest trade to return, in US dollars, for example 5000000 for $5M and up. Omit for everything already large enough to count as whale-sized. Keyless calls hold on-chain swaps to $250K and up regardless. A size filter runs after the fetch, so scan_capped in the payload states whether the search reached its own ceiling and older matches may exist.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoThe coin filter that was applied, or null for every coin.
noteNoOne line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading.
countNoHow many rows this reply carries.
cappedNoPresent only when an argument was cut down to a ceiling. Absent means nothing was clamped, so a smaller number than you asked for is the data and not a limit.
sourceNoWhich markets were read: cex, dex or all.
tradesNoThe matching trades, newest first. A CEX row carries pair, exchange, price, size and side; an on-chain row carries the token, the wallet and the dollar size. Every row carries source.
coveredNoFalse when the coin asked for is not one this feed streams, so nothing was searched. That is different from a quiet market.
matchedNoHow many trades matched the filters before the row cap was applied.
availableNoFalse when this lane could not answer: a producer is dark, the pair sits outside this plan, or the argument named something we do not carry. Absent or true means the numbers are a real reading, not a guess.
scan_noteNoSays the search stopped at its ceiling, so this is not the complete set for the window.
truncatedNoTrue when more rows matched than were returned, so what you have is a page and not the whole set.
depth_noteNoHow far back the data behind this answer reaches.
access_noteNoWhat this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears.
scan_cappedNoTrue when the search hit its own depth ceiling, so older matches may exist that were never looked at.
scanned_rowsNoHow deep the search went before filtering. Present only when a coin or size filter ran.

TDQS

A4/5.0
Behavior5/5

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

Beyond the readOnlyHint and idempotentHint annotations, the description discloses key behavioral details: aggregation across venues, newest-first ordering, keyless free-shape restrictions, 30-minute delays, DEX swap thresholds, row caps of 25 vs 500, and an explicit 'descriptive market data only' safety note. This is unusually transparent for a read-only feed.

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?

Three sentences carry a substantial amount of specific, relevant detail with no filler; the first sentence immediately establishes what the feed is and how it is ordered. The second sentence is dense due to parentheticals and semicolons, but every clause serves a purpose, so it remains effective.

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?

Given that the output schema is present, parameter coverage is 100%, and annotations already mark the tool read-only and idempotent, the description is complete enough for an agent to call it correctly. It covers venues, ordering, keyless vs paid behavior, row caps, delays, and value thresholds, leaving no obvious invocation-critical gap.

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 the input schema already documents coin, pair, limit, source, and min_usd well. The description adds useful global context about free vs paid limits and DEX thresholds, but it does not add per-parameter semantics beyond what the schema already provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies a live feed of whale trades aggregated from 15 CEX venues plus on-chain DEX swaps, with newest-first ordering. This gives a concrete resource and scope that distinguishes it from generic market-data siblings, though it is phrased as a noun phrase rather than an explicit imperative verb like 'Get' or 'List'.

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

Usage Guidelines3/5

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

The description makes the tool's niche explicit: merged CEX and DEX whale trades with specific keyless versus paid access differences, so an agent can infer when it is relevant. It does not explicitly name alternative tools or state when not to use it, such as versus whale_activity or whale_radar, so the usage guidance is implied rather than direct.

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

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.8/5.0
Disambiguation2/5

The set contains at least five exact alias pairs (coin_liquidations/liquidations, market_brief/trade_context, flag_outcomes/signal_outcomes, whal_activity/whale_profile, whal_tape/whale_trades) plus many near-synonymous market_, whal_, hl_, and liquidation tools. The descriptions are excellent and cross-reference each other, but the sheer density of overlapping names makes tool selection genuinely difficult for an agent.

Naming Consistency4/5

Names are uniformly snake_case and largely follow a domain-prefix + noun convention (market_*, whale_*, hl_*, defi_*). Minor deviations exist: standalone liquidations, my_access, and duplicate aliases with different names, but the overall style is predictable and not mixed.

Tool Count2/5

38 tools is well past the 25+ threshold for a heavy toolset, and roughly ten of them are redundant alias pairs that could be collapsed into five. While the domain is broad, many one-call briefs and whale-flow variants overlap enough that the count feels inflated rather than justified.

Completeness4/5

The surface is remarkably broad for a read-only data server: price, funding, open interest, liquidations, whale flows, DeFi, options, news, signals, and access controls are all covered. Minor gaps remain, such as no explicit supported-pairs listing and some paid-tier caps that can surprise agents, but these are workaroundable.

Resources