f1ow
Server Details
Crypto market data & research MCP: price, derivatives, on-chain, sentiment, news, catalysts.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 39 tools
Descriptions do a lot of work disambiguating (every tool states when to prefer a sibling), but real overlap remains: research_token_view re-bundles market_quotes, ta_technicals, onchain_metrics, news_search and ETF flows; market_quotes, market_coin_details and market_overview all return 'snapshot' data; derivatives_open_interest vs market_history(open_interest) vs derivatives_flow vs flow_levels all read OI/positioning. An agent must read the long prose to know whether to call the aggregate dossier or the individual tool, and several derivatives/flow tools share near-identical subject matter (flow_levels vs research_positioning vs flow_orderbook).
Names are uniformly snake_case and organized under clear domain prefixes (catalysts_, derivatives_, market_, options_, research_, sentiment_, flow_, ta_), which makes the set easy to scan. The suffix convention is not a verb_noun pattern — some are nouns (market_candles, options_chain) and some are noun_noun (funding_current, sentiment_fear_greed) — but the style itself is never mixed.
At 39 tools this is well past the point where each tool clearly earns its place, and the redundancy confirms it: four options_* tools, six market_*, four flow_*, plus aggregate tools (research_token_view, market_history) that duplicate the narrow ones. The underlying domain is broad enough to justify 15-20 tools, but the extra surface (research_opportunities' giant rule engine, options_gamma what-ifs) inflates selection cost more than it adds capability.
Coverage is unusually deep for a market-intelligence server — spot/perp candles and history, funding, OI, liquidations, order books, options chain/GEX/IV/positioning, on-chain TVL, ETF flows, exchange listing catalyst, filings, prediction odds, news, social, and a trade-plan checker with replay. Gaps are minor and mostly out of scope (no execution/account, no watchlists or alerts, gas prices and token unlocks explicitly absent), which agents can work around with other tools.
Available Tools
39 toolscatalysts_calendarCatalyst CalendarARead-onlyInspect
Lists upcoming crypto catalyst events for the next 7 days. Optionally filter by comma-separated coin symbols (e.g. 'sol,eth').
| Name | Required | Description | Default |
|---|---|---|---|
| coins | No | Comma-separated coin symbols, e.g. 'sol,eth'. Omit for all coins. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already tells the agent this is a safe read. The description adds useful scope context (next 7 days, crypto events), but discloses nothing about the return shape, result volume, or whether the window is fixed, which would help an agent decide how to consume it.
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 short sentences, zero filler, with the core scope (7-day window) front-loaded before the optional filter detail.
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 single-optional-param read tool with no output schema, the description covers purpose, scope, and filtering adequately. The only meaningful gap is disambiguating this tool from the economic calendar and other catalysts siblings.
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 single parameter is fully documented there, including the comma-separated format and the omit-for-all default. The description repeats the same example and adds no syntax or matching semantics (e.g. case sensitivity, unknown symbols) 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?
States a specific verb (Lists), resource (crypto catalyst events), and an explicit time scope (next 7 days), which goes beyond the title. However, it does not distinguish itself from the sibling catalysts_economic_calendar, leaving the agent to infer whether crypto catalysts and economic catalysts overlap.
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?
Usage is implied by the 7-day forward-looking scope and the optional coin filter, but there is no explicit when-to-use guidance and no named alternative (e.g. catalysts_economic_calendar) for the case where the agent wants macro events rather than coin-specific ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catalysts_economic_calendarEconomic CalendarARead-onlyInspect
Scheduled macroeconomic data releases (CPI, FOMC, jobs, GDP, etc.) from the last ~2 days through the next 7 days. Optionally set 'min_importance' (1-3, default 2) to filter out low-impact releases.
| Name | Required | Description | Default |
|---|---|---|---|
| min_importance | No | Minimum importance level to include: 1 (all), 2 (medium+), 3 (high only). Defaults to 2. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true, so thedescription does not need to establish the read-only nature. The description adds useful behavioral context: the time range, the type of content, and how min_importance changes the result set. It does not disclose return structure or pagination, but for this simple read-only tool the added behavior 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?
Two short sentences cover the core purpose, time window, and optional filter behavior with no wasted words. The most important information appears first, and every clause contributes to an agent's ability to invoke the tool correctly.
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 tool with one optional parameter and no output schema, the description provides the essential content, schedule scope, and filtering option. It could be more complete by describing the returned fields or contrasting it with catalysts_calendar, but those are minor gaps relative o the tool's simplicity.
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 is only one parameter and the schema already documents it fully, including the 1-3 scale and default of 2. The description essentially restates the schema's meaning rather than adding new semantic or edge-case detail, 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 the resource as scheduled macroeconomic data releases with concrete examples (CPI, FOMC, jobs, GDP) and an explicit time window. It does not use a direct verb like 'list' or 'get,' and it does not explicitly differentiate itself from the sibling catalysts_calendar, so it falls just short of a 5.
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 context for when the tool is appropriate: macroeconomic releases within roughly the last 2 days to next 7 days. It also explains the optional min_importance filter. However, it does not state when to prefer an alternative tool like catalysts_calendar, so no exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catalysts_etf_flowsETF FlowsARead-onlyInspect
Recent daily spot-ETF net flows (USD) for an underlying asset (BTC, ETH, SOL, XRP; defaults to BTC): latest day total, per-fund breakdown, and the trailing daily trend. Positive means net inflows. Flows settle behind spot and skip weekends, so the latest row is routinely a day or more old — its age is reported next to the date, and the price it carries is the price on THAT date, not spot. 'symbol' is accepted as an alias for 'asset'.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | No | Underlying asset symbol, e.g. "BTC" or "ETH". Defaults to BTC. | |
| symbol | No | Alias for 'asset'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses meaningful behavioral traits: data is delayed, weekends are skipped, the latest row's age is reported, and the attached price is from that date rather than current spot. This gives the agent critical expectations about data freshness and semantics.
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, well-ordered sentences: the core purpose and result shape come first, followed by essential caveats and the alias note. There is no filler or repetition of schema details that don't add 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?
Even without an output schema, the description gives a sufficient picture of what the tool returns: total, per-fund breakdown, trend, date with age, and associated price. The parameters are fully covered, behavior is explained, and no critical calling information 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 enumerating accepted asset values (BTC, ETH, SOL, XRP), reinforcing the default, and explicitly documenting the 'symbol' alias. This goes beyond the schema's minimal descriptions.
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 precisely identifies the resource (spot-ETF net flows in USD), the supported assets (BTC, ETH, SOL, XRP with BTC default), and the output shape (latest day total, per-fund breakdown, trailing daily trend). This clearly distinguishes it from other flow-related siblings like flow_orderbook or flow_whale_context.
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 clearly implies when to use it: whenever ETF flow data for a supported asset is needed. It provides important context about timing (flows settle behind spot, skip weekends) and interpretation (positive means net inflows), but does not explicitly name alternatives or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catalysts_exchange_listingsExchange ListingsARead-onlyInspect
Exchange listings and delistings from the venues' own notices: what is SCHEDULED (with the exact time when the venue states it) and what happened in the last 'days' (default 7, max 30). Binance (futures instrument list: exact open/settle times; announcements when configured), Bybit and OKX (official announcement feeds) and Upbit. Delistings are announced 2–7 days ahead; new listings, Upbit and Binance especially, are among the most price-moving events. Coins and times are parsed from each notice's title and text: a notice that does not name them says so. Filter by coin ('symbol', comma-separated), 'kind' (listing, delisting, or all to include other trading notices such as pair removals, margin/collateral changes, migrations and postponements) and 'exchange'.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | How many days back 'recent' reaches, 1–30. Default 7. | |
| kind | No | listing, delisting, both (default) or all (adds other trading notices) | |
| symbol | No | Coin symbol(s), comma-separated, e.g. 'EPIC' or 'sol,eth'. Omit for all coins. | |
| exchange | No | Binance, Bybit, OKX or Upbit. Omit for all. |
Output Schema
| Name | Required | Description |
|---|---|---|
| days | No | |
| kind | No | |
| asOfMs | No | |
| recent | Yes | Took effect (or, undated, was announced) within 'days', newest first |
| sources | Yes | |
| scheduled | Yes | Takes effect after asOfMs, soonest first |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, and the description adds real behavioral context: the data sources per venue, the default/max lookback window, and the important caveat that coin and time are parsed from notice text and 'a notice that does not name them says so.' It stops short of describing response shape or coverage gaps per venue beyond 'announcements when configured.'
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?
Front-loaded with the core purpose and scoping, then filters. It is dense and somewhat run-on in the middle (venue parentheticals), but nearly every clause carries information an agent needs; little is wasted.
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, return values need not be explained, and the description covers sources, time window, filter semantics, and parsing caveats. Nothing an agent needs to invoke this 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 coverage is already 100%, so the baseline is 3, but the description adds meaning beyond the schema: it enumerates what 'all' actually includes (pair removals, margin/collateral changes, migrations, postponements) and clarifies comma-separated symbol usage. This is genuine added value over the enum labels.
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?
States a specific verb+resource ('Exchange listings and delistings from the venues' own notices') and immediately scopes it to scheduled vs. recent events. It names the exact venues covered (Binance, Bybit, OKX, Upbit), which distinguishes it from generic siblings like catalysts_calendar or news_search.
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 clear context for when this matters ('delistings announced 2–7 days ahead; new listings... among the most price-moving events') and explains the filter dimensions. It does not explicitly name an alternative sibling tool 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.
derivatives_flowPerp Flow (OI × Taker, Binance or Bybit)ARead-onlyInspect
USDT-margined perpetual flow for one coin on a 5m/15m/1h grid, from one venue: Binance, or Bybit for coins Binance doesn't list (e.g. WAVES). Open interest (USD) at every bucket edge joined to taker buy and sell volume (USD), with each stretch read as new longs, new shorts, short covering or long unwind (OI direction × the aggressive side). Bybit publishes the taker split only for its last ~1000 trades, so older Bybit buckets are read from OI against price direction instead, and every read states its basis (taker or price). Reports the window, the open-interest swings of 1% or more with the price and taker flow inside them (flagging aggressors absorbed by passive orders, taker basis only), and the buckets where OI moved most. One venue, not the market-wide aggregate. Use it to say whether a move was positions opening or closing, and which side pushed.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Trailing window in hours, 1–72. Default 24. At 5m the window is capped at about 41h by the venue's 500-snapshot limit. | |
| symbol | Yes | Coin symbol, e.g. "ETH". | |
| interval | No | Bucket size. Default 15m. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rule | No | |
| venue | Yes | |
| market | No | |
| symbol | Yes | |
| window | No | |
| buckets | No | |
| caveats | No | |
| episodes | No | Open-interest swings of at least 1% between zigzag pivots, oldest first |
| interval | No | |
| windowHours | No | |
| largestOiBuckets | No | |
| takerSplitFromMs | No | When the venue covers only part of the window: the first bucket with a taker split |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite the readOnlyHint annotation, the description adds substantial behavioral context: the Bybit taker-split limitation (~1000 trades), the fallback to price-direction reading, and the explicit statement that every read declares its basis. This is rich disclosure well beyond the annotation.
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?
Front-loaded with the core purpose and venue scoping, and every sentence is informative. It is dense and long for a three-parameter tool, but little is pure 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?
With an output schema present and full param coverage, the description need not explain returns; it still supplies venue-selection logic, the basis caveat, and reading semantics, so an agent has everything needed to call and interpret it.
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 schema already documents hours, symbol, and interval including defaults. The description reinforces the grid/venue semantics but does not add syntax or format detail 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?
States a specific verb+resource (USDT-margined perpetual flow for one coin on a 5m/15m/1h grid from one venue) and explicitly distinguishes itself from the market-wide aggregate, which separates it from siblings like derivatives_open_interest and derivatives_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 a clear use case ('to say whether a move was positions opening or closing, and which side pushed') and an implicit exclusion ('One venue, not the market-wide aggregate'), but never names an alternative sibling or state explicit when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
derivatives_liquidationsLiquidation HistoryARead-onlyInspect
Liquidation history for one coin's perpetuals: market-wide long/short liquidations (USD) in 4h buckets and the 24h split by venue, plus a minute-level timing sample of individual liquidation orders from venues that publish them (OKX, Gate) with detected cascades (time, side, size, order count, price range) and the largest orders. The sample is a share of the market, stated per bucket, never scaled up. Use it to say WHEN and WHICH SIDE was forced out, instead of inferring liquidations from price and open interest: flat OI can hide heavy liquidations that new positions replaced. A 1y baseline ranks the trailing ~24h of longs and shorts against a year of daily totals (percentile, 'largest since' date, median day, the year's three largest days per side), so a figure can be called big or routine for this coin.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Trailing window in hours, 1–72. Default 24. | |
| symbol | Yes | Coin symbol, e.g. "BTC". | |
| interval | No | Bucket size for the timing sample. Default 15m. | |
| top_orders | No | Largest individual liquidations to list, 0–20. Default 5. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sample | No | |
| symbol | Yes | |
| cascades | No | |
| interval | No | |
| baseline1y | No | The trailing ~24h (newest six 4h buckets) ranked against a year of CoinGlass daily totals over the same venues |
| cascadeRule | No | |
| windowHours | No | |
| largestOrders | No | |
| marketWide24h | No | CoinGlass trailing-24h totals and per-venue split |
| sourcesFailed | No | |
| marketBuckets4h | No | Market-wide 4h buckets overlapping the window, oldest first |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint, so the description carries the rest of the burden and does so well: it discloses that the sample is a share of the market, stated per bucket and 'never scaled up', and that cascades/largest orders come only from venues that publish them (OKX, Gate). It also explains the 1y baseline methodology (percentile, 'largest since' date, median day), which is behavioral context no annotation or schema conveys.
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?
Front-loaded with the core resource and scope, and each sentence carries distinct content (contents, sample caveat, use rationale, baseline). It is a single dense paragraph of roughly 110 words, which is heavier than needed; light structuring would improve scanability without losing 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?
An output schema exists, so return values need not be spelled out; the description instead supplies the methodology, caveats, and use framing that an agent needs to interpret the numbers correctly. Nothing material for correct invocation or interpretation 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 both defaults and ranges are already documented; baseline is 3. The description adds some framing — the interval drives the timing sample, top_orders is the largest individual liquidations, and hours relates to the 'trailing ~24h' baseline — but it doesn't add format or unit detail beyond the schema, and 'minute-level timing sample' sits slightly oddly against a 5m/15m/1h enum.
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?
States a specific verb and resource — 'Liquidation history for one coin's perpetuals' — and enumerates the exact contents: market-wide long/short liquidations in 4h buckets, a 24h venue split, and a minute-level timing sample with detected cascades. It even positions itself against a related signal (inferring liquidations from price/OI), so an agent can distinguish it from derivatives_open_interest and derivatives_flow without opening a schema.
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 a clear use condition — 'Use it to say WHEN and WHICH SIDE was forced out, instead of inferring liquidations from price and open interest' — and the rationale (flat OI can hide heavy liquidations). It stops short of naming sibling tools or stating exclusions (e.g., when derivatives_flow is the better pick), so it is strong context rather than a full routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
derivatives_open_interestOpen InterestARead-onlyInspect
Current market-wide (cross-exchange aggregate) open interest (USD) for one coin's perpetuals, with its 24h and 7d change, the 24h price change, AND the underlying 4h-bucket series. Read OI against price: price up on rising OI is new money opening positions, price up on falling OI is short covering — opposite trades off the same price move. The series makes that read available bucket by bucket instead of once per day (pair it with market_candles at 4h for the price leg), and carries the window's own low/high so the current level can be judged against where it has actually been. A 1y line ranks the level and today's 24h change against a year of daily closes (percentile, range with dates); the change rank is the better read, since the USD level mostly tracks price. Falls back to a single-venue figure if the aggregate source is offline. Set 'points' to trim the series (omit for the full ~10-day window; 0 to suppress it).
| Name | Required | Description | Default |
|---|---|---|---|
| points | No | How many of the newest 4h buckets to emit. Omit for the full window (60 points ~ 10 days); 0 suppresses the series and returns the summary only. | |
| symbol | Yes | Coin symbol, e.g. "BTC". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only safety, but the description adds substantive behavior: a fallback to a single-venue figure if the aggregate source is offline, and the points=0 suppression behavior. It also discloses that the series carries its own low/high window. It does not cover latency, caching, or rate limits, but for a read-only analytics call this is strong added 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?
Front-loads the core purpose then layers interpretation, fallback, and the points knob. Nearly every sentence carries information, though the price/OI interpretation passage runs long and repeats the same idea (rising vs falling OI) more than strictly needed.
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 output schema, the description carries the full burden and does so: it explains the summary fields, the 4h series, the 1y percentile/range, and the fallback path. An agent can interpret the return value 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 description coverage is 100%, and both symbol and points are already fully documented in the schema, including the same omit/0 semantics the description repeats. The description adds only framing about why the series matters, not new parameter syntax. Baseline 3 is correct 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?
States a specific verb and resource with scope: market-wide cross-exchange aggregate open interest in USD for one coin's perpetuals. It also enumerates the exact payload (24h/7d change, 24h price change, 4h-bucket series, 1y percentile rank), so an agent knows precisely what it is getting. This distinguishes it from pricing siblings like market_candles and market_quotes.
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 real interpretive context and an explicit pairing instruction ('pair it with market_candles at 4h for the price leg'). It also explains the price/OI read so the agent knows what question this tool answers. It stops short of naming when-not-to-use or contrasting with other derivatives siblings (derivatives_flow, derivatives_liquidations), so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
events_prediction_oddsPrediction Market OddsARead-onlyInspect
Market-implied prediction-market odds for a topic (e.g. 'Fed rate cut', 'bitcoin 100k'). Returns the most active matching markets with per-outcome probabilities, volume, and resolution date.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Topic to match against market questions, e.g. 'Fed', 'bitcoin', 'ETH ETF'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds meaningful behavioral context by stating it returns the most active matching markets and enumerating the returned fields, giving the agent a clear sense of behavior beyond 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?
The description is two sentences with no filler. It front-loads the core purpose, provides concrete examples, and immediately states the output content, making it efficient and well-structured.
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 single-parameter, read-only tool with no output schema, the description provides sufficient context: what the tool does, how the query is used, and what the response will contain. No missing information is critical 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?
Schema coverage is 100%, so the schema already documents the query parameter thoroughly. The description adds illustrative topic examples, but does not materially extend parameter meaning beyond what the 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 clearly identifies the tool as returning prediction-market odds for a topic, with specific output elements (per-outcome probabilities, volume, resolution date). It is easily distinguished from siblings like market_quotes or funding_current by its unique focus on prediction markets despite not naming 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 description implies usage: call it when you need market-implied probability odds for a given topic. However, it does not explicitly state when to prefer this over other market-data tools or mention any exclusions, so usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
filings_searchRegulatory Filings SearchARead-onlyInspect
Searches recent regulatory filings (full-text) for a company, ticker, or theme (e.g. 'bitcoin treasury'). Returns the most recent matching filings with form type, filer, and a direct document link.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Free-text query, e.g. a company name, ticker, or theme. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, signaling a safe read operation. The description adds useful context about full-text search and the returned result fields, but it does not disclose limitations such as the exact date range for 'recent' or any pagination constraints. With annotations covering safety, a moderate score is appropriate.
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 tight sentences. The first sentence front-loads the core action and scope; the second sentence states the return payload. Every clause earns its place with no redundancy 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?
For a simple one-parameter tool, the description is mostly complete: it explains both the query semantics and the output format (form type, filer, link), compensating for the missing output schema. The only minor gap is the ambiguity of 'recent' (no defined look-back period), which could affect expectations but is not blocking.
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%: the query parameter is fully documented with its own example ('a company name, ticker, or theme'). The description repeats the same examples without adding additional semantic detail beyond the schema, so it meets the baseline but does not exceed it.
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 ('Searches') and resource ('recent regulatory filings'), specifies the search mode ('full-text'), and lists the exact output fields (form type, filer, direct document link). This clearly differentiates it from siblings like news_search and market_quotes, which cover different domains.
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 implies when to use the tool (when needing regulatory filings by company, ticker, or theme) but does not explicitly state when not to use it or contrast it with alternatives. No exclusions or routing guidance are provided, leaving the context to be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_levelsPerp Levels (volume, OI, liquidations, walls)ARead-onlyInspect
Perp price levels for one coin, from what printed rather than from a chart: executed volume at price on every venue that lists it (Binance, Bybit, BingX, Hyperliquid), with the value area (70% of volume around the POC), high-volume nodes and thin zones (prices crossed without trading, where moves tend to run); open-interest changes at price split into long and short entries; realized liquidations at price (OKX/Gate sample); and resting walls from deep books on several venues, counted only when a second snapshot 2 s later still shows them. Every level is graded by evidence — traded (volume, liquidations) > inferred (OI side) > resting (orders, which can be pulled) — and lists the other evidence at the same price (confluence). Walls larger than their venue's own daily volume are flagged. Use it for where price may stall, accelerate or meet forced flow; it is not a forecast.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Window in hours, 24–168. Default 72. | |
| symbol | Yes | Coin symbol, e.g. "WAVES". |
Output Schema
| Name | Required | Description |
|---|---|---|
| rule | No | |
| spot | Yes | |
| step | No | Price bin width |
| levels | No | |
| symbol | Yes | |
| window | No | The window at a glance: price from the venue that traded most, OI from the flow venue, volume in the band, liquidations in the sample |
| caveats | No | |
| sources | No | |
| supports | No | Nearest levels on this side, one entry per price, strongest-first among the nearest |
| valueArea | No | |
| resistances | No | Nearest levels on this side, one entry per price, strongest-first among the nearest |
| spotContext | No | |
| windowHours | No | |
| dailyRangePct | No | Average 24h high–low range over the window, percent of price |
| sourcesFailed | No | |
| unconfirmedWalls | No | Walls larger than their venue's own 24h volume: shown, never counted as support or resistance |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only readOnlyHint provided, the description carries the behavioral burden well: it discloses data provenance and gaps (OKX/Gate liquidation sample), the 2-second second-snapshot confirmation for walls, the evidence-grading hierarchy (traded > inferred > resting), and the caveat that resting orders can be pulled. This is rich, non-obvious context 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?
Content is front-loaded (purpose first, then sources, then grading, then usage), and every clause adds substantive information. It is dense and the sources are packed into one long run-on sentence, which slightly hurts scannability, but there is little dead weight.
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?
An output schema exists, so return-value explanation is unnecessary. The description still covers sources, limitations, grading, and usage intent, leaving nothing an agent needs to call it correctly 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 both parameters (hours with range/default, symbol with example) are fully documented in the schema. The description adds no syntax or format detail beyond that, 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?
States a specific resource ('Perp price levels for one coin') and immediately scopes it ('from what printed rather than from a chart'), then enumerates the exact content types: volume-at-price, value area/POC, HVNs, thin zones, OI changes by side, liquidations, and resting walls. An agent can distinguish this from derivatives_flow or flow_orderbook without opening 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?
Gives explicit when-to-use context ('where price may stall, accelerate or meet forced flow') and an exclusion ('it is not a forecast'). However, it never names a sibling alternative such as derivatives_flow, derivatives_liquidations, or flow_orderbook, so the agent must infer routing against those tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_orderbookOrder Book SnapshotARead-onlyInspect
Order-book snapshot for one coin's perpetuals: best bid/ask, spread in bps, top-of-book depth (USD) per side, bid/ask depth imbalance, and the cost vs mid of $10k and $100k market orders against the visible levels. Positive imbalance means more bid depth. Single-venue by nature — Hyperliquid, falling back to Bybit for coins it doesn't list; the response names the venue that answered and how far its visible book reaches.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Coin symbol, e.g. "BTC". |
Output Schema
| Name | Required | Description |
|---|---|---|
| asOfAt | No | Order-book timestamp, ISO-8601 UTC |
| asOfMs | No | Order-book timestamp, Unix epoch milliseconds |
| source | No | Venue that served the book |
| symbol | Yes | |
| fillCosts | No | Cost vs mid of a market order of each size against the visible levels |
| spreadBps | No | Bid/ask spread, basis points of mid |
| bestAskUsd | No | Best ask price, USD |
| bestBidUsd | No | Best bid price, USD |
| askDepthUsd | No | Top-of-book ask depth, USD |
| bidDepthUsd | No | Top-of-book bid depth, USD |
| midPriceUsd | No | Mid price, USD |
| imbalancePct | No | Signed bid-vs-ask depth skew in percentage points (positive = more bids) |
| visibleAskReachPct | No | Deepest returned ask vs mid, percent; nothing beyond is visible |
| visibleBidReachPct | No | Deepest returned bid vs mid, percent; nothing beyond is visible |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only readOnlyHint=true in annotations, the description carries most of the burden and delivers real value: it discloses venue selection and fallback (Hyperliquid then Bybit), that the response names the answering venue and how far its visible book reaches, and how to read imbalance (positive = more bid depth). It stops short of stating data staleness/refresh characteristics, which matter a great deal for an order-book tool.
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?
It is a single dense paragraph, but every clause earns its place: the return fields, the imbalance interpretation, and the venue/fallback note are all decision-relevant. It is slightly front-loaded with an enumeration rather than a purpose statement, but it wastes no sentences.
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 one-parameter tool with an output schema, the description covers the unusual behaviors an agent could not infer from structured data — venue fallback, venue naming, book depth reporting, and imbalance sign convention. Missing only operational details such as freshness/latency, which are not carried by any other structured field either.
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 is a single parameter with 100% schema description coverage, so the schema already documents 'symbol' including a usage example ('BTC'). The description adds no format or coverage detail beyond that, which is exactly the baseline-3 case when structured fields do 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 names a specific resource (order-book snapshot for one coin's perpetuals) and enumerates exactly what it returns: best bid/ask, spread in bps, depth, imbalance, and $10k/$100k market-order cost. It is clearly distinct from market_quotes or fundraising tools. However, it never explicitly positions itself against the close sibling flow_levels, which also concerns order-book levels, so the differentiation is not fully nailed down.
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?
There is no explicit when-to-use or when-not-to-use statement, and no alternative is named. Usage is only implied: the field list makes it obvious this is for measuring top-of-book liquidity and slippage. The one contextual remark ('Single-venue by nature', with a Hyperliquid-to-Bybit fallback) helps an agent understand what it is getting, but does not tell it when to reach for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_whale_contextWhale Flow ContextARead-onlyInspect
Aggregate whale context for one coin (cohort-level, no individual wallets): per-exchange reserve changes (1d/7d), top-trader long/short positioning on Binance perps, and large on-chain transfers to/from exchange wallets above a USD threshold. The transfer feed covers ERC-20 tokens; for native assets (BTC, ETH) it substitutes market-wide USDT exchange flows as a dry-powder signal. Exchange withdrawals suggest accumulation; deposits suggest potential sell pressure. For specific whale wallets and their live positions use flow_whale_positions.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Coin symbol, e.g. "BTC" or "ETH". | |
| min_usd | No | Minimum transfer size in USD to count as a whale transfer. Defaults to 1000000. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses important behavioral nuances: the transfer feed only covers ERC-20 tokens, native assets fall back to USDT exchange flows, and the tool interprets withdrawals as accumulation and deposits as potential sell pressure. This adds substantive context about data provenance and meaning that an agent needs to interpret results correctly.
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?
Four sentences, each with a distinct job: scope/components, asset-class caveat, interpretation, and alternative tool. The main purpose is front-loaded, and the prose is dense but not verbose. No filler or repeated 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 read-only aggregate tool with no output schema, the description covers data sources, scope, caveats, and interpretation. It does not specify the response shape or group/pagination behavior, but with only two simple parameters and a clear aggregation purpose, this is a minor gap rather than a blocking one.
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 both `symbol` and `min_usd` already clearly documented. The description reinforces the threshold concept ('above a USD threshold') and the coin scope, but it does not add new parameter-level detail beyond what the schema 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 uses a specific verb ('Aggregate') and resource ('whale context for one coin'), then enumerates the concrete components: exchange reserve changes, Binance perps positioning, and large transfers. It also explicitly states the level of detail ('cohort-level, no individual wallets'), which distinguishes it from flow_whale_positions without needing to open that tool.
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 opens with the scope ('for one coin') and immediately contrasts with the sibling tool: 'For specific whale wallets and their live positions use flow_whale_positions.' It also provides interpretive guidance on when withdrawals/deposits matter, making the intended use case clear. This is explicit routing between alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flow_whale_positionsWhale PositionsARead-onlyInspect
Live whale positions on Hyperliquid perps. By default discovers the largest currently-active whale accounts from the venue leaderboard and returns each one's equity and open positions with side, notional (USD), entry price, liquidation price, leverage and unrealized PnL. Optionally pass 'addresses' (comma-separated 0x wallets, max 10) to follow specific wallets instead. For aggregate cohort signals use flow_whale_context.
| Name | Required | Description | Default |
|---|---|---|---|
| addresses | No | Optional comma-separated 0x wallet addresses to inspect (max 10). Omit to auto-discover the biggest live whales. |
Output Schema
| Name | Required | Description |
|---|---|---|
| accounts | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true already conveying the non-mutating nature, the description adds meaningful behavioral context: it auto-discovers accounts from the venue leaderboard, returns a detailed set of per-position fields, and supports following specific wallets. It could go further by noting edge cases like invalid addresses or data freshness, but it is transparent about the main 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 concise and front-loaded with the core purpose, followed by default behavior, optional parameter behavior, and a pointer to the relevant sibling tool. Every sentence earns its place with no redundant 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 single-optional-parameter read-only tool with an output schema, the description covers the default discovery mode, the optional address mode, the returned fields, and the natural alternative for cohort-level signals. Nothing essential is missing for correct selection and 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?
The schema already covers the single parameter thoroughly with a 100% description coverage rate, including the comma-separated format, max 10 wallets, and omit-to-auto-discover behavior. The description adds only minor nuance like 'follow specific wallets instead,' 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 clearly identifies the tool's function: returning live whale positions on Hyperliquid perps, including specific fields like equity, side, notional, entry price, liquidation price, leverage, and unrealized PnL. It also explicitly distinguishes itself from flow_whale_context, which handles aggregate cohort signals.
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 default behavior (auto-discover largest active whales), explains when to pass the 'addresses' parameter instead, and explicitly directs users to flow_whale_context for aggregate cohort signals. This gives 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.
funding_currentCurrent Funding RatesARead-onlyInspect
Current perpetual funding rate for one coin (hourly rate plus an annualized estimate), merged across providers, with its 24h and 7d trajectory AND the underlying 8h-bucket series. Positive means longs pay shorts. The trajectory is the point: the same +6% annualized reads as post-flush relief if it fell from +40% and as shorts capitulating if it rose from -20%. The series carries the shape a trailing delta flattens away — a steady drift and a spike that retraced give the same 24h change off opposite tapes — plus the window's own low/high, so the current rate can be judged against where it has actually been rather than an absolute threshold. A 1y line ranks the current rate against a year of daily closes (percentile, low/median/high with dates), so 'high' means high for this coin, not just for the week. Set 'points' to trim the series (omit for the full ~10-day window; 0 to suppress it).
| Name | Required | Description | Default |
|---|---|---|---|
| points | No | How many of the newest 8h buckets to emit. Omit for the full window (30 points ~ 10 days); 0 suppresses the series and returns the summary only. | |
| symbol | Yes | Coin symbol, e.g. "BTC". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, so the description carries the real burden here and delivers: it discloses that data is 'merged across providers', that the window is ~10 days by default, that points=0 suppresses the series, and that positive means longs pay shorts. Provider-merge and suppression semantics are genuine behavioral detail beyond the annotation.
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 first sentence front-loads the purpose well, but the middle is discursive, repeatedly re-explaining why trajectory beats a trailing delta and why a local low/high matters. The same idea ('the trajectory is the point', 'shape a trailing delta flattens away') is argued more than once and could be compressed without losing meaning.
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 output schema, the description must describe the return shape, and it does so thoroughly: summary metrics, trajectory windows, bucket series, and 1y percentile stats with dates. For a 2-param read tool this is nearly complete; only error/empty-data or provider-availability behavior is unaddressed.
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 description's points guidance ('omit for the full ~10-day window; 0 to suppress it') essentially restates what the schema already documents, adding no new format or constraint. Symbol gets no mention in the prose at all.
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 (current perpetual funding rate for one coin) with concrete outputs: hourly rate, annualized estimate, 24h/7d trajectory, 8h-bucket series, and 1y percentile line. That unambiguously separates it from derivatives_open_interest, derivatives_liquidations, and derivatives_flow. It never names a sibling to contrast against, which is why it falls short of a 5.
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 strong guidance on how to interpret the output ('judge the rate against where it has actually been rather than an absolute threshold'), but no guidance on when to select this tool over the derivatives_* siblings, nor any stated prerequisites. Usage is implied by the analytical framing rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_candlesPrice CandlesARead-onlyInspect
OHLC(V) candle history for a coin by symbol (e.g. 'ETH', 'BTC'). 'interval' picks the candle size (1m|5m|15m|30m|1h|4h|12h|1d|1w, default 1d); 'limit' the number of candles (default 100, max 400); 'market' picks the series — 'spot' (Binance, Bybit, then CoinGecko/CoinMarketCap), 'perp' (Hyperliquid, Bybit, then Binance futures — perpetual marks), or 'auto' (default: spot preferred; perp when spot fails, or when spot's history is shorter than the request and than 210 candles while perp's is materially longer — e.g. a coin whose spot pair listed recently). spot/perp are hard constraints and error rather than substitute. The response labels the market, interval and source actually delivered, includes USD volume when the source carries it, and flags a still-forming last candle.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | DEPRECATED: trailing window in days; use interval+limit instead. Ignored when interval is given. | |
| limit | No | Number of candles, newest last. Default 100, max 400. | |
| market | No | Which market's series: spot exchange trades, perpetual-futures marks, or auto (spot preferred; perp when spot fails or its history is too short). Default auto. | |
| symbol | Yes | Coin symbol, e.g. 'ETH' or 'BTC' | |
| interval | No | Candle size. Default 1d. |
Output Schema
| Name | Required | Description |
|---|---|---|
| coinId | No | Identifier the answering provider queried |
| market | No | 'spot' or 'perp' — which market the series describes |
| source | No | Provider that answered |
| candles | No | |
| interval | No | Candle size actually delivered, e.g. '4h' |
| lastCandleIsPartial | No | True when the newest candle is still forming; exclude it from indicator math |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true; the description carries the rest and does so richly — provider fallback chains per market, the auto-fallback heuristic, hard-constraint error behavior for spot/perp, and that the response labels the market/interval/source actually delivered and flags a still-forming last candle. This is exactly the behavioral context annotations cannot express.
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?
A single dense paragraph that front-loads purpose before parameters, with no filler sentences. It is long and unsegmented, so the nested auto-fallback rule is harder to scan than it could be, but every clause carries 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?
An output schema exists, so return format need not be explained, yet the description still notes response labeling, USD volume presence, and the forming-candle flag. Combined with the parameter semantics, an agent has everything needed 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 coverage is 100%, so the baseline is 3, but the description adds real meaning beyond the schema: the provider chain behind each 'market' value, the auto-fallback condition, and the error-not-substitute contract. Some redundancy exists (it restates the interval enum list, limit default/max, and days deprecation already in the schema), which keeps it from a 5.
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?
Opens with a specific verb+resource ('OHLC(V) candle history for a coin by symbol') and immediately scopes it with the key identifying parameters. An agent can distinguish this from siblings like market_history, market_quotes, or ta_technicals without opening the schema.
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 strong in-tool selection guidance: 'market' spot/perp/auto with an explicit preference order and the exact condition under which auto falls back to perp (spot history shorter than the request and than 210 candles), plus the fact that spot/perp are hard constraints that error rather than substitute. It does not, however, say when to reach for this tool instead of sibling tools such as ta_technicals or market_history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_coin_detailsCoin DetailsARead-onlyInspect
Fetches price, market cap, ATH/ATL and description for a coin by its CoinGecko coin ID (e.g. 'bitcoin', 'ethereum') or by ticker symbol (e.g. 'BTC', 'WAVES'). IDs are case-sensitive; a symbol, or an ID in the wrong case, is resolved by search and the response names the ID actually fetched, so a resolution is never silent.
| Name | Required | Description | Default |
|---|---|---|---|
| coin_id | Yes | CoinGecko coin ID (e.g. 'bitcoin') or ticker symbol (e.g. 'BTC'). IDs are case-sensitive; symbols are resolved by search. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses non-obvious behavior: IDs are case-sensitive, symbols or wrong-case IDs are resolved via search, and the response names the actually fetched ID so a resolution is never silent. 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?
Two sentences contain zero filler: the first front-loads the action and data returned, the second adds the resolution caveat essential for correct invocation. Every clause 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?
For a one-parameter, read-only tool with no output schema, the description is complete: it names the input forms, examples, case-sensitivity behavior, and the high-level return fields. An agent has enough to call it correctly and interpret the response.
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 goes beyond the schema by adding multiple examples and, crucially, the wrong-case resolution guarantee ('a resolution is never silent'), which clarifies what happens with non-exact inputs.
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 ('Fetches'), a clear resource ('a coin by its CoinGecko coin ID or ticker symbol'), and the exact fields returned (price, market cap, ATH/ATL, description). This distinguishes it from sibling list/quotes tools like market_coins or market_quotes without needing to open their 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 intended use is clearly implied: use this tool when you need detailed single-coin data by ID or symbol. However, it never explicitly names sibling alternatives or states when-not-to-use it, so the agent must infer routing based on the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_coinsSupported CoinsARead-onlyInspect
Lists the coin symbols available from the market-data provider
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the read-only nature. The description adds only the source/scope ('from the market-data provider') and does not disclose return format, ordering, or whether the list is exhaustive. This is acceptable but minimal.
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, front-loaded sentence with no filler. It delivers the key action and resource immediately and earns its place without 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?
For a no-parameter, read-only enumeration tool, the description is nearly complete: it explains what is returned (coin symbols). It would be slightly stronger if it noted that the returned symbols can be used as inputs to market_* tools, but nothing critical 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?
The tool has zero parameters and the schema has 100% coverage, so there are no parameter semantics for the description to add. The baseline for a no-parameter tool is 4, as nothing is missing here.
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 ('Lists') and a specific resource ('coin symbols available from the market-data provider'). It clearly distinguishes this tool from siblings like market_coin_details, which provide details about individual coins rather than enumerating supported symbols.
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 implies the tool is used when you need the list of supported coin symbols, but it gives no explicit guidance about when to choose this tool over alternatives. It does not mention exclusions or point to related market tools such as market_quotes or market_candles.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_historyMarket HistoryARead-onlyInspect
Bulk history for one coin, one metric per call, in pages: 'price' (OHLCV candles, spot or perp), 'open_interest' (market-wide aggregate USD), 'funding' (OI-weighted rate, %/8h and annualized) or 'liquidations' (market-wide long/short USD per bucket). Returns up to 'limit' rows (default 200, max 1000) at or before 'end' (default now), oldest first, as compact columns + rows; pass the returned nextEndMs as 'end' to fetch the page before it, and 'start' to stop there. Reach: price is full venue history (Binance spot from 2017, futures from 2019) at 1m–1w; derivatives come from CoinGlass at 4h (about 180 days back), 6h/8h/12h (about 360 days) or 1d/1w (back to 2020) — use 1d for anything older than six months. The newest row may still be forming (newestForming). Use this to pull history; for a read of what is happening now, use the derivatives_* and research_* tools.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Latest time to include: ISO-8601 or Unix ms. Default now. Pass nextEndMs here to page back. | |
| limit | No | Rows per page, 1–1000. Default 200. | |
| start | No | Earliest time to include: ISO-8601 (UTC if no offset) or Unix ms. Paging stops here. | |
| market | No | Price only: spot (default) or perpetual candles. | |
| metric | Yes | ||
| symbol | Yes | Coin symbol, e.g. "BTC". | |
| interval | No | Bucket size. Price: 1m–1w except 6h/8h, default 1d. Derivatives: 4h, 6h, 8h, 12h, 1d or 1w; default 4h (funding 8h). |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| rows | Yes | Oldest first; each row is [timeMs, ...values] in column order; null where the source has no value |
| count | Yes | |
| endMs | No | The page's end bound, Unix ms |
| units | No | What each value column means |
| market | No | Price only: spot or perp |
| metric | Yes | |
| source | No | Provider that answered this page |
| symbol | Yes | |
| columns | Yes | Names of each row's cells; the first is timeMs (bucket open, Unix ms) |
| startMs | No | |
| interval | No | |
| nextEndMs | No | Pass as 'end' for the page before this one; null when this page reached 'start' or the series' beginning |
| newestForming | No | Newest row's bucket is still open; the vendor rewrites it until it closes |
| earliestAvailableMs | No | Set when 'end' was before the plan's history edge for this interval |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only supply readOnlyHint=true; the description adds pagination mechanics (pass nextEndMs back as 'end'), a 'start' stop condition, the fact that the newest row may still be forming (newestForming), and precise data provenance/retention windows per source. This is rich behavior beyond the annotation.
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?
Front-loaded with purpose, then paging, then reach, then routing; every section earns its place. Slightly redundant in restating limit/interval defaults already present in the schema, but the density is justified for a complex paginated tool.
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, return values need not be described, and the description still covers pagination flow, coverage limits, defaults, and sibling routing. Nothing an agent needs to call this 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 coverage is high (86%) and carries most parameter docs, but the description adds real value the schema lacks: the meaning of each 'metric' enum value (OHLCV candles, market-wide OI aggregate, OI-weighted %/8h funding, long/short liquidation buckets) and the paging contract for 'end'/'start'.
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?
States a specific verb and resource ('Bulk history for one coin, one metric per call, in pages') and enumerates the exact metric modes with their semantics. It is clearly distinct from siblings such as market_candles and the derivatives_* snapshot 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?
Explicitly routes the agent: 'Use this to pull history; for a read of what is happening now, use the derivatives_* and research_* tools.' It also gives selection rules, e.g. 'use 1d for anything older than six months' and interval availability by metric.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_overviewMarket OverviewARead-onlyInspect
Global market snapshot: total market cap, BTC/ETH dominance, Fear & Greed index, and Altcoin Season index
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| fearGreedLabel | No | |
| fearGreedValue | No | Fear & Greed index, 0-100 |
| btcDominancePct | No | BTC dominance in percentage points |
| ethDominancePct | No | ETH dominance in percentage points |
| totalMarketCapUsd | No | Total crypto market cap, USD |
| totalVolume24hUsd | No | Total 24h volume, USD |
| altcoinSeasonIndex | No | Altcoin Season index, 0-100 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description's word 'snapshot' adds a point-in-time behavioral context, but it does not disclose data freshness, latency, or any limitations. With annotations handling the safety profile, this is adequate but not rich.
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?
A single, front-loaded sentence that names the deliverable and enumerates the key metrics with no filler. Every phrase earns its place, and the structure is easy to parse quickly.
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 parameters, high schema coverage, and an output schema present, the description gives an agent everything needed to understand what will be returned. The metric list is sufficiently complete for a no-argument market snapshot 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?
The tool takes zero parameters, so there is nothing for the description to clarify about input semantics. The baseline for zero-parameter tools is 4, and the description appropriately focuses on what the returned snapshot contains rather than parameter syntax.
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 'Global market snapshot' and names the exact metrics it returns: total market cap, BTC/ETH dominance, Fear & Greed index, and Altcoin Season index. This differentiates it from most siblings by content, though it does not explicitly contrast it with closely related tools like sentiment_fear_greed or market_quotes.
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 explains what the tool provides but gives no guidance on when to choose it over the many sibling market and sentiment tools. No alternatives, exclusions, or conditions are stated, so the agent is left to infer usage from the phrase 'Global market snapshot.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_quotesMarket QuotesARead-onlyInspect
Per-coin market snapshot (spot price, perpetual mark price, 24h change, funding rate, open interest, long/short ratio, 24h liquidations), merged across providers. Spot and perp prices are separate fields (spot from spot-market providers, perp mark from the perp venue); they differ by the basis. Pass 'symbols' to filter to specific coins; omit it for every covered coin.
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | No | Coin symbols to include, e.g. ["BTC","ETH"]. Omit for all covered coins. |
Output Schema
| Name | Required | Description |
|---|---|---|
| quotes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description explains that prices come from different sources, that spot and perp fields are intentionally separate, and that the difference is the basis. This prevents an agent from misreading the combined snapshot as a single unified price.
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 carrying distinct information: scope/fields, price-source semantics, and filtering. There is no filler or duplicated annotation 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?
With an output schema present and readOnlyHint set, the description covers the tool's purpose, data semantics, provider merge behavior, and parameter usage. 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 schema already fully documents 'symbols' with an example and omit behavior at 100% coverage. The description restates that but adds no new semantic detail beyond 'covered coin'.
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 concrete noun phrase ('Per-coin market snapshot') and enumerates specific data fields, making the tool's scope clear. The per-coin scope and merged-provider wording differentiate it from market_overview and funding_current, even without naming them.
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 symbol parameter usage is explicit ('Pass symbols to filter... omit for every covered coin'), but there is no guidance about when to prefer this tool over funding_current, derivatives_open_interest, or market_candles. Usage context is implied by the snapshot wording rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_top_moversTop MoversARead-onlyInspect
Ranked 24h gainers, losers, and trend candidates (>+5% move)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes safety, and the description adds useful context about the data scope and threshold. It does not disclose output size, sorting behavior, or whether gainers and losers are returned separately, but for a parameterless read-only list this is a mild gap rather than a serious one.
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 compact phrase that front-loads the key concepts: 24h gainers, losers, and trend candidates. The parenthetical threshold adds precision without extra words, and every component 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?
For a parameterless read-only tool, the description provides enough context to understand what results will represent and to choose the tool correctly. Minor missing details such as the number of entries returned or quote currency do not affect the ability to invoke it, since there are no parameters and the read-only annotation covers the safety profile.
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 input schema is empty, so there are no parameter semantics for the description to clarify. The baseline score of 4 applies because schema coverage is trivially complete and no invocation arguments 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 identifies the resource: ranked 24h gainers, losers, and trend candidates with a >+5% move threshold. It does not use an explicit action verb like 'returns' or 'lists,' and it does not explicitly distinguish itself from sibling tools such as market_trending, though the 24h movers framing implies a different purpose.
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 intended usage is implied: an agent should use this for recent price movers over 24 hours with significant percentage changes. However, there is no explicit guidance about when to prefer this over alternatives like market_trending or market_overview, and no exclusion criteria are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_trendingTrending CoinsARead-onlyInspect
Lists the currently trending cryptocurrencies
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers safety, and the description adds the temporal 'currently' scope plus that a list is returned. It does not explain what 'trending' means, the ranking basis, or additional behavior, but for a read-only, zero-parameter tool this is a reasonable 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?
The description is a single sentence that is front-loaded with the verb and resource, containing no filler or repetition. It is appropriately sized for a zero-parameter, read-only tool.
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 zero-parameter tool, the description adequately conveys that the output is a list of currently trending cryptocurrencies. Without an output schema, it could go further by defining 'trending' criteria, but the missing detail is minor given the tool's simplicity.
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 no schema ambiguity for the description to clarify. The baseline for parameterless tools is 4 because no additional meaning is 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 uses a specific verb and resource: 'Lists the currently trending cryptocurrencies.' It clearly states what the tool does, but it does not explicitly distinguish it from siblings like market_top_movers or market_coins, which could overlap conceptually.
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 'currently trending' implies this is the tool to use when a user asks about trending cryptocurrencies. However, no explicit when-not-to-use guidance or alternative routing is provided, leaving the agent to infer boundaries versus similar market tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_searchCrypto News SearchRead-onlyInspect
Searches for recent news on a topic — articles, market-moving posts and exchange notices, newest first. Exchange notices (kind 'exchange', title prefixed [Exchange kind]) come from Binance, Bybit, OKX and Upbit's own listing and delisting feeds; for the full schedule with exact times use catalysts_exchange_listings. Each item is tagged with its kind and, where measured, the price move that followed the headline.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
onchain_metricsOn-Chain MetricsARead-onlyInspect
On-chain TVL and network fees/revenue (24h/7d/30d) for one chain. Use a chain's own token symbol (e.g. 'ETH', 'SOL', 'BNB') — returns a plain 'not a tracked chain' message for tokens that aren't L1/L2s. Does not cover gas price (gwei).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Chain token symbol, e.g. 'ETH' or 'SOL' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers safety. The description adds useful behavioral detail: unsupported symbols return a plain message, time ranges are 24h/7d/30d, and gas price is not covered. 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?
Two sentences with no fluff. The main data scope is front-loaded, followed by input guidance and caveats. 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?
For a single-parameter read-only tool with no output schema, the description is complete: what metrics are returned, what input format to use, what unsupported inputs do, and what is excluded.
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 schema already documents the symbol parameter. The description adds meaning by specifying 'own token symbol', giving L1/L2 context, and adding examples like 'BNB'. This goes beyond the schema's brief description.
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: returns on-chain TVL and network fees/revenue for one chain. It clearly distinguishes this from market-data siblings by focusing on on-chain metrics and a single-chain scope.
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?
Clear usage context: use a chain's own token symbol, and non-L1/L2 tokens produce a plain 'not a tracked chain' message. It also excludes gas price. It does not explicitly name alternative tools, but the guidance is still actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
options_chainOptions ChainARead-onlyInspect
Crypto options chain (Deribit) for one underlying and expiry: calls/puts by strike with bid/ask/mark (native and USD), mark IV, calculated Black-76 delta, open interest (coins and USD notional) and 24h volume. Lists every available expiry. Underlyings: BTC and ETH (deep; inverse and USDC-linear books), SOL, XRP, HYPE, AVAX, TRX (USDC-linear, thin). Defaults: next expiry, strikes within ±10% of spot, both types.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max contracts returned, default 40, max 200. | |
| expiry | No | "next" (default), a date like "2026-12-25", or an exchange code like "25DEC26". | |
| currency | Yes | Underlying symbol, e.g. "BTC", "ETH", "SOL". | |
| strike_max | No | Highest strike (USD). | |
| strike_min | No | Lowest strike (USD). | |
| option_type | No | Default both. | |
| moneyness_pct | No | When no strike bounds are given: keep strikes within ± this % of spot. Default 10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, so the description carries the rest of the burden and does: it names the data source (Deribit), the exact metrics returned including USD vs native denomination, and the liquidity profile per underlying. That liquidity-depth warning is exactly the kind of behavioral context annotations cannot express.
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, each with a distinct job: what is returned, which expiries exist, which underlyings and how liquid. No filler and the resource definition 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 no output schema, the description compensates by enumerating the returned fields and their denominations, and it flags underlying coverage limits. For a read-only, seven-parameter chain fetch, an agent has everything needed to call it correctly and interpret the result.
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 schema already documents all seven parameters including the enum and the 'next'/date/exchange-code expiry formats. The description's defaults (next expiry, ±10% spot, both types) largely restate what the schema already declares, adding little beyond it.
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?
States a specific verb and resource: a Deribit crypto options chain for one underlying and expiry, calls/puts by strike. The enumerated return fields (bid/ask/mark, mark IV, Black-76 delta, OI, 24h volume) make it unmistakably the raw-chain tool rather than the sibling analytics tools (options_gamma, options_volatility, options_positioning).
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 clear operational context: which underlyings exist, that BTC/ETH books are deep while SOL/XRP/HYPE/AVAX/TRX are thin, and what the defaults are when the caller omits filters. It never names a sibling or an explicit when-not condition, 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.
options_gammaOptions Gamma ExposureARead-onlyInspect
Crypto options gamma exposure (Deribit, modeled): gross and dealer-signed GEX in USD per 1% move, by strike and expiry, gamma walls, modeled gamma flip levels, options-derived price levels (call/put OI walls, gamma concentrations, max pain, high-sensitivity zones) and a rule-based options regime (positive/negative modeled gamma, near flip, expiry concentration, elevated/compressed vol), with perp funding/OI/liquidations/order book as a separate evidence block. What-ifs: hedging=true adds theoretical dealer hedge ladders (spot ±0.5–5%, charm 1–24h and through the next expiry, vanna ±1/2/5 vol points); target_price / horizon_hours / iv_change reprice the same frozen contracts (GEX, dealer delta, hedge, flips and walls before vs after). Signed numbers depend on an explicit dealer-positioning scenario; modeled, not observed orders.
| Name | Required | Description | Default |
|---|---|---|---|
| expiry | No | What-if/hedging scope: only this expiry ("next", "2026-11-27" or "27NOV26"). Default all. | |
| hedging | No | Add theoretical dealer hedge ladders (price, charm, vanna). Implied by any what-if parameter. | |
| currency | Yes | Underlying symbol, e.g. "BTC". | |
| scenario | No | Assumed dealer positioning (public OI can't show it). Default calls_long_puts_short: dealers long calls, short puts. | |
| iv_change | No | What-if: absolute IV shift in vol points (e.g. -2). | |
| target_price | No | What-if: underlying price to reprice at. | |
| horizon_hours | No | What-if: hours to advance (0–2160). Contracts expiring in between drop out. | |
| price_change_pct | No | Extra custom spot move for the hedge ladder, percent (e.g. -3). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnlyHint annotation by disclosing that signed output depends on an explicit dealer-positioning scenario and that the numbers are modeled, not observed orders. It also explains what the what-if path actually does (reprices the same frozen contracts, drops expired contracts via horizon_hours), which is exactly the kind of caveat an agent needs before trusting the 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?
Purpose is front-loaded, but the body is one very dense run-on sentence cramming output enumeration, what-if mechanics, and disclaimers together. Much of the output listing duplicates what a reader would infer from parameter names, and the dense packing makes skimming harder than a short bulleted structure would.
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 output schema and 8 parameters, the description carries the return-value burden and does enumerate the output blocks (GEX, walls, flips, regime, funding/OI block), so an agent knows what comes back. Remaining gaps are minor: no indication of result size, timing, or freshness for a computation this heavy.
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 additionally clarifies parameter interactions not obvious from the schema, such as any what-if parameter implying hedging and horizon_hours dropping contracts that expire in the interval. It still leaves details like price_change_pct's relationship to the built-in ±0.5–5% ladder slightly ambiguous.
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?
States a specific resource and computation: crypto options gamma exposure (gross and dealer-signed GEX) by strike/expiry, plus walls, flip levels, and a rule-based options regime. This clearly separates it from siblings like options_chain (raw chain) or options_volatility, though it never names those siblings explicitly.
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?
Usage is implied through the what-if and hedging mechanics ('hedging=true adds theoretical dealer hedge ladders', 'target_price / horizon_hours / iv_change reprice the same frozen contracts'), but there is no statement of when to reach for this tool versus options_positioning, options_volatility, or flow_levels, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
options_positioningOptions PositioningARead-onlyInspect
Crypto options positioning (Deribit) for one underlying: total call/put open interest in coins and USD notional, put/call OI and volume ratios, largest strike concentrations, upcoming expirations with expiring notional and theoretical max pain, OI change over 24h/7d (from hourly snapshots), and recent trade flow (aggressor premium by calls/puts, block share, largest trades). Descriptive positioning — not a direction signal.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes | Underlying symbol, e.g. "BTC". | |
| expiries | No | Upcoming expirations to list, default 6, max 20. | |
| trades_hours | No | Trade-flow window in hours, default 4, max 24; 0 skips trades. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds genuine context beyond that: the data source (Deribit), the derivation method for OI change (hourly snapshots), and the interpretive limit (descriptive, not a direction signal). It does not cover latency, pagination, or whether an underlying with no listed options returns empty versus errors.
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 capability list is front-loaded and every clause names a distinct metric, so little is wasted. It is one very long run-on sentence, which makes it slightly harder to scan than a bulleted enumeration, but nothing is 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?
There is no output schema, and the description compensates by enumerating nearly every returned field, so an agent knows what to expect. The main residual gaps are source coverage (Deribit only — no mention of fallbacks) and the empty/error case, which matter for a read-only analytics call of this breadth.
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 currency, expiries, and trades_hours are already documented including defaults and maxes. The description only reinforces that the tool operates on one underlying and implies a recent trade-flow window; it adds no format or edge-case detail (e.g. case sensitivity of the symbol, behavior when trades_hours=0). 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?
States a specific resource (crypto options positioning for one underlying on Deribit) and enumerates the concrete outputs: OI in coins/USD, put/call ratios, strike concentrations, expirations, max pain, OI change, trade flow. This is clearly distinguishable from siblings like options_chain or options_gamma, which cover different slices of options data.
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 closing caveat "Descriptive positioning — not a direction signal" gives useful framing on intent, but no sibling is named and there is no explicit when-to-use/when-not-to-use guidance versus options_chain, options_gamma, derivatives_flow, or research_positioning. Usage is implied by the content list rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
options_probabilityOptions Expiry ProbabilitiesARead-onlyInspect
Risk-neutral probabilities implied by crypto options (Deribit) at one expiry: chance of settling above/below a price or inside a range, expected 68%/90% ranges, lognormal at that expiry's ATM IV and forward plus a smile-adjusted value within quoted strikes. Market-implied odds, not calibrated forecasts.
| Name | Required | Description | Default |
|---|---|---|---|
| price | No | Price to get P(above)/P(below) for. | |
| expiry | No | "next" (first expiry ≥ 1 day, default), "2026-12-25" or "25DEC26". | |
| currency | Yes | Underlying symbol, e.g. "BTC". | |
| range_low | No | Range lower bound. | |
| range_high | No | Range upper bound. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, so the safety profile is covered; the description adds real value by disclosing the derivation method (lognormal at that expiry's ATM IV and forward) and the important limitation that the smile-adjusted figure only applies within quoted strikes. It does not describe output shape or behavior when price/range params are omitted, which keeps it off a 5.
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, no filler, with the core identification front-loaded and the caveat placed last where it belongs. The first sentence is heavily compressed with jargon stacking (lognormal/ATM IV/forward/smile), which costs a little readability.
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 output schema, the description carries the burden of describing return values, and it does so adequately (above/below probabilities, range probability, 68%/90% bands, smile-adjusted value). It stops short of covering default behavior when price or range bounds are omitted, a realistic agent question for a 5-parameter 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 coverage is 100%, so a 3 is the baseline; the description earns an extra point by framing that all parameters apply to a single expiry and by clarifying that the model is anchored to that expiry's forward and ATM IV, which shapes how price and range inputs should be interpreted.
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 the exact quantity (risk-neutral probabilities from Deribit crypto options), the unit of analysis (one expiry), and the concrete outputs (P(above)/P(below), in-range probability, 68%/90% ranges, plus a smile-adjusted value). This is functionally distinct from the sibling vol/chain/gamma tools even without naming them.
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?
Usage is only implied via the closing caveat 'Market-implied odds, not calibrated forecasts', which usefully tells the agent what the numbers are not, but there is no explicit when-to-use rule or pointer to alternatives such as options_volatility or options_chain for other option-derived questions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
options_volatilityOptions VolatilityARead-onlyInspect
Crypto options implied volatility (Deribit): DVOL index with 1y percentile, ATM IV term structure (7/30/90d) and inversion, 25-delta risk reversal and butterfly per expiry, 30d IV vs realized volatility, spot–vol correlation, 24h/7d skew and term changes, and the implied 1σ move for 1/7/30 days — how fast a move options price, not its direction. Pass several underlyings ("BTC,ETH") to compare.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes | Underlying symbol or comma-separated list (max 4), e.g. "BTC" or "BTC,ETH". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The tool clarifies its fundamental nature: measuring 'how fast a move options price, not its direction.' It provides rich behavioral context by listing specific calculated timeframes and statistical measures like '1y percentile' and '25-delta risk reversal'.
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 technically overloaded, making it hard to read, but it prioritizes information density. Every clause provides a high-value piece of information regarding the tool's 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?
While the input scope is meticulously covered, the definition lacks any mention of the output structure or how the return data for different underlyings should be interpreted, which is a gap given the 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?
Since schema coverage is 100%, the schema handles the technical requirements (string input). The description adds semantic value by demonstrating how the input should be structured (comma-separated list) and used (for comparison).
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 is extremely clear and functions almost as a technical specification, detailing exactly what kind of implied volatility metrics are provided (e.g., DVOL index, IV term structure, skew). It specifically states the data source (Deribit).
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 explicitly suggests a primary use case for the input parameter: 'Pass several underlyings ("BTC,ETH") to compare.' While it doesn't explicitly list alternatives, it clearly defines the specific financial context of the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_opportunitiesOpportunity ScanRead-onlyInspect
Cross-sectional opportunity scan across every major and medium-cap coin at once — the screener the per-coin tools cannot be looped into safely. Two whole-universe feeds (the merged market snapshot + venue perp contexts) build a liquidity-filtered universe and rank it, then candles are fetched for a bounded shortlist only; ZERO per-symbol calls are made to the rate-limited derivatives provider, which is what lets this cover a universe without silently degrading. Up to eight signals per candidate: crowding (annualized funding vs the venue-standard anchor AND its percentile across the screened universe right now — a cross-sectional read, explicitly NOT the own-history percentile research_positioning reports; reported without a vote, because funding extremes have tended to continue rather than reverse), stress (24h long and short liquidations each as a share of open interest, both read on Bybit so the ratio is one book — longs flushed leans long, shorts flushed (a spent squeeze) leans short), leverage (open interest as a share of market cap — the gap-through-your-stop condition), compression (4h Bollinger bandwidth ranked against the coin's own trailing window — the per-coin form of the reading research_regime computes for BTC alone; says energy is loading, never direction), trend (ADX with the +DI/-DI separation on 4h, confirmed against 1d — votes +1 only for a strong 3:1 trend the slow timeframe agrees with), location (distance from the 4h EMA20 in ATR units — an extended coin scores DOWN, because a chase is not a setup), entry (whether the limit is still live) and reward (net-of-fees reward:risk and stop distance). Each signal reports its state, the numbers, and a +1/0/-1 setup-quality vote; the setup name and score come from a disclosed rule shipped with every scan, under which the reading that named the setup counts 0. Each candidate also says why it is worth a look now: its 24h price, OI (venue contracts) and volume against its own last 60 days, the plain-word labels those earn (longs building, short covering, crowded short, coiling, ...), and for each label what followed it in a 2-year backtest, verdict included (often 'no edge'). Priced setups carry their setup type's backtest track record (trades, win rate, average R after fees, against random entries). Each candidate says whether it is ACTIONABLE (a priced live entry, net reward:risk >= 1.5, score >= +1) and, when not, which gates it missed; actionable candidates rank first. Candidates carry ATR-and-structure trade plans priced so they feed research_trade_plan directly. A TRENDING PULLBACK is entered at market with its levels from the EMA20 pullback, taking half at +1R and moving the rest to breakeven (60% of 19,139 backtested trades won, about 0R on average, the same as random entries with those exits); an ABSORPTION SHORT (yesterday's Binance taker-buy share in the bottom 10% of the coin's own 60 days while the day closed flat or up) is a short at market, stop 2.5 ATR, target 2R, the one setup type that beat random entries in the backtest; a BREAKDOWN (24h drop in the bottom 5% of the coin's own 60 days) is a short at market; a COIL BREAKOUT (volatility squeezed, no trend) is a stop bracket around the 10-candle range. Stops sit behind the recent swing (a bracket's at the range midpoint), and targets at the structural level or 2R, whichever is nearer. Every priced plan carries its type's 2-year backtest record and a plain caveat; none of the three types passed a pre-registered edge test. No geometry is priced after a 24h move beyond ±30% or with a stop over 15% from entry, nor, for 7 days after BTC moves ±6% in 24h, for a TRENDING PULLBACK against that move (such plans lost in the backtest, in and out of sample; marketShock reports the active shock); the candidate says why. News is on the board but never scored: 'news.market' lists the last 24h's headlines after which BTC or ETH moved 1%+ (or a major coin 3%+) within the hour, and each candidate carries up to 3 headlines tagged with its coin (Tree of Alpha's feed, kept up to 48h by the server). Tokenized gold (XAUT, PAXG) is not screened, and one coin listed under two venue tickers (e.g. PUMP and PUMPFUN) is screened once. 'tier' filters major/medium/all; 'limit' caps the ranked list; 'symbols' narrows the universe to specific coins, and every symbol named there is accounted for individually in the response — selected, excluded by your own tier filter, below the liquidity floors (never screened, so no band was ever applied to it), below the tier floor, or not quoted at all — because mere absence from the ranked list conflates four different answers. Reports a board, not a forecast: the bands are disclosed constants chosen for plausibility with no backtest behind them, and 'NO CANDIDATES' is a real and frequent answer. Use it to pick what to look at, then research_positioning and ta_technicals on the two or three that stand out.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | Size tier to screen: 'major' (market cap >= $10B), 'medium' ($300M-$10B), or 'all' (default). | |
| limit | No | Ranked candidates to return. Default 10, max 25. | |
| symbols | No | Optional: narrow the universe to these coin symbols, e.g. ["SOL","AVAX"]. Omit to screen everything that clears the tier and liquidity floors. | |
| intervals | No | The timeframe pair to analyse, FINEST FIRST: [fast] or [fast, slow]. Default ["4h","1d"]. This is the most consequential argument: entry, stop, target, ATR and every AT STRUCTURE verdict are measured on the fast timeframe, so changing it produces a DIFFERENT trade rather than a refinement of the same one — on one live BTC read the 1h pair put the entry 0.2% above spot while the 1d pair put it 10.7% below, with stops of 0.77% and 3.31%. Lookbacks are counted in candles, so the swing windows scale too (30 candles is 5 days at 4h, 7 hours at 15m). The second interval only CONFIRMS the first and must be slower; pass one interval to skip confirmation, which halves the candle cost and makes the trend vote abstain. |
Output Schema
| Name | Required | Description |
|---|---|---|
| news | No | Headlines, shown and never scored: no setup, score or price reads them. Null when the news feed did not answer (no data, not no news). |
| rule | No | The exact rule that produced setup and score |
| caveats | No | What the scan cannot see, stated rather than implied |
| backdrop | No | The market's direction as research_regime reads it, shown and never scored: each candidate's backdrop field says whether its side is with or against it, but nothing is priced or ranked by it. Null when the regime read failed. |
| coverage | No | What the scan actually looked at — read this before treating an empty candidate list as a quiet market |
| candidates | No | |
| marketShock | No | The BTC shock whose guard is active, or null. After BTC's hourly close first sits 6% or more from its close 24h earlier, for 168h a TRENDING PULLBACK on notPricedSide (against the move) is not priced; those candidates say so in notPriced. In the backtest such plans lost (−0.05R a trade out of sample, −0.10R in sample, against about 0R otherwise). Loss avoidance, not an edge for the other side. |
| absorptionToday | No | How many selected coins fired the ABSORPTION SHORT reading on the last closed UTC day. Descriptive only: in the backtest the count did not separate results (days it fired widely +0.18R per trade, other days +0.16R), so a high count is not a better trade. Null when the reading was not taken (a fast interval other than 4h). |
| exchangeNotices | No | Scheduled and recent (within 7 days) exchange listings and delistings for the coins in this answer; see catalysts_exchange_listings. Shown, never scored. |
| requestedSymbols | No | One entry per symbol named in the 'symbols' argument, so a symbol missing from 'candidates' can be explained. Empty when no symbols were named. A status other than 'selected' means no band was applied to that coin, so its absence says nothing about its setup. |
research_positioningPositioning AnalysisRead-onlyInspect
Deterministic positioning read for one coin — the game-state companion to research_regime, answering 'who is crowded, who is paying, who is trapped, and where'. Up to nine axes, each tagged with the market-actor cohort it reads: crowding (annualized funding vs the venue-standard 0.01%/8h anchor, long/short skew, dollars/day the majority pays to hold, crowd-vs-top-trader divergence, and cross-venue funding dispersion), buildup (24h price vs open-interest direction and the funding trend — whether positions are being added into the move or closed out), liquidity (order-book spread and imbalance — makers backing off), basis (perp vs oracle premium — spot-perp froth or hedging pressure, informational), fragility (24h liquidations as a share of market-wide open interest; the axis degrades rather than substituting a single venue's OI, since the liquidation total is cross-exchange), predation (visible Hyperliquid whale positions within 2 daily sigmas of their liquidation price, with defending book depth), trap (share of tracked whale notional underwater on the funding-paying side — attrition fuel), house book (Hyperliquid HLP LP-vault inventory, summed across its child sub-vaults — the literal venue counterparty, so the inventory it carries mirrors how traders are crowded; measured as net over its own gross book, since a market maker's net is a rounding error against venue open interest; informational), and disagreement (the most liquid matching prediction market, volume-gated, informational). Each axis reports its state, the numbers, and a +1/0/-1 fragility vote (+1 clean, -1 crowded/fragile); the stance is the disclosed sum-of-votes rule. Also returns a one-line 'farmed' synthesis (which cohort the board is currently farming, or an explicit statement that none is), focal points — reachable liquidation and breakeven price levels the whole market can see — and 'would change the call' thresholds a polling agent can watch statelessly. Reports the board, not a direction: crowding says who is paying, not where price goes. Deterministic — same inputs, same read. Call research_regime first for market context, then this per coin before sizing or timing decisions.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Coin symbol, e.g. "BTC" or "ETH". |
Output Schema
| Name | Required | Description |
|---|---|---|
| axes | No | |
| farmed | No | One-line synthesis of which cohort the board is currently farming. Always populated: when no cohort clears the trap/crowding/predation bars it says so explicitly and names who is paying the carry. |
| stance | No | Overall positioning-fragility label |
| symbol | No | |
| options | No | Informational option-holder cohort read from Deribit (OI notional, put/call OI, 25-delta skew, next expiry and theoretical max pain) and the modeled gamma state (under gamma). Never votes; present when the coin has listed options. |
| axesTotal | No | |
| stanceRule | No | The exact rule that produced stance |
| thresholds | No | The wouldChange lines in machine-readable form for stateless alerting |
| focalPoints | No | Price levels that are common knowledge on the board, nearest to spot first |
| skippedAxes | No | Axes attempted but not computed; the stance is over the computed ones only |
| wouldChange | No | Thresholds that would flip an axis, as prose |
| axesComputed | No | |
| exchangeNotices | No | Scheduled and recent (within 7 days) exchange listings and delistings for the coins in this answer; see catalysts_exchange_listings. Shown, never scored. |
research_regimeMarket RegimeARead-onlyInspect
Deterministic market-regime classification across seven axes: trend (Mayer Multiple bands vs the 200-day SMA), volatility (30d realized, percentile vs own history), cycle (a ~30-indicator top checklist incl. MVRV Z-Score, NUPL, Pi Cycle, AHR999), sentiment (Fear & Greed level, trajectory and percentile), leverage stress (derivatives-risk-index percentile), liquidity (7d spot-ETF net flows vs prior 7d), and rotation (Altcoin Season index, BTC dominance, ETH/BTC 30d). Each axis reports its state, the numbers behind it, and a +1/0/-1 vote; the overall posture is the disclosed sum-of-votes rule, with one exception — while 30d realized volatility sits at or below its 5th percentile the tape is compressed, trend structure stops being tradeable, and the Trend axis's vote is withheld (its reading is still reported). Compression is flagged structurally, and adds an informational, never-voting asymmetry lean naming which side is more exposed. Includes explicit 'would change the call' thresholds to watch. Rule-based and deterministic — same inputs, same read. Useful as a first call: most other signals (funding, sentiment, flows) read differently depending on this regime.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| axes | No | |
| options | No | Informational BTC/ETH implied-vol context from Deribit options (DVOL, ATM IV term structure, IV vs realized, 25-delta skew) and the modeled options regime (under gamma). Never votes. |
| posture | No | Overall risk-posture label |
| asymmetry | No | Which side is more exposed while compressed; a lean with a stated confidence, never a vote. Absent unless the tape is compressed and at least two of its inputs are meaningful |
| axesTotal | No | |
| compressed | No | 30d realized vol at or below its 5th percentile — while true the Trend axis contributes 0 to the posture whatever its state |
| postureRule | No | The exact rule that produced posture |
| wouldChange | No | Thresholds that would flip an axis |
| axesComputed | No | |
| volatilityPercentile | No | 30d realized-vol percentile vs own history; absent when no candle history was available, which is not the same as not compressed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses the core aggregation rule (sum of votes), a specific exception (Trend vote withheld when 30d realized vol is at/below its 5th percentile), that compression is flagged structurally, that the asymmetry lean is informational and never votes, and that thresholds for changing the call are included. That is unusually rich behavioral disclosure for a read-only tool and directly informs how the agent should interpret 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 purpose is front-loaded in the first clause, and the dense enumeration that follows is information-bearing rather than filler. It is a long single paragraph, though, and the seven-axis catalog could be tightened; a bulleted structure would aid scanning, so it falls short of a 5.
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, return values needn't be explained, and there are no parameters to document. What remains — what the tool computes, how votes combine, the volatility-compression exception, and the deterministic guarantee — is fully covered, leaving no gap an agent would need to guess at.
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 takes zero parameters, so there is nothing for the description to disambiguate — baseline 4 applies. No parameter-related content is missing or misleading.
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 verb and resource — 'deterministic market-regime classification' — and then enumerates the seven axes it covers, including the exact indicators used per axis. This is clearly distinct from siblings like research_opportunities, research_trade_plan, or market_overview, so an agent can select it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage context: 'Useful as a first call: most other signals (funding, sentiment, flows) read differently depending on this regime,' which tells the agent where this sits in a call sequence. It stops short of naming specific alternatives or stating when NOT to use it, keeping it at a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_token_viewToken Deep DiveRead-onlyInspect
Aggregated single-coin dossier: market data (spot/perp price, funding, market-wide OI, long/short, liquidations — the same enriched line as market_quotes), global market context (dominance, Fear & Greed), multi-timeframe technicals computed in-house from candles (4h + 1d: RSI, EMA/SMA, MACD, ATR, Bollinger, ADX, trend — the same numbers as ta_technicals), on-chain TVL/fees (when the symbol is a tracked chain), news, a grounded narrative synthesis with citations, upcoming catalyst events, social sentiment, ETF flows, prediction-market odds, live provider coverage, and a per-section status list that distinguishes an empty section from a failed feed — for one symbol (e.g. 'ETH').
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Coin symbol, e.g. 'ETH' or 'BTC' |
Output Schema
| Name | Required | Description |
|---|---|---|
| news | No | |
| market | No | Same shape as one market_quotes item; omitted when no provider covers the symbol |
| social | No | |
| symbol | Yes | |
| etfFlow | No | |
| onChain | No | |
| sections | No | Per-section outcome, so an empty section can be told apart from a failed feed. Check this before reading an empty array as a real absence. |
| catalysts | No | |
| narrative | No | |
| technicals | No | In-house per-timeframe snapshots; same item shape as ta_technicals's timeframes. Empty when no timeframe could be analyzed. |
| marketContext | No | Same shape as market_overview |
| exchangeNotices | No | Scheduled and recent (within 7 days) exchange listings and delistings for the coins in this answer; see catalysts_exchange_listings. Shown, never scored. |
| providerCoverage | No | |
| predictionMarkets | No |
research_trade_planTrade Plan Check & ReplayARead-onlyInspect
Check, review or replay a perp trade setup (entry, stop, optional target), before it is placed or after: the tool for 'check this setup', 'is this trade good' and 'how did my trade do'. Renders an interactive trade ticket. Give the coin, entry and stop; optionally target, leverage, order type, placed_at, and account size with risk percent. Returns reward:risk, the stop's distance in % and 4h ATR, the isolated liquidation price at the leverage (first-tier 0.5% maintenance margin, so the optimistic case), funding per day at the current rate (in % of notional, and in USD when sized), the perp levels around the setup (from flow_levels: volume nodes, value area, liquidation clusters, entries, walls), and named checks: liquidation before the stop, price already through the stop, a stop inside one ATR of noise, a stop just in front of a level a wick would reach for, a level between entry and target, reward:risk under 2:1, costs that pull a 2:1 plan under it, leverage over 10x, and an entry far from live. Costs: fees per fill (a venue's base tier, Binance by default; override with venue, fee_bps, maker_fee_bps), funding carry over hold_hours at the current rate with the rate's 1y percentile, and, when sized, the slippage of a market exit of the whole size at the stop against today's visible book; they give a net reward:risk, the break-even win rate, and the stop, target and liquidation outcomes in R (and USD and % of account when sized). Everything reads in R and % without an account; give account_size and risk_percent (both or neither) to add the fixed-fractional size, notional and margin. Pass placed_at (when the order was placed) to replay the setup since then from public candles, filling the entry by order_type: a limit fills when price comes to it (or at once if it was already marketable, e.g. a buy limit above the market), a stop entry when price comes through it, a market order at placement; R is measured from the actual fill. Statuses: PENDING, MISSED (target traded before the entry), OPEN with the result and best/worst so far in R, STOPPED, TARGET, or AMBIGUOUS when one candle reached both; plus funding paid while open. Nothing about the plan is stored: the numbers come in, the replay goes out, and planLine is the one-line copy to bring the plan back later. Use it after research_opportunities or flow_levels has suggested a setup; it is a check of the setup, not a signal.
| Name | Required | Description | Default |
|---|---|---|---|
| stop | Yes | Stop-loss price (below entry = long, above = short) | |
| entry | Yes | Planned entry price | |
| venue | No | Optional venue whose base-tier fees to apply. Default binance (5 bps taker, 2 bps maker). | |
| symbol | Yes | Coin symbol, e.g. "ETH". | |
| target | No | Optional take-profit price | |
| fee_bps | No | Optional taker fee per fill in bps of notional (e.g. 4.5), when the user states their own fee tier. Overrides the venue's. | |
| leverage | No | Optional leverage the position is opened at, 1–200, for the liquidation price. Default when sized: the smallest whole leverage that carries the notional; unsized: no liquidation price unless given. | |
| placed_at | No | When the order was placed, as ISO 8601 (e.g. 2026-10-14T12:00:00Z) or unix time, up to 90 days back. Pass it whenever the user says when the trade was placed or opened ('placed 2026-10-12T12:00Z', 'opened yesterday at 14:00'): with it the tool replays the trade and reports filled / stopped / target / open; without it the plan is checked as if not yet placed. | |
| hold_hours | No | Optional expected holding time in hours, e.g. 72 for three days: prices the funding carry over the hold into the net reward:risk. | |
| order_type | No | How the entry was placed, for the replay. limit (default): fills when price comes to the entry, or at once if the entry was already on the far side of the market. stop: a breakout trigger that fills when price comes through the entry. market: filled at placement. Omit it when the user hasn't said: if the entry was through the market at placement, one call returns both readings (lifecycle as a limit, alternativeLifecycle as a stop); ask the user which applies rather than calling again. Also sets the entry fee: a resting limit pays maker, anything else taker. | |
| account_size | No | Optional account equity in USD, with risk_percent: adds the position size, notional and margin. Leave both out when the user didn't give them. | |
| risk_percent | No | Optional percent of the account lost if the stop is hit, e.g. 1; only with account_size | |
| maker_fee_bps | No | Optional maker fee per fill in bps (negative for a rebate). Overrides the venue's. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite only carrying readOnlyHint=true, the description goes well beyond annotations by disclosing extensive behavior: output metrics, named checks, cost modeling, replay statuses, and that nothing is stored. This is exactly the kind of behavioral context an agent needs for a complex read/analysis tool.
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 front-loaded with purpose and justified by the tool's complexity, 13 parameters, and lack of an output schema. It is dense with semicolon-chained details, so it is not maximally clean, but most content 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?
For a complex tool with no output schema, the description explains the return values, named checks, cost breakdown, replay statuses, and storage behavior. An agent has enough context to invoke and interpret 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 coverage is already 100%, so the schema does most parameter documentation. The description still adds operational meaning, such as account_size and risk_percent being both-or-neither, how placed_at toggles replay, and how order_type affects fills and fee treatment.
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: check, review or replay a perp trade setup before or after placement. It distinguishes itself from sibling tools explicitly by naming research_opportunities and flow_levels and stating it is a check, not a signal.
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 when-to-use guidance: after research_opportunities or flow_levels suggests a setup, and before or after placement. It also clarifies it is not a signal, which directly separates it from signal-producing siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sentiment_fear_greedFear & Greed IndexARead-onlyInspect
Current market-wide Fear & Greed index (0-100 plus label), updated roughly every 15 minutes. A macro sentiment gauge; use market_overview for the full market snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds useful behavioral context: the index updates roughly every 15 minutes and returns a value plus label. It also clarifies the market-wide scope. This goes beyond the annotation without contradicting it.
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 short sentences pack the essential information: what the tool returns, how fresh it is, and which sibling to use for a broader view. There is no filler or redundant repetition of the tool name or title.
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, parameterless, read-only tool, the description fully covers what an agent needs: the metric, its range, update frequency, scope, and a pointer to an alternative. No output schema exists, but the return shape is adequately described as an index value plus label.
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 for this dimension is 4. There is no parameter detail to add, and the description's mention of the 0-100 range plus label is sufficient for a parameterless call.
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 as a market-wide Fear & Greed index with a 0-100 range and label, and positions it as a macro sentiment gauge. It distinguishes itself from market_overview by naming that sibling as the full-market alternative. A specific verb is missing, but the intent is unmistakable.
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 that this is a macro sentiment gauge and explicitly directs the agent to market_overview when a full market snapshot is needed. It does not mention sentiment_social or sentiment_twitter, but the alternative guidance is clear enough for most selection decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sentiment_socialSocial SentimentARead-onlyInspect
Social-sentiment snapshot for one coin: galaxy score (0-100 composite), alt rank (lower is stronger), bullish sentiment %, 24h social volume, social dominance %, and 24h interactions.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Coin symbol, e.g. "BTC". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals safe read-only behavior, and the term 'snapshot' aligns with it. The description adds metric-level detail but no additional behavioral context such as rate limits, data freshness, or source scope.
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?
Single sentence, front-loaded with the core purpose and then a compact metric list; no filler or repeated 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 single-parameter read-only snapshot, the description lists all returned metrics with relevant units and scales (0-100, %, lower-is-stronger), so an agent can call it and interpret the result without an 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?
Schema covers the only parameter 100% with a clear example ('Coin symbol, e.g. BTC'), so the baseline applies. The description adds no further parameter semantics beyond implying the coin symbol is the required lookup key.
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?
Clearly identifies a social-sentiment snapshot for a single coin and enumerates the specific metrics returned (galaxy score, alt rank, bullish sentiment, volume, dominance, interactions). It does not explicitly contrast with sentiment_twitter or sentiment_fear_greed, but the 'one coin' scope and metric list distinguish it from broader sentiment 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?
No when-to-use guidance is given. The description never states when to prefer this over sentiment_twitter, sentiment_fear_greed, or other sibling tools, and it offers no exclusion criteria; only the implicit 'for one coin' scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sentiment_twitterTwitter SentimentARead-onlyInspect
Searches public X Posts from the last 7 days using X search syntax (keywords, phrases, hashtags, cashtags, or operators such as from:handle). Returns engagement, views and direct links; sorted by relevance unless latest=true. Results are capped at 10 Posts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max Posts to return (1-10). Defaults to 5. | |
| query | Yes | X recent-search query (keywords, phrases, hashtags, cashtags, or operators), e.g. "$BTC", "bitcoin ETF", or "from:handle BTC". Self-serve query limit: 512 characters. | |
| latest | No | Return the newest Posts instead of top relevance. Defaults to false. | |
| minLikes | No | Only Posts with at least this many likes. Defaults to 0. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tweets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true already covering the safety profile, the description adds real behavioral context: a hard 7-day recency window, a 10-Post cap, and the default relevance sort order. It does not mention rate limits or auth requirements, but the operational constraints it does give are the ones an agent needs.
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, front-loaded with what the tool searches and immediately followed by the return contents and sorting constraint. Every clause carries information; no filler or restatement of the name.
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?
An output schema exists, so the brief mention of engagement/views/links is a bonus rather than a requirement. Recency window, cap, and sort default are all covered, leaving only auth/rate-limit specifics unaddressed for a low-complexity read 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 all four parameters are already documented in the schema. The description reinforces latest=true, the 10-Post cap, and the query syntax but adds no format or syntax detail beyond what the schema fields state, matching the baseline 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?
Names a specific verb and resource ('Searches public X Posts') plus the scope ('last 7 days'), and lists the supported query syntax. The X/Twitter resource implicitly separates it from sentiment_social and sentiment_fear_greed, but no sibling is named explicitly, so it stops short of a 5.
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?
Usage is implied by the syntax and window description, and one behavioral alternative is noted (latest=true switches to newest instead of top relevance). There is no statement of when to prefer this over the sibling sentiment tools (sentiment_social, sentiment_fear_greed), so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ta_technicalsTechnical AnalysisARead-onlyInspect
Multi-timeframe technical-analysis snapshot for one coin, computed locally from real candles (not a vendor black box): per interval — last close, RSI(14), EMA20/50/200 + SMA200, MACD(12,26,9) with signal/histogram/cross freshness, ATR(14) with 2xATR stop suggestions (feed research_trade_plan), Bollinger(20,2) with %B and bandwidth, ADX(14) with +DI/-DI, volume vs 20-candle average, and a transparent trend rule (EMA alignment qualified by ADX). 'intervals' picks the timeframes (default 1h,4h,1d; max 4 of 1m|5m|15m|30m|1h|4h|12h|1d|1w); 'market' routes candles (spot|perp|auto, default auto: spot preferred; perp when spot fails or a recent spot listing has too little history for the indicators). Support/resistance comes from the same candles: daily swing highs/lows over the last year, clustered within half a daily ATR, nearest 3 on each side with distance, swing count and last touch, plus the year's range. For levels from executed perp flow (volume at price, liquidations, OI), use flow_levels.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Which candle series: 'spot', 'perp', or 'auto' (default: spot preferred; perp when spot fails or its history is too short) | |
| symbol | Yes | Coin symbol, e.g. 'ETH' or 'BTC' | |
| intervals | No | Candle intervals to analyze, e.g. ["4h","1d"]. Default ["1h","4h","1d"]; max 4 of 1m|5m|15m|30m|1h|4h|12h|1d|1w |
Output Schema
| Name | Required | Description |
|---|---|---|
| levels | No | Daily swing support/resistance; omitted when unavailable (see levelsUnavailable) |
| symbol | Yes | |
| timeframes | Yes | |
| lastPriceUsd | Yes | Newest close of the finest analyzed timeframe |
| failedIntervals | No | Intervals that could not be analyzed, with reasons |
| levelsUnavailable | No | Why levels are missing, when they are |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only supply readOnlyHint=true, so the description carries the burden and does so richly: local computation provenance, the transparent EMA-alignment-qualified-by-ADX trend rule, routing/fallback behavior for the candle series, the max-4-interval constraint, and the daily-ATR clustering logic for support/resistance. This is substantial behavioral context well beyond what the single annotation provides.
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?
Front-loads the core purpose and indicator inventory before the routing and S/R details, so an agent gets the gist immediately. It is dense and long, but nearly every clause conveys distinct capability information rather than filler, so the density is justified.
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, the description need not explain return values, and combined with the schema and annotations it covers provenance, routing, constraints, and indicator coverage completely. Nothing an agent needs to call it 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 symbol, intervals (with the default and enum list), and market (with the spot-preferred/perp-fallback semantics), establishing the baseline of 3. The description largely restates these, adding only the 'max 4' emphasis and the rationale for the fallback rather than new syntax or format detail.
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?
States a specific verb+resource ('multi-timeframe technical-analysis snapshot for one coin'), enumerates exactly which indicators are computed (RSI, EMA/SMA, MACD, ATR, Bollinger, ADX, volume, trend rule), and explicitly distinguishes itself as computed locally from real candles rather than a vendor black box. An agent can separate it from flow_levels, market_candles, and research_trade_plan without opening a schema.
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?
Explicitly routes the agent: 'For levels from executed perp flow... use flow_levels' and notes ATR stop suggestions feed research_trade_plan. It also explains the market=auto fallback logic so the agent knows when spot vs perp applies. It does not enumerate when NOT to use it against the many other market_* siblings, but the named alternative covers the main ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
utc_timeCurrent UTC TimeARead-onlyInspect
Returns the current UTC time in ISO 8601 format. Use it to anchor 'now' — e.g. to judge how stale a generatedAt timestamp or news date is.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers safety, and the description adds the key behavioral detail: the output is the current UTC time in ISO 8601 format. For a stateless time-returning utility, nothing more is needed.
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 with no filler. The primary behavior comes first, and the use-case motivation follows in one compact example.
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, read-only tool with no output schema, this description is complete: it states what is returned, the format, and a concrete use case. Nothing an agent needs to invoke it 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?
There are zero parameters, so the schema carries no semantic burden. The description still adds value by specifying the output format (ISO 8601), which is the only relevant interface detail.
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?
States a specific verb ('Returns') and resource ('current UTC time') with an explicit format (ISO 8601). Its purpose is immediately distinguishable from the sibling data tools, which all return market or news data rather than a time anchor.
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 a clear context of when to use it: anchoring 'now' and judging staleness of timestamps. There are no competing sibling time tools, so not naming alternatives is acceptable; only explicit exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- Added
catalysts_exchange_listings - Changed
research_opportunities1 field changed- added
Output schema / properties / exchangeNoticesAdded value: +{ + "description": "Scheduled and recent (within 7 days) exchange listings and delistings for the coins in this answer; see catalysts_exchange_listings. Shown, never scored.", + "type": "array" +}
- Changed
research_positioning1 field changed- added
Output schema / properties / exchangeNoticesAdded value: +{ + "description": "Scheduled and recent (within 7 days) exchange listings and delistings for the coins in this answer; see catalysts_exchange_listings. Shown, never scored.", + "type": "array" +}
- Changed
research_token_view1 field changed- added
Output schema / properties / exchangeNoticesAdded value: +{ + "description": "Scheduled and recent (within 7 days) exchange listings and delistings for the coins in this answer; see catalysts_exchange_listings. Shown, never scored.", + "type": "array" +}
1 tool update
- Removed
providers_health
1 tool update
- Changed
research_opportunities5 fields changed- added
Output schema / properties / backdropAdded value: +{ + "description": "The market's direction as research_regime reads it, shown and never scored: each candidate's backdrop field says whether its side is with or against it, but nothing is priced or ranked by it. Null when the regime read failed.", + "properties": { + "axes": { + "description": "The regime axes: Trend, Volatility, Cycle, Sentiment (Fear & Greed), Leverage, Liquidity (ETF flows), Rotation", + "items": { + "properties": { + "detail": { + "type": "string" + }, + "name": { + "type": "string" + }, + "state": { + "type": "string" + }, + "vote": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "bearishNews": { + "description": "... followed by a fall", + "type": "integer" + }, + "bullishNews": { + "description": "Market headlines of the last 24h followed by a rise within the hour", + "type": "integer" + }, + "direction": { + "description": "bull | bear | empty for NEUTRAL", + "type": "string" + }, + "posture": { + "description": "RISK-ON | CAUTIOUS RISK-ON | NEUTRAL | DEFENSIVE | RISK-OFF, with its vote score", + "type": "string" + } + }, + "type": [ + "object", + "null" + ] +} - added
Output schema / properties / candidates / items / properties / backdropAdded value: +{ + "description": "with | against | empty: whether this candidate's side agrees with the market backdrop's direction. Shown, never scored.", + "type": "string" +} - added
Output schema / properties / candidates / items / properties / headlinesAdded value: +{ + "description": "Up to 3 headlines of the last 24h the feed tagged with this coin, newest first. Shown, never scored.", + "items": { + "properties": { + "atMs": { + "type": "integer" + }, + "coins": { + "description": "The feed's own coin tags, a word match that can be wrong", + "items": { + "type": "string" + }, + "type": "array" + }, + "impact": { + "description": "The move the feed measured on a tagged coin within the hour after the headline: what followed it, not proof it caused it", + "properties": { + "coin": { + "type": "string" + }, + "down": { + "type": "number" + }, + "pct": { + "description": "Net move over the window, percent", + "type": "number" + }, + "up": { + "type": "number" + }, + "windowMs": { + "type": "integer" + } + }, + "type": [ + "object", + "null" + ] + }, + "kind": { + "description": "article | tweet | exchange", + "type": "string" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / marketShockAdded value: +{ + "description": "The BTC shock whose guard is active, or null. After BTC's hourly close first sits 6% or more from its close 24h earlier, for 168h a TRENDING PULLBACK on notPricedSide (against the move) is not priced; those candidates say so in notPriced. In the backtest such plans lost (−0.05R a trade out of sample, −0.10R in sample, against about 0R otherwise). Loss avoidance, not an edge for the other side.", + "properties": { + "atMs": { + "description": "When the guard started (the hour after the crossing close)", + "type": "integer" + }, + "changePct": { + "description": "BTC's 24h change at the hour that crossed", + "type": "number" + }, + "direction": { + "description": "up | down", + "type": "string" + }, + "notPricedSide": { + "description": "long | short: the TRENDING PULLBACK side not priced", + "type": "string" + }, + "untilMs": { + "description": "When the guard lapses", + "type": "integer" + } + }, + "type": [ + "object", + "null" + ] +} - added
Output schema / properties / newsAdded value: +{ + "description": "Headlines, shown and never scored: no setup, score or price reads them. Null when the news feed did not answer (no data, not no news).", + "properties": { + "market": { + "description": "Headlines of the last 24h after which, within the hour, BTC or ETH moved 1%+ or a major-tier coin 3%+ (a Binance hack tags BNB, not BTC), newest first", + "items": { + "properties": { + "atMs": { + "type": "integer" + }, + "coins": { + "description": "The feed's own coin tags, a word match that can be wrong", + "items": { + "type": "string" + }, + "type": "array" + }, + "impact": { + "description": "The move the feed measured on a tagged coin within the hour after the headline: what followed it, not proof it caused it", + "properties": { + "coin": { + "type": "string" + }, + "down": { + "type": "number" + }, + "pct": { + "description": "Net move over the window, percent", + "type": "number" + }, + "up": { + "type": "number" + }, + "windowMs": { + "type": "integer" + } + }, + "type": [ + "object", + "null" + ] + }, + "kind": { + "description": "article | tweet | exchange", + "type": "string" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "sinceMs": { + "description": "The oldest headline the server's news memory holds (the feed keeps about 6 hours; the server up to 48, from its last deploy)", + "type": "integer" + } + }, + "type": [ + "object", + "null" + ] +}
1 tool update
- Changed
research_opportunities1 field changed- changed
Output schema / properties / absorptionToday / descriptionPrevious value: -"How many selected coins fired the ABSORPTION SHORT reading on the last closed UTC day. Descriptive only: the setup's backtested result came mostly from days it fired on many coins at once. Null when the reading was not taken (a fast interval other than 4h)."New value: +"How many selected coins fired the ABSORPTION SHORT reading on the last closed UTC day. Descriptive only: in the backtest the count did not separate results (days it fired widely +0.18R per trade, other days +0.16R), so a high count is not a better trade. Null when the reading was not taken (a fast interval other than 4h)."
7 tool updates
- Added
options_chain - Added
options_gamma - Added
options_positioning - Added
options_probability - Added
options_volatility - Changed
research_positioning1 field changed- added
Output schema / properties / optionsAdded value: +{ + "description": "Informational option-holder cohort read from Deribit (OI notional, put/call OI, 25-delta skew, next expiry and theoretical max pain) and the modeled gamma state (under gamma). Never votes; present when the coin has listed options.", + "type": "object" +}
- Changed
research_regime1 field changed- added
Output schema / properties / optionsAdded value: +{ + "description": "Informational BTC/ETH implied-vol context from Deribit options (DVOL, ATM IV term structure, IV vs realized, 25-delta skew) and the modeled options regime (under gamma). Never votes.", + "type": "object" +}
1 tool update
- Changed
research_opportunities2 fields changed- added
Output schema / properties / absorptionTodayAdded value: +{ + "description": "How many selected coins fired the ABSORPTION SHORT reading on the last closed UTC day. Descriptive only: the setup's backtested result came mostly from days it fired on many coins at once. Null when the reading was not taken (a fast interval other than 4h).", + "properties": { + "count": { + "type": "integer" + }, + "fired": { + "items": { + "type": "string" + }, + "type": "array" + }, + "read": { + "description": "Coins whose taker flow answered and could be ranked", + "type": "integer" + } + }, + "type": [ + "object", + "null" + ] +} - added
Output schema / properties / candidates / items / properties / evidenceAdded value: +{ + "description": "passed | failed | none: whether this setup type passed its pre-registered backtest (beat random entries in both years after fees and funding). Only ABSORPTION SHORT passed; read a 'failed' plan as a described setup, not an edge. none = EXTENDED or NO SETUP, which carry no plan.", + "type": "string" +}
1 tool update
- Changed
research_opportunities1 field changed- changed
Output schema / properties / candidates / items / properties / setup / descriptionPrevious value: -"TRENDING PULLBACK (resting limit) | BREAKDOWN (short at market) | COIL BREAKOUT (stop bracket) | EXTENDED | NO SETUP. EXTENDED is reported so it is NOT taken as an entry."New value: +"ABSORPTION SHORT (short at market) | TRENDING PULLBACK (at market, half at +1R) | BREAKDOWN (short at market) | COIL BREAKOUT (stop bracket) | EXTENDED | NO SETUP. EXTENDED is reported so it is NOT taken as an entry."
1 tool update
- Changed
research_opportunities1 field changed- added
Output schema / properties / candidates / items / properties / geometry / properties / managementAdded value: +{ + "description": "Post-fill management the plan was backtested with: take partialFraction at partialAtR from the fill, then move the stop on the rest to breakeven", + "properties": { + "breakevenAfterPartial": { + "type": "boolean" + }, + "partialAtR": { + "type": "number" + }, + "partialFraction": { + "type": "number" + } + }, + "type": [ + "object", + "null" + ] +}
1 tool update
- Changed
research_opportunities7 fields changed- changed
Output schema / properties / candidates / items / properties / geometry / descriptionPrevious value: -"ATR-and-structure prices, ready for research_trade_plan. Absent for a setup with no priceable side (COILED) and for EXTENDED, where refusing to price a chase is the point."New value: +"ATR-and-structure prices, ready for research_trade_plan. Absent for EXTENDED and NO SETUP, and whenever a plan was refused a price (see notPriced)." - added
Output schema / properties / candidates / items / properties / geometry / properties / bracketAdded value: +{ + "description": "Both legs of a stop bracket: the first to trade fills and cancels the other", + "properties": { + "longEntryUsd": { + "type": "number" + }, + "longStopUsd": { + "type": "number" + }, + "longTargetUsd": { + "type": "number" + }, + "shortEntryUsd": { + "type": "number" + }, + "shortStopUsd": { + "type": "number" + }, + "shortTargetUsd": { + "type": "number" + } + }, + "type": [ + "object", + "null" + ] +} - changed
Output schema / properties / candidates / items / properties / geometry / properties / entryUsd / descriptionPrevious value: -"Resting limit at the 4h EMA20 — never the current price"New value: +"Where the entry is placed, per orderType: the 4h EMA20 for a limit, the live price for market, the buy-stop for a stop bracket (see bracket for both legs)" - added
Output schema / properties / candidates / items / properties / geometry / properties / orderTypeAdded value: +{ + "description": "limit | market | stop bracket", + "type": "string" +} - changed
Output schema / properties / candidates / items / properties / lean / descriptionPrevious value: -"long, short, or empty. A lean, never a call; COILED deliberately carries none."New value: +"long, short, or empty. A lean, never a call; a COIL BREAKOUT carries none until a leg of its bracket fills." - changed
Output schema / properties / candidates / items / properties / setup / descriptionPrevious value: -"TRENDING PULLBACK | COILED | SQUEEZE FUEL | EXTENDED | NO SETUP. EXTENDED is reported so it is NOT taken as an entry."New value: +"TRENDING PULLBACK (resting limit) | BREAKDOWN (short at market) | COIL BREAKOUT (stop bracket) | EXTENDED | NO SETUP. EXTENDED is reported so it is NOT taken as an entry." - changed
Output schema / properties / requestedSymbols / items / properties / status / descriptionPrevious value: -"selected | tier_excluded | below_liquidity_floors | below_tier_floor | not_quoted"New value: +"selected | tier_excluded | below_liquidity_floors | below_tier_floor | not_quoted | excluded | alias"
2 tool updates
- Changed
research_opportunities2 fields changed- added
Output schema / properties / candidates / items / properties / geometry / properties / breakEvenWinRatePctAdded value: +{ + "description": "Win rate at which the setup breaks even net of those fees, in percent; null when a win doesn't cover its fees", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / candidates / items / properties / geometry / properties / netRewardRiskAdded value: +{ + "description": "Reward:risk net of base-tier fees (Binance: maker entry and target, taker stop). What the geometry pays; research_trade_plan adds carry and slippage.", + "type": "number" +}
- Changed
research_trade_plan5 fields changed- added
Input schema / properties / fee_bpsAdded value: +{ + "description": "Optional taker fee per fill in bps of notional (e.g. 4.5), when the user states their own fee tier. Overrides the venue's.", + "type": "number" +} - added
Input schema / properties / hold_hoursAdded value: +{ + "description": "Optional expected holding time in hours, e.g. 72 for three days: prices the funding carry over the hold into the net reward:risk.", + "type": "number" +} - added
Input schema / properties / maker_fee_bpsAdded value: +{ + "description": "Optional maker fee per fill in bps (negative for a rebate). Overrides the venue's.", + "type": "number" +} - changed
Input schema / properties / order_type / descriptionPrevious value: -"How the entry was placed, for the replay. limit (default): fills when price comes to the entry, or at once if the entry was already on the far side of the market. stop: a breakout trigger that fills when price comes through the entry. market: filled at placement. Omit it when the user hasn't said: if the entry was through the market at placement, one call returns both readings (lifecycle as a limit, alternativeLifecycle as a stop); ask the user which applies rather than calling again."New value: +"How the entry was placed, for the replay. limit (default): fills when price comes to the entry, or at once if the entry was already on the far side of the market. stop: a breakout trigger that fills when price comes through the entry. market: filled at placement. Omit it when the user hasn't said: if the entry was through the market at placement, one call returns both readings (lifecycle as a limit, alternativeLifecycle as a stop); ask the user which applies rather than calling again. Also sets the entry fee: a resting limit pays maker, anything else taker." - added
Input schema / properties / venueAdded value: +{ + "description": "Optional venue whose base-tier fees to apply. Default binance (5 bps taker, 2 bps maker).", + "enum": [ + "binance", + "bybit", + "okx", + "hyperliquid", + "bingx", + "bitget" + ], + "type": "string" +}
2 tool updates
- Changed
derivatives_liquidations1 field changed- added
Output schema / properties / baseline1yAdded value: +{ + "description": "The trailing ~24h (newest six 4h buckets) ranked against a year of CoinGlass daily totals over the same venues", + "properties": { + "available": { + "type": "boolean" + }, + "days": { + "description": "Settled days ranked against", + "type": [ + "integer", + "null" + ] + }, + "largestLongDays": { + "items": { + "properties": { + "timeMs": { + "type": "integer" + }, + "usd": { + "type": "number" + } + }, + "type": "object" + }, + "type": "array" + }, + "largestShortDays": { + "items": { + "properties": { + "timeMs": { + "type": "integer" + }, + "usd": { + "type": "number" + } + }, + "type": "object" + }, + "type": "array" + }, + "longs": { + "properties": { + "largestSinceMs": { + "description": "Newest day at or above this total, set only from the 75th percentile up; null there means above every day of the year", + "type": [ + "integer", + "null" + ] + }, + "medianDayUsd": { + "type": "number" + }, + "percentile": { + "description": "Rank among the year's settled daily totals, 0-100", + "type": "number" + }, + "usd": { + "description": "Trailing-window total", + "type": "number" + } + }, + "type": [ + "object", + "null" + ] + }, + "note": { + "description": "Why the baseline is missing", + "type": [ + "string", + "null" + ] + }, + "shorts": { + "properties": { + "largestSinceMs": { + "description": "Newest day at or above this total, set only from the 75th percentile up; null there means above every day of the year", + "type": [ + "integer", + "null" + ] + }, + "medianDayUsd": { + "type": "number" + }, + "percentile": { + "description": "Rank among the year's settled daily totals, 0-100", + "type": "number" + }, + "usd": { + "description": "Trailing-window total", + "type": "number" + } + }, + "type": [ + "object", + "null" + ] + }, + "trailingFromMs": { + "description": "Start of the trailing window (20-24h back)", + "type": [ + "integer", + "null" + ] + } + }, + "type": "object" +}
- Added
market_history
3 tool updates
- Changed
research_opportunities1 field changed- changed
Output schema / properties / candidates / items / properties / geometry / descriptionPrevious value: -"ATR-and-structure prices, ready for risk_position_size. Absent for a setup with no priceable side (COILED) and for EXTENDED, where refusing to price a chase is the point."New value: +"ATR-and-structure prices, ready for research_trade_plan. Absent for a setup with no priceable side (COILED) and for EXTENDED, where refusing to price a chase is the point."
- Changed
research_trade_plan4 fields changed- changed
Input schema / properties / account_size / descriptionPrevious value: -"Account equity in USD"New value: +"Optional account equity in USD, with risk_percent: adds the position size, notional and margin. Leave both out when the user didn't give them." - changed
Input schema / properties / leverage / descriptionPrevious value: -"Optional leverage the position is opened at, 1–200. Default: the smallest whole leverage that carries the notional."New value: +"Optional leverage the position is opened at, 1–200, for the liquidation price. Default when sized: the smallest whole leverage that carries the notional; unsized: no liquidation price unless given." - changed
Input schema / properties / risk_percent / descriptionPrevious value: -"Percent of the account lost if the stop is hit, e.g. 1"New value: +"Optional percent of the account lost if the stop is hit, e.g. 1; only with account_size" - changed
Input schema / requiredPrevious value: -[ - "symbol", - "entry", - "stop", - "account_size", - "risk_percent" -]New value: +[ + "symbol", + "entry", + "stop" +]
- Removed
risk_position_size
1 tool update
- Changed
risk_position_size14 fields changed- added
Input schema / properties / leverageAdded value: +{ + "description": "Optional leverage, passed on to the market check", + "type": "number" +} - added
Input schema / properties / order_typeAdded value: +{ + "description": "Optional entry order type, passed on to the market check", + "enum": [ + "limit", + "stop", + "market" + ], + "type": "string" +} - added
Input schema / properties / placed_atAdded value: +{ + "description": "Optional: when the trade was placed (ISO 8601), passed on to the market check, which replays it. Pass it whenever the user gives one.", + "type": "string" +} - added
Input schema / properties / symbolAdded value: +{ + "description": "Optional coin, e.g. BTC. Not used in the arithmetic; lets the trade ticket check the plan against the market.", + "type": "string" +} - added
Output schema / properties / accountUsdAdded value: +{ + "type": "number" +} - added
Output schema / properties / entryUsdAdded value: +{ + "type": "number" +} - added
Output schema / properties / leverageAdded value: +{ + "type": "number" +} - added
Output schema / properties / modeAdded value: +{ + "description": "Always sizing: arithmetic only, no market data", + "type": "string" +} - added
Output schema / properties / orderTypeAdded value: +{ + "type": "string" +} - added
Output schema / properties / placedAtAdded value: +{ + "type": "string" +} - added
Output schema / properties / riskPercentAdded value: +{ + "type": "number" +} - added
Output schema / properties / stopUsdAdded value: +{ + "type": "number" +} - added
Output schema / properties / symbolAdded value: +{ + "type": "string" +} - added
Output schema / properties / targetUsdAdded value: +{ + "type": "number" +}
1 tool update
- Changed
research_trade_plan1 field changed- changed
Input schema / properties / order_type / descriptionPrevious value: -"How the entry was placed, for the replay. limit (default): fills when price comes to the entry, or at once if the entry was already on the far side of the market. stop: a breakout trigger that fills when price comes through the entry. market: filled at placement. Ask the user when an entry above the market (long) or below it (short) could be either."New value: +"How the entry was placed, for the replay. limit (default): fills when price comes to the entry, or at once if the entry was already on the far side of the market. stop: a breakout trigger that fills when price comes through the entry. market: filled at placement. Omit it when the user hasn't said: if the entry was through the market at placement, one call returns both readings (lifecycle as a limit, alternativeLifecycle as a stop); ask the user which applies rather than calling again."
1 tool update
- Changed
research_trade_plan1 field changed- changed
Input schema / properties / placed_at / descriptionPrevious value: -"Optional: when the order was placed, as ISO 8601 (e.g. 2026-10-14T12:00:00Z) or unix time, up to 90 days back. Replays the plan since then."New value: +"When the order was placed, as ISO 8601 (e.g. 2026-10-14T12:00:00Z) or unix time, up to 90 days back. Pass it whenever the user says when the trade was placed or opened ('placed 2026-10-12T12:00Z', 'opened yesterday at 14:00'): with it the tool replays the trade and reports filled / stopped / target / open; without it the plan is checked as if not yet placed."
1 tool update
- Changed
research_trade_plan1 field changed- added
Input schema / properties / order_typeAdded value: +{ + "description": "How the entry was placed, for the replay. limit (default): fills when price comes to the entry, or at once if the entry was already on the far side of the market. stop: a breakout trigger that fills when price comes through the entry. market: filled at placement. Ask the user when an entry above the market (long) or below it (short) could be either.", + "enum": [ + "limit", + "stop", + "market" + ], + "type": "string" +}
1 tool update
- Changed
research_trade_plan1 field changed- added
Input schema / properties / placed_atAdded value: +{ + "description": "Optional: when the order was placed, as ISO 8601 (e.g. 2026-10-14T12:00:00Z) or unix time, up to 90 days back. Replays the plan since then.", + "type": "string" +}
1 tool update
- Added
research_trade_plan
Related MCP Connectors
Memecoin Intelligence MCP — 9 tools: rug check, momentum, whale watch, 80+ chains.
CoinMarketCap MCP — crypto prices, market cap, rankings
Read-only MCP for curated crypto, Web3, and memecoin picks and reports.
DEX Screener MCP — DEX price/liquidity/volume data
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides predictive crypto market intelligence synthesized from whale positions, developer activity, and behavioral demand signals. Enables convergence scoring, whale divergence detection, and risk radar through MCP tools.81 npmMIT
- AlicenseNot gradedqualityDmaintenanceCrypto intelligence MCP: 104 tools for market data, ML signals, on-chain analytics, derivatives, and Bittensor subnets. Pay-per-call via x402 USDC on Base/Solana/Algorand/Stellar or $9.99/mo API key.MIT
- AlicenseAqualityCmaintenanceThe conviction engine for autonomous crypto trading agents. 376 metrics across 8 factor classes, multi-factor backtesting, signal persistence, and regime analysis — 21 tools for AI agents via MCP.21148 npmMIT
- AlicenseAqualityDmaintenanceA comprehensive cryptocurrency market-data MCP server with 49 tools across six data sources, enabling LLMs to answer market questions via natural language.49MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.