whale-data
Server Details
Real-time whale trades, Smart Money Radar, market snapshots, news sentiment, signal outcomes.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
38 toolscoin_liquidationsRecorded liquidations for one coinARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Alias for pair. | |
| pair | No | e.g. ETH/USD. A bare symbol like ETH also works. | |
| hours | No | Look back this many hours, up to 720. Omit for the most recent events. | |
| limit | No | Max 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
| Name | Required | Description |
|---|---|---|
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| pair | No | The pair these events belong to. |
| count | No | How many events fired in the whole window, not how many rows came back. |
| capped | No | Present 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. |
| sources | No | How the events split between the streamed exchanges and Hyperliquid, and whether the Hyperliquid part is a sample. |
| long_usd | No | Dollars of longs force-closed across the window. |
| available | No | False 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_usd | No | Dollars of shorts force-closed across the window. |
| truncated | No | True when more rows matched than were returned, so what you have is a page and not the whole set. |
| access_note | No | What this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears. |
| liquidations | No | The 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_hours | No | The period the totals cover, in hours. |
| rows_returned | No | How many event rows are actually in this reply. |
| window_minutes | No | The same period in minutes. |
| requested_hours | No | The period asked for, so a page can be told apart from a period. |
| total_in_window | No | How many events the window holds in total. |
| history_included | No | True when the recorded series was merged in, so a restart has not erased earlier events. |
| total_volume_usd | No | Dollars forced out across the whole window. |
| long_liquidations | No | COUNT of longs force-closed. For dollars read long_usd. |
| rows_span_minutes | No | How far back the returned rows themselves reach. |
| short_liquidations | No | COUNT of shorts force-closed. For dollars read short_usd. |
TDQS
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.
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.
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.
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.
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.
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 sentimentARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Coin 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. | |
| pair | No | Alias for coin. |
Output Schema
| Name | Required | Description |
|---|---|---|
| coin | No | The coin the headlines and score are about. |
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| macro | No | The same three fields for the market as a whole: sentiment, sentiment_score and summary. |
| covered | No | False when nothing was recorded for this coin, which is why sentiment_score is null. Not a neutral reading. |
| summary | No | The pre-written summary for this coin, or null. |
| realtime | No | True when the headlines are live. Keyless connections get the delayed set. |
| headlines | No | Up to 20 recent headlines, each with title, source, published time and link. |
| sentiment | No | The wording that goes with the score, or unknown. |
| sentiment_score | No | Minus 100 to plus 100. Null means nothing was measured, which is not the same as zero. |
TDQS
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.
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.
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.
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.
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.
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 liquidationsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Restrict to one chain: ethereum, base, arbitrum. Anything else is refused by name rather than answered as nothing happening there. Omit for all of them. | |
| limit | No | Max 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
| Name | Required | Description |
|---|---|---|
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| count | No | How many rows this reply carries. |
| capped | No | Present 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. |
| window | No | The period the returned rows actually span: from, to and hours. |
| matched | No | How many rows matched the chain filter before the row cap. |
| available | No | False 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_usd | No | Dollars across exactly the rows returned. A page sum, not a fixed 24h total: the window field says what period those rows span. |
| truncated | No | True when more rows matched than were returned, so what you have is a page and not the whole set. |
| access_note | No | What this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears. |
| liquidations | No | The events, each naming BOTH wallets: the one liquidated and the one that repaid the debt and took the collateral. |
| unknown_chain | No | Set when a chain was named that this lane does not index. Nothing was searched, so this is not no liquidations there. |
| chains_covered | No | The chains this lane indexes. |
| protocols_covered | No | The lending protocols behind these rows. |
| duplicates_dropped | No | How many repeat rows for the same event were removed before counting, so the dollars are not doubled. |
TDQS
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.
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.
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.
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.
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.
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 summaryARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| chains | No | One row per chain: the chain, tokens tracked, 24h volume and total value locked. |
| totals | No | Across all chains: 24h volume, total value locked, how many chains and how many tokens are tracked. |
| available | No | False 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_tokens | No | The highest-volume tokens: chain, symbol, name, address, price, 24h change, volume and value locked. Shortened on a keyless connection. |
| updated_at | No | When the on-chain token snapshot was published. |
| coverage_note | No | What the numbers do and do not cover. |
| whale_activity | No | Large 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_withheld | No | Keyless only: how many tokens were cut from top_tokens. |
TDQS
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.
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.
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.
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.
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.
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 activityARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max recorded swaps returned for this address. Defaults to 25, hard ceiling 100 for everyone and no plan raises it. | |
| address | Yes | Ethereum, 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
| Name | Required | Description |
|---|---|---|
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| error | No | invalid_address when the address is not 0x plus 40 hex characters. Nothing was looked up. |
| venue | No | Always on-chain. This is NOT the Hyperliquid account that can sit at the same 0x string. |
| capped | No | Present 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. |
| events | No | Its recorded swaps, newest first. |
| address | No | The address, normalised. |
| profile | No | What this address has been doing: net flow per token and its activity pattern. |
| tracked | No | False when this address is outside the followed set. A coverage fact, not a wallet doing nothing. |
| available | No | False 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_note | No | What 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
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.
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.
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.
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.
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.
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 ledgerARead-onlyIdempotentInspect
Recently fired signal-ledger flags with fire-time price and later price outcomes, logged live and never backfilled. Descriptive market data only.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Filter 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. | |
| pair | No | Alias for coin. | |
| type | No | Filter 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. | |
| hours | No | How 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. | |
| limit | No | Max 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
| Name | Required | Description |
|---|---|---|
| coin | No | The coin filter applied, or null for all coins. |
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| type | No | The signal type filter applied, or null for all types. |
| count | No | How many rows this reply carries. |
| hours | No | The window actually read, in hours. |
| capped | No | Present 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. |
| signals | No | The 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_time | No | Permanent counters from the archive, independent of the window asked for: fired, scored_h24, since, through and by_type. |
| available | No | False 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. |
| aggregates | No | byType: how many fired per signal type inside the window. |
| depth_note | No | How far back the data behind this answer reaches. |
| access_note | No | What 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_types | No | The signal types that do exist, returned alongside unknown_type. |
| unknown_type | No | Set when the type asked for is not one this record keeps. Nothing was filtered and nothing was searched. |
| total_in_window | No | How many signals fired in the whole window, before the row cap. |
TDQS
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.
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.
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.
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.
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.
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 matrixARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Alias for pair. | |
| pair | No | Trading 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
| Name | Required | Description |
|---|---|---|
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| pair | No | The pair these rates belong to. |
| available | No | False 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_venue | No | One 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_at | No | When these rates were read. |
TDQS
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.
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.
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.
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.
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.
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 boardARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| rows | No | The accounts: wallet, equity, dollars open, leverage and which way they lean. Shortened on a keyless connection. |
| venue | No | Always Hyperliquid. |
| tracked | No | How many accounts are tracked. |
| crowding | No | Per-coin crowding across the tracked accounts. |
| withheld | No | How many rows a keyless connection did not receive. Zero on a paid plan. |
| available | No | False 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_at | No | When the board was published. |
| access_note | No | What 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_positions | No | How many of them currently hold something. |
| tracked_notional_usd | No | Total dollar value of everything those accounts hold open. |
TDQS
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.
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.
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.
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.
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.
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)ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| rows | No | The 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. |
| venue | No | Always Hyperliquid. |
| funnel | No | The screen as four shrinking counts (seen, enough closing trades, human pace, profitable), so a small final count is never mistaken for the whole population. |
| withheld | No | How many rows a keyless connection did not receive. Zero on a paid plan. |
| available | No | False 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_at | No | When the scan was published. The scan runs daily and the board self-expires after 24h. |
| access_note | No | What 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_days | No | The window the scan aimed to cover, in days. |
| wallets_seen | No | How many distinct wallets closed a trade in the window. |
| scan_complete | No | True when the whole requested block range was read; false when the scan truncated (still honest, just a shorter window). |
| reconciliation | No | For 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_days | No | The window actually covered. Below window_days means the scan was rate-limited by the portal and the pace figures cover a shorter span. |
TDQS
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.
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.
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.
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.
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.
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 bookARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max 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. | |
| address | Yes | Hyperliquid 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
| Name | Required | Description |
|---|---|---|
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| error | No | invalid_address when the address is not 0x plus 40 hex characters. Nothing was looked up. |
| capped | No | Present 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. |
| prints | No | Recent whale-sized fills for this account. Keyless connections receive 3 of them whatever was asked for. |
| address | No | The account address, normalised. |
| profile | No | The live account: what it holds, equity, dollars open, leverage, which way it leans and unrealized profit. Public on Hyperliquid, so it stays keyless. |
| tracked | No | False when this account is outside the tracked set. A coverage fact, not an account holding nothing. |
| access_note | No | What 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_layers | No | Keyless only: which computed blocks a paid plan adds. |
TDQS
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.
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.
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.
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.
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.
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 fillsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Filter 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. | |
| pair | No | Alias for coin. | |
| limit | No | Max fills returned. Defaults to 50, hard ceiling 200 for everyone and no plan raises it. |
Output Schema
| Name | Required | Description |
|---|---|---|
| coin | No | The coin filter applied, or null for every coin. |
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| count | No | How many rows this reply carries. |
| venue | No | Always Hyperliquid. |
| capped | No | Present 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. |
| trades | No | The 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. |
| available | No | False 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_note | No | What 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
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.
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.
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.
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.
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.
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 liquidationsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Alias for pair. | |
| pair | No | e.g. ETH/USD. A bare symbol like ETH also works. | |
| hours | No | Look back this many hours, up to 720. Omit for the most recent events. | |
| limit | No | Max 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
| Name | Required | Description |
|---|---|---|
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| pair | No | The pair these events belong to. |
| count | No | How many events fired in the whole window, not how many rows came back. |
| capped | No | Present 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. |
| sources | No | How the events split between the streamed exchanges and Hyperliquid, and whether the Hyperliquid part is a sample. |
| long_usd | No | Dollars of longs force-closed across the window. |
| available | No | False 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_usd | No | Dollars of shorts force-closed across the window. |
| truncated | No | True when more rows matched than were returned, so what you have is a page and not the whole set. |
| access_note | No | What this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears. |
| liquidations | No | The 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_hours | No | The period the totals cover, in hours. |
| rows_returned | No | How many event rows are actually in this reply. |
| window_minutes | No | The same period in minutes. |
| requested_hours | No | The period asked for, so a page can be told apart from a period. |
| total_in_window | No | How many events the window holds in total. |
| history_included | No | True when the recorded series was merged in, so a restart has not erased earlier events. |
| total_volume_usd | No | Dollars forced out across the whole window. |
| long_liquidations | No | COUNT of longs force-closed. For dollars read long_usd. |
| rows_span_minutes | No | How far back the returned rows themselves reach. |
| short_liquidations | No | COUNT of shorts force-closed. For dollars read short_usd. |
TDQS
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.
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.
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.
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.
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.
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 levelsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Alias for pair. | |
| pair | No | Trading 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
| Name | Required | Description |
|---|---|---|
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| pair | No | The pair this projection covers. |
| covered | No | False when this server does not stream the pair at all. No plan adds it. |
| available | No | False 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_pairs | No | The pairs a keyless connection can read, returned when the pair asked for is not one of them. |
| projection | No | The 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_note | No | What 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
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.
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.
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.
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.
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.
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 briefARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Alias for pair. | |
| pair | No | Trading 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. | |
| compact | No | Return 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_usd | No | Position 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
| Name | Required | Description |
|---|---|---|
| line | No | The 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. |
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| pair | No | The pair this context describes. |
| depth | No | Which shape came back: lite, free-pair or keyed. |
| price | No | Last traded price. |
| compact | No | Present and true only on a compact:true call, where the whole answer is the single line in `line`. |
| funding | No | average_rate across exchanges, how many exchanges are in it, the interval in hours, and minutes to the next funding time. |
| crowding | No | The crowding read and the overexposed side. Null without a paid plan. |
| available | No | False 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_24h | No | The 24h statistics block. Absent on the lite shape, where locked_layers names it. |
| carry_cost | No | Arithmetic 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_flow | No | Whale 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_reads | No | Plain 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_layers | No | Named rather than silently missing: which blocks this connection did not receive. |
| vs_own_history | No | Where 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_usd | No | Open interest in dollars across the exchanges that publish it. |
| liquidations_recent | No | Forced closes visible right now: count, long_usd, short_usd and window_minutes. A timing series, market-wide totals run higher. |
TDQS
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.
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.
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.
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.
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.
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 marketARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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)ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 dayARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| top5 | No | The same, for pairs in their own top or bottom 5 percent rather than at a record. |
| stale | No | True only when the rows are further back than the settle horizon explains. |
| records | No | Pairs 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_day | No | The day the rows actually describe. This is the honest date, and it is usually not today. |
| stale_note | No | Present when stale is true: how far past the horizon the scan has fallen. |
| computed_at | No | When the daily scan ran. |
| coverage_note | No | Present when stale is false: why these extremes are from as_of_day rather than today. |
| data_age_days | No | How many days back as_of_day sits. |
| expected_lag_days | No | How far behind live this archive is meant to run. |
TDQS
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.
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.
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.
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.
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.
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 historyARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Read 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. | |
| days | No | How 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. | |
| pair | No | Read 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
| Name | Required | Description |
|---|---|---|
| coin | No | The coin, when the daily whale-flow lane was read. |
| pair | No | The pair, when the daily market lane was read. |
| as_of | No | The newest day in this reply. Not today: both lanes settle several days behind live by design. |
| price | No | Daily price readings. |
| stale | No | True only when the lane is further back than its own settle horizon explains. |
| capped | No | Present 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. |
| funding | No | Daily funding readings, oldest first, each carrying its own coverage evidence. |
| available | No | False 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_note | No | How far back the data behind this answer reaches. |
| stale_note | No | Present when stale is true: how far past the horizon it has fallen. |
| access_note | No | What this connection could not return and what lifts it. Always pass this on to the user: it is the only place that information appears. |
| liquidations | No | Daily forced-close totals. |
| coverage_note | No | Present when stale is false: why the newest day is not today, and that these days must not be described as current. |
| data_age_days | No | How many days back as_of sits. |
| days_returned | No | How many recorded days came back. |
| open_interest | No | Daily open interest readings. |
| hour_of_day_utc | No | What a typical hour looks like for this coin, as medians per UTC hour. Absent under 14 recorded days. |
| whale_flow_daily | No | Daily whale buy and sell dollars, when the coin lane was read. |
| expected_lag_days | No | How far behind live this lane is meant to run, so a healthy lag can be told from a stopped one. |
TDQS
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.
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.
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.
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.
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.
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 liquidationsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| as_of | No | When the combined snapshot was taken, as an ISO stamp. |
| stale | No | True when the snapshot is older than it should be. |
| coverage | No | Which feeds fed this snapshot. |
| available | No | False 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_liquidations | No | The 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_liquidations | No | Hyperliquid closures with the wallet named, which no other market publishes. |
| lending_liquidations | No | A 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
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.
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.
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.
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.
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.
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)ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| only | No | Return only one side. Omit for both. | |
| limit | No | How many gainers and losers each. Defaults to 8, capped at 25. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 + regimeARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Return 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. | |
| pair | No | Alias for coin. | |
| limit | No | Max 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
| Name | Required | Description |
|---|---|---|
| row | No | That one symbol row: base, price_usd, chg_24h_pct, vol_usd_24h and oi_usd. |
| coin | No | The symbol asked for, when a single row was requested. |
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| rows | No | The board, ranked by volume: base symbol, price, 24h change, 24h volume and open interest. |
| capped | No | Present 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. |
| regime | No | The Bitcoin risk state: state, btc_price and breadth_pct. A null state means the field is absent, not neutral. |
| totals | No | Market-wide totals: volume, open interest, forced closes and market cap. |
| summary | No | The 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. |
| returned | No | How many rows are in this reply. |
| available | No | False 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. |
| truncated | No | True when more rows matched than were returned, so what you have is a page and not the whole set. |
| total_rows | No | How many rows the whole board holds. |
| updated_at | No | When the snapshot was published. |
| access_note | No | What 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_note | No | The same in one sentence, present only when something is missing. |
| whale_net_usd_24h | No | Buys minus sells across the board over 24h. Null means the field is absent from this snapshot, not that flow was balanced. |
| unavailable_fields | No | Fields this snapshot is not carrying. They are null because the field is absent, NOT because the value is zero. |
TDQS
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.
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.
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.
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.
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.
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 screenerARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max 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. | |
| compact | No | Return one plain-text line per matching pair rather than the JSON rows. Defaults to false. | |
| oi_band | No | Same values as funding_band. | |
| funding_band | No | One of: record high, top 5%, top 25%, typical, bottom 25%, bottom 5%, record low. | |
| unusual_only | No | Keep only coins the radar currently marks unusual in its 1h, 4h or 24h window. Defaults to false. | |
| whale_mult_min | No | Keep 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
| Name | Required | Description |
|---|---|---|
| line | No | One plain-text line per matching pair, returned only when compact:true was asked for. |
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| rows | No | One 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. |
| capped | No | Present 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. |
| compact | No | Present and true only on a compact:true call, where the whole answer is the text in `line`. |
| matched | No | How many pairs passed every filter, counted before the row cap. Null when nothing was screened. |
| criteria | No | The filters as they were actually applied, so a misread argument is visible. |
| returned | No | How many rows are in this reply. |
| available | No | False 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. |
| truncated | No | True when more rows matched than were returned, so what you have is a page and not the whole set. |
| access_note | No | What 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_bands | No | The bands that do exist, returned alongside unknown_band. |
| unknown_band | No | Set when a band was named that this screen does not know. Nothing was screened, so this is not no matches. |
| scanned_pairs | No | How many pairs were examined. |
TDQS
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.
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.
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.
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.
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.
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 snapshotARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Alias for pair. | |
| pair | No | Trading 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
| Name | Required | Description |
|---|---|---|
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| pair | No | The pair this snapshot describes. |
| price | No | Last traded price. |
| covered | No | False when this server does not stream the pair at all. No plan adds it. |
| funding | No | average_rate across the exchanges that publish one, and exchange_count behind that average. |
| available | No | False 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_24h | No | The 24h statistics block: open, high, low, close, change and volume. |
| free_pairs | No | The pairs a keyless connection can read, returned when the pair asked for is not one of them. |
| vs_history | No | Where 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_note | No | What 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_usd | No | Open interest in dollars, summed across the exchanges that publish it. |
| exchanges_streaming | No | How many exchanges are currently streaming this pair. |
| liquidations_recent | No | Recent 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
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.
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.
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.
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.
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.
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 includesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| caps | No | The row cap and time window every capped tool applies right now, each with the free value and the paid-plan value beside it. |
| tier | No | Which of four states this connection is in: keyless, signed_in_free, coinlobster_pro or developer_plan. |
| plain | No | One sentence describing this tier in the user own words rather than ours. |
| credits | No | The 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. |
| metered | No | Whether calls cost credits on this connection, and how much. |
| free_pairs | No | The 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_note | No | What 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_lift | No | What lifts the caps, where to get it, and (as not_this) the two things people buy by mistake that change nothing here. |
| locked_here | No | What this connection cannot reach right now. Empty on a paid plan. |
| on_free_plan | No | True when this connection reads free-shaped data. The single fact most users are asking for. |
| authenticated | No | True when any valid sign-in or key was presented. |
TDQS
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.
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.
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.
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.
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.
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 swapsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Filter 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. | |
| pair | No | Alias for coin. | |
| chain | No | Restrict to one chain: ethereum, base, arbitrum. Anything else is refused by name rather than answered as nothing happening there. Omit for all of them. | |
| limit | No | Max swaps returned. Defaults to 50, hard ceiling 200 for everyone and no plan raises it. | |
| min_usd | No | Smallest 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
| Name | Required | Description |
|---|---|---|
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| count | No | How many rows this reply carries. |
| swaps | No | The swaps, each carrying the wallet that signed it, the exchange it went through, the token and the dollar size. |
| capped | No | Present 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. |
| available | No | False 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_note | No | What 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_chain | No | Set when a chain was named that this feed does not index. Nothing was searched, so this is not no swaps there. |
| chains_covered | No | The chains this feed indexes. |
TDQS
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.
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.
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.
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.
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.
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)ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | BTC or ETH (the only coins Deribit lists options for). A pair like BTC/USD works too, the quote leg is dropped. Defaults to BTC. | |
| pair | No | Alias for coin. |
Output Schema
| Name | Required | Description |
|---|---|---|
| coin | No | The coin these options are for (BTC or ETH). |
| dvol | No | Implied-vol index: how big a swing the market is pricing in. Lower is calmer. |
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| venue | No | Always Deribit. |
| maxPain | No | Per near expiry, the strike where the most options expire worthless. |
| summary | No | The 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. |
| expiries | No | Open interest grouped by expiry date, with days to go. |
| putOiUsd | No | Open interest sitting in puts (downside protection), in USD. |
| available | No | False 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. |
| callOiUsd | No | Open interest sitting in calls (upside bets), in USD. |
| updatedAt | No | When this snapshot was published. |
| gammaWalls | No | The strikes holding the most open interest, biggest first, with the call and put split. These often act as magnets into expiry. |
| putCallRatio | No | Put open interest divided by call open interest. Above ~1.15 is put-heavy, below ~0.7 is call-heavy. |
| coins_covered | No | The coins options are carried for (BTC, ETH). |
| openInterestUsd | No | Total open interest in USD across all listed options. |
| underlyingPrice | No | Spot price of the coin, from the venue. |
| recentLargeTrades | No | Large option buys and sells above a size floor, newest first. Deeper on a paid plan. |
| recentTradesTruncated | No | True when the large-trade list was shortened for a keyless caller. |
TDQS
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.
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.
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.
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.
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.
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 barsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Alias for pair. | |
| pair | No | Trading 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. | |
| limit | No | How 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`. | |
| interval | No | Bar length: "1h" (default) or "1d". Anything else is read as 1h. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| pair | No | The pair these candles are for. |
| as_of | No | The time of the newest bar, in milliseconds. |
| count | No | How many rows this reply carries. |
| stale | No | True only when the newest bar is older than a live lane explains. When true the numbers are stopped, not the current price. |
| capped | No | Present 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. |
| candles | No | The 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. |
| covered | No | False when this server does not stream the pair at all. No plan adds it. |
| interval | No | 1h or 1d. The bar length each candle covers. |
| available | No | False 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_pairs | No | The pairs a keyless connection can read, returned when the pair asked for is not one of them. |
| stale_note | No | Present when stale is true: how far past live the newest bar has fallen. |
| access_note | No | What 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_min | No | How many minutes old the newest bar is, so a live lane can be told from a stopped one. |
TDQS
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.
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.
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.
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.
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.
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)ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Filter 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. | |
| pair | No | Alias for coin. | |
| type | No | Filter 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. | |
| hours | No | How 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. | |
| limit | No | Max 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
| Name | Required | Description |
|---|---|---|
| coin | No | The coin filter applied, or null for all coins. |
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| type | No | The signal type filter applied, or null for all types. |
| count | No | How many rows this reply carries. |
| hours | No | The window actually read, in hours. |
| capped | No | Present 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. |
| signals | No | The 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_time | No | Permanent counters from the archive, independent of the window asked for: fired, scored_h24, since, through and by_type. |
| available | No | False 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. |
| aggregates | No | byType: how many fired per signal type inside the window. |
| depth_note | No | How far back the data behind this answer reaches. |
| access_note | No | What 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_types | No | The signal types that do exist, returned alongside unknown_type. |
| unknown_type | No | Set when the type asked for is not one this record keeps. Nothing was filtered and nothing was searched. |
| total_in_window | No | How many signals fired in the whole window, before the row cap. |
TDQS
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.
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.
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.
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.
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.
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)ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| window | No | Which 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
| Name | Required | Description |
|---|---|---|
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| venue | No | Which market the cohort trades on. |
| cohort | No | Who is in the cohort and how it was screened, including rosterAgeHours, the age of the membership screen. |
| window | No | Which window flow_traded covers: 1h, 4h or 24h. |
| summary | No | The 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. |
| coverage | No | Which wallets could be read, and which are reported as unprofiled rather than counted as holding nothing. |
| available | No | False 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_at | No | When the roll-up was published. Separate from how old the membership screen is. |
| access_note | No | What 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_traded | No | Dollars EXECUTED inside the window per coin, same row shape. A different unit from positions_held and never added to it. |
| flow_withheld | No | How many traded rows were not returned at this access level. |
| positions_held | No | Dollars currently OPEN per coin, with the wallet count behind each row and a thin flag under 3 wallets. |
| windows_available | No | The windows the roll-up actually published. |
| positions_withheld | No | How many holding rows were not returned at this access level. |
TDQS
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.
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.
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.
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.
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.
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)ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Alias for pair. | |
| pair | No | Trading 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
| Name | Required | Description |
|---|---|---|
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| pair | No | The pair this crowding read describes. |
| available | No | False 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_at | No | When the read was computed. |
| access_note | No | What 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_exchange | No | The same read broken out per exchange. |
| crowded_side | No | Which side is overexposed, long or short. |
| squeeze_score | No | Crowding from 0 to 100. Descriptive, not a trade signal. |
| long_short_ratio | No | Long accounts against short accounts. |
| taker_buy_sell_ratio | No | Aggressive buying against aggressive selling. |
TDQS
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.
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.
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.
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.
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.
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 contextARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Alias for pair. | |
| pair | No | Trading 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. | |
| compact | No | Return 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_usd | No | Position 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
| Name | Required | Description |
|---|---|---|
| line | No | The 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. |
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| pair | No | The pair this context describes. |
| depth | No | Which shape came back: lite, free-pair or keyed. |
| price | No | Last traded price. |
| compact | No | Present and true only on a compact:true call, where the whole answer is the single line in `line`. |
| funding | No | average_rate across exchanges, how many exchanges are in it, the interval in hours, and minutes to the next funding time. |
| crowding | No | The crowding read and the overexposed side. Null without a paid plan. |
| available | No | False 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_24h | No | The 24h statistics block. Absent on the lite shape, where locked_layers names it. |
| carry_cost | No | Arithmetic 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_flow | No | Whale 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_reads | No | Plain 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_layers | No | Named rather than silently missing: which blocks this connection did not receive. |
| vs_own_history | No | Where 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_usd | No | Open interest in dollars across the exchanges that publish it. |
| liquidations_recent | No | Forced closes visible right now: count, long_usd, short_usd and window_minutes. A timing series, market-wide totals run higher. |
TDQS
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.
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.
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.
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.
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.
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 coinARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Coin 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. | |
| pair | No | Alias for coin. | |
| hours | No | How far back to read the record (min 168, i.e. 7 days). The reported windows are always 1h, 4h, 24h and 7d. |
Output Schema
| Name | Required | Description |
|---|---|---|
| coin | No | The coin this profile describes. |
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| capped | No | Present 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. |
| caveat | No | A real limit on this answer, in one clause. Present only when something genuinely narrows what can be said. |
| venues | No | Which 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. |
| sources | No | The CEX, on-chain and Hyperliquid split, including sourceSplit when those markets sit on opposite sides. |
| summary | No | The 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. |
| windows | No | Net flow per window, keyed 1h, 4h, 24h and 7d. A window states hoursCovered only when it holds fewer hours than it spans. |
| coverage | No | How much of the window carries a recorded reading. |
| pressure | No | Flow 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. |
| available | No | False 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_note | No | How far back the data behind this answer reaches. |
| access_note | No | What 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
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.
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.
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.
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.
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.
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 historyARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Coin 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. | |
| pair | No | Alias for coin. |
Output Schema
| Name | Required | Description |
|---|---|---|
| coin | No | The coin this row describes, when one coin was asked for. |
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| coins | No | One row per coin when a comma-separated list was asked for. A member with no logged history comes back as available:false. |
| breadth | No | How wide the buying or selling is across the coins with logged history. |
| summary | No | The 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_24h | No | Total whale dollars in the last 24h. |
| available | No | False 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_day | No | The first day this baseline covers. |
| valid_days | No | How many days of the baseline hold usable readings. |
| days_logged | No | How many days wide the baseline window is. |
| net_usd_24h | No | Buys minus sells in the last 24h. |
| buy_share_7d | No | Share of the last 7 days dollars that were buys, 0 to 1. |
| ranking_note | No | How the list is sorted, and why a thin_baseline row can sit near the top without meaning anything. |
| buy_share_24h | No | Share of the last 24h dollars that were buys, 0 to 1. |
| thin_baseline | No | True 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_days | No | Highest flow in this many days, or null. |
| mult_vs_avg_24h | No | How many times its own logged daily average the last 24h of flow is. |
| record_high_day | No | True when this is the highest recorded day for the coin. |
| top_by_multiple | No | The coins sitting at the highest multiple right now, when no coin was asked for. |
TDQS
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.
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.
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.
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.
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.
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 hourARead-onlyIdempotentInspect
Hourly buy and sell USD flow buckets for one coin, CEX and DEX split, over a rolling window. Descriptive market data only.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Coin 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. | |
| pair | No | Alias for coin. | |
| hours | No | How 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
| Name | Required | Description |
|---|---|---|
| coin | No | The coin these hours belong to. |
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| rows | No | One 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. |
| count | No | How many hours carry a recorded reading. Fewer than hours means the rest were never recorded, not that they were quiet. |
| hours | No | How many hours back were read. |
| capped | No | Present 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. |
| summary | No | The 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. |
| available | No | False 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_note | No | How far back the data behind this answer reaches. |
| access_note | No | What 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
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.
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.
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.
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.
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.
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 pictureARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Coin 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. | |
| pair | No | Alias for coin. | |
| hours | No | How far back to read the record (min 168, i.e. 7 days). The reported windows are always 1h, 4h, 24h and 7d. |
Output Schema
| Name | Required | Description |
|---|---|---|
| coin | No | The coin this profile describes. |
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| capped | No | Present 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. |
| caveat | No | A real limit on this answer, in one clause. Present only when something genuinely narrows what can be said. |
| venues | No | Which 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. |
| sources | No | The CEX, on-chain and Hyperliquid split, including sourceSplit when those markets sit on opposite sides. |
| summary | No | The 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. |
| windows | No | Net flow per window, keyed 1h, 4h, 24h and 7d. A window states hoursCovered only when it holds fewer hours than it spans. |
| coverage | No | How much of the window carries a recorded reading. |
| pressure | No | Flow 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. |
| available | No | False 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_note | No | How far back the data behind this answer reaches. |
| access_note | No | What 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
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.
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.
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.
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.
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.
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 RadarARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| summary | No | The 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. |
| windows | No | The 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. |
| building | No | True while the ranking has not been published yet. |
| available | No | False 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. |
| freeCoins | No | Keyless only: the coins whose numbers come through unblurred. |
| freshness | No | How often the ranking is rebuilt. |
| generatedAt | No | When the ranking was computed. |
| lockedCount | No | Keyless only: how many coins were held back. |
| blurredMagnitude | No | Keyless only: true because dollar sizes on held-back coins are rounded away. |
| lockedUnusualCount | No | Keyless only: how many of the held-back coins are the unusual ones. |
TDQS
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.
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.
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.
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.
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.
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)ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Filter 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. | |
| pair | No | Alias for coin. | |
| limit | No | Max 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`. | |
| source | No | Which 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_usd | No | Smallest 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
| Name | Required | Description |
|---|---|---|
| coin | No | The coin filter that was applied, or null for every coin. |
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| count | No | How many rows this reply carries. |
| capped | No | Present 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. |
| source | No | Which markets were read: cex, dex or all. |
| trades | No | The 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. |
| covered | No | False when the coin asked for is not one this feed streams, so nothing was searched. That is different from a quiet market. |
| matched | No | How many trades matched the filters before the row cap was applied. |
| available | No | False 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_note | No | Says the search stopped at its ceiling, so this is not the complete set for the window. |
| truncated | No | True when more rows matched than were returned, so what you have is a page and not the whole set. |
| depth_note | No | How far back the data behind this answer reaches. |
| access_note | No | What 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_capped | No | True when the search hit its own depth ceiling, so older matches may exist that were never looked at. |
| scanned_rows | No | How deep the search went before filtering. Present only when a coin or size filter ran. |
TDQS
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.
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.
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.
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.
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.
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 feedARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Filter 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. | |
| pair | No | Alias for coin. | |
| limit | No | Max 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`. | |
| source | No | Which 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_usd | No | Smallest 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
| Name | Required | Description |
|---|---|---|
| coin | No | The coin filter that was applied, or null for every coin. |
| note | No | One line saying what the numbers cover, or why there are none. Read it before reporting any zero as a market reading. |
| count | No | How many rows this reply carries. |
| capped | No | Present 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. |
| source | No | Which markets were read: cex, dex or all. |
| trades | No | The 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. |
| covered | No | False when the coin asked for is not one this feed streams, so nothing was searched. That is different from a quiet market. |
| matched | No | How many trades matched the filters before the row cap was applied. |
| available | No | False 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_note | No | Says the search stopped at its ceiling, so this is not the complete set for the window. |
| truncated | No | True when more rows matched than were returned, so what you have is a page and not the whole set. |
| depth_note | No | How far back the data behind this answer reaches. |
| access_note | No | What 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_capped | No | True when the search hit its own depth ceiling, so older matches may exist that were never looked at. |
| scanned_rows | No | How deep the search went before filtering. Present only when a coin or size filter ran. |
TDQS
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.
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.
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.
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.
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.
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
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
AI crypto signals, smart money whale positions, live futures prices and indicators
Free read-only crypto whale-tracking & market-data MCP tools across 14 chains. No auth.
Crypto market intelligence: social sentiment, on-chain, trending narratives & analyst insights.
Crypto structure scores, MemeSniper meme filter with real hit-rate, token & stock financials.
Related MCP Servers
AlicenseAqualityCmaintenanceProvides real-time crypto whale trade data and market analysis to AI agents, including unusual flow radar, liquidations, funding rates, and market snapshots across 15 exchanges and on-chain DEXs.174528MIT- AlicenseNot gradedqualityCmaintenanceDelivers real-time crypto market microstructure, derivatives, order flow CVD/OI regime classification, fear & greed sentiment, and whale tracking context, enabling traders to assess market regimes and complement charting tools.44MIT
- AlicenseAqualityDmaintenanceReal-time radar for Solana memecoins, Pump.fun launches, and KOL trades.82MIT
- AlicenseAqualityBmaintenanceReal-time crypto whale intelligence MCP server with 55 tools across 14 blockchains. Free, no auth required.561MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
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.
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.
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.
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.