Skip to main content
Glama

Server Details

Crypto market data & research MCP: price, derivatives, on-chain, sentiment, news, catalysts.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 62 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A4/5.0

Scored across 34 tools

Disambiguation4/5

Most tools target distinct resources/actions and the descriptions go to great lengths to state when to use each (e.g. market_history vs. derivatives_* vs. research_*). However there are real overlaps: market_candles and market_history both return OHLCV price series, market_quotes overlaps the aggregated line in research_token_view, and market_overview duplicates sentiment_fear_greed. The descriptions mitigate these, but an agent could still misselect among the market/research aggregation tools.

Naming Consistency5/5

Nearly every tool follows a consistent domain-prefix_snake_case pattern (catalysts_*, derivatives_*, flow_*, market_*, research_*, sentiment_*), which clusters the surface into readable families. The few single-scope names (funding_current, ta_technicals, utc_time, news_search) still read clearly and use the same snake_case convention. No camelCase/snake_case mixing or arbitrary verb styles.

Tool Count3/5

34 tools is heavy relative to the 3-15 sweet spot, and several (market/research aggregations) overlap in what they return. It is partly justified by unusually broad domain coverage — market, derivatives, flow, on-chain, sentiment, news, research, TA, catalysts, prediction markets — so each tool roughly earns its place, but the set sits well above the recommended ceiling.

Completeness5/5

The surface is unusually comprehensive for a crypto-market server: market data, per-coin and cross-sectional derivatives, order-book/flow, whale positioning, on-chain TVL/fees, funding, sentiment, news, filings, ETF/catalyst calendars, prediction markets, technicals and trade planning all covered. Aggregation and dossier tools tie sub-domains together with no obvious dead ends for the stated purpose.

Available Tools

34 tools
catalysts_calendarCatalyst CalendarA
Read-only
Inspect

Lists upcoming crypto catalyst events for the next 7 days. Optionally filter by comma-separated coin symbols (e.g. 'sol,eth').

ParametersJSON Schema
NameRequiredDescriptionDefault
coinsNoComma-separated coin symbols, e.g. 'sol,eth'. Omit for all coins.

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 CalendarA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
min_importanceNoMinimum importance level to include: 1 (all), 2 (medium+), 3 (high only). Defaults to 2.

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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 FlowsA
Read-only
Inspect

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNoUnderlying asset symbol, e.g. "BTC" or "ETH". Defaults to BTC.
symbolNoAlias for 'asset'.

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by 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.

Purpose5/5

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.

Usage Guidelines4/5

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.

derivatives_flowPerp Flow (OI × Taker, Binance or Bybit)A
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNoTrailing window in hours, 1–72. Default 24. At 5m the window is capped at about 41h by the venue's 500-snapshot limit.
symbolYesCoin symbol, e.g. "ETH".
intervalNoBucket size. Default 15m.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ruleNo
venueYes
marketNo
symbolYes
windowNo
bucketsNo
caveatsNo
episodesNoOpen-interest swings of at least 1% between zigzag pivots, oldest first
intervalNo
windowHoursNo
largestOiBucketsNo
takerSplitFromMsNoWhen the venue covers only part of the window: the first bucket with a taker split

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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

With an output schema present 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 HistoryA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNoTrailing window in hours, 1–72. Default 24.
symbolYesCoin symbol, e.g. "BTC".
intervalNoBucket size for the timing sample. Default 15m.
top_ordersNoLargest individual liquidations to list, 0–20. Default 5.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sampleNo
symbolYes
cascadesNo
intervalNo
baseline1yNoThe trailing ~24h (newest six 4h buckets) ranked against a year of CoinGlass daily totals over the same venues
cascadeRuleNo
windowHoursNo
largestOrdersNo
marketWide24hNoCoinGlass trailing-24h totals and per-venue split
sourcesFailedNo
marketBuckets4hNoMarket-wide 4h buckets overlapping the window, oldest first

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 InterestA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
pointsNoHow 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.
symbolYesCoin symbol, e.g. "BTC".

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 OddsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesTopic to match against market questions, e.g. 'Fed', 'bitcoin', 'ETH ETF'.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly identifies the tool as 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.

Usage Guidelines3/5

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.

flow_levelsPerp Levels (volume, OI, liquidations, walls)A
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNoWindow in hours, 24–168. Default 72.
symbolYesCoin symbol, e.g. "WAVES".

Output Schema

ParametersJSON Schema
NameRequiredDescription
ruleNo
spotYes
stepNoPrice bin width
levelsNo
symbolYes
windowNoThe window at a glance: price from the venue that traded most, OI from the flow venue, volume in the band, liquidations in the sample
caveatsNo
sourcesNo
supportsNoNearest levels on this side, one entry per price, strongest-first among the nearest
valueAreaNo
resistancesNoNearest levels on this side, one entry per price, strongest-first among the nearest
spotContextNo
windowHoursNo
dailyRangePctNoAverage 24h high–low range over the window, percent of price
sourcesFailedNo
unconfirmedWallsNoWalls larger than their venue's own 24h volume: shown, never counted as support or resistance

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 SnapshotA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesCoin symbol, e.g. "BTC".

Output Schema

ParametersJSON Schema
NameRequiredDescription
asOfAtNoOrder-book timestamp, ISO-8601 UTC
asOfMsNoOrder-book timestamp, Unix epoch milliseconds
sourceNoVenue that served the book
symbolYes
fillCostsNoCost vs mid of a market order of each size against the visible levels
spreadBpsNoBid/ask spread, basis points of mid
bestAskUsdNoBest ask price, USD
bestBidUsdNoBest bid price, USD
askDepthUsdNoTop-of-book ask depth, USD
bidDepthUsdNoTop-of-book bid depth, USD
midPriceUsdNoMid price, USD
imbalancePctNoSigned bid-vs-ask depth skew in percentage points (positive = more bids)
visibleAskReachPctNoDeepest returned ask vs mid, percent; nothing beyond is visible
visibleBidReachPctNoDeepest returned bid vs mid, percent; nothing beyond is visible

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 ContextA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesCoin symbol, e.g. "BTC" or "ETH".
min_usdNoMinimum transfer size in USD to count as a whale transfer. Defaults to 1000000.

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 PositionsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressesNoOptional comma-separated 0x wallet addresses to inspect (max 10). Omit to auto-discover the biggest live whales.

Output Schema

ParametersJSON Schema
NameRequiredDescription
accountsNo

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 RatesA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
pointsNoHow 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.
symbolYesCoin symbol, e.g. "BTC".

TDQS

A3.6/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The 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.

Purpose4/5

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.

Usage Guidelines3/5

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 CandlesA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoDEPRECATED: trailing window in days; use interval+limit instead. Ignored when interval is given.
limitNoNumber of candles, newest last. Default 100, max 400.
marketNoWhich 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.
symbolYesCoin symbol, e.g. 'ETH' or 'BTC'
intervalNoCandle size. Default 1d.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinIdNoIdentifier the answering provider queried
marketNo'spot' or 'perp' — which market the series describes
sourceNoProvider that answered
candlesNo
intervalNoCandle size actually delivered, e.g. '4h'
lastCandleIsPartialNoTrue when the newest candle is still forming; exclude it from indicator math

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds 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.

Purpose5/5

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.

Usage Guidelines4/5

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 DetailsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
coin_idYesCoinGecko coin ID (e.g. 'bitcoin') or ticker symbol (e.g. 'BTC'). IDs are case-sensitive; symbols are resolved by search.

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description 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.

Purpose5/5

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.

Usage Guidelines3/5

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 CoinsA
Read-only
Inspect

Lists the coin symbols available from the market-data provider

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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

The tool has zero parameters and the schema 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.

Purpose5/5

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.

Usage Guidelines3/5

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 HistoryA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoLatest time to include: ISO-8601 or Unix ms. Default now. Pass nextEndMs here to page back.
limitNoRows per page, 1–1000. Default 200.
startNoEarliest time to include: ISO-8601 (UTC if no offset) or Unix ms. Paging stops here.
marketNoPrice only: spot (default) or perpetual candles.
metricYes
symbolYesCoin symbol, e.g. "BTC".
intervalNoBucket size. Price: 1m–1w except 6h/8h, default 1d. Derivatives: 4h, 6h, 8h, 12h, 1d or 1w; default 4h (funding 8h).

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYesOldest first; each row is [timeMs, ...values] in column order; null where the source has no value
countYes
endMsNoThe page's end bound, Unix ms
unitsNoWhat each value column means
marketNoPrice only: spot or perp
metricYes
sourceNoProvider that answered this page
symbolYes
columnsYesNames of each row's cells; the first is timeMs (bucket open, Unix ms)
startMsNo
intervalNo
nextEndMsNoPass as 'end' for the page before this one; null when this page reached 'start' or the series' beginning
newestFormingNoNewest row's bucket is still open; the vendor rewrites it until it closes
earliestAvailableMsNoSet when 'end' was before the plan's history edge for this interval

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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

With an output schema present, return 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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 OverviewA
Read-only
Inspect

Global market snapshot: total market cap, BTC/ETH dominance, Fear & Greed index, and Altcoin Season index

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
fearGreedLabelNo
fearGreedValueNoFear & Greed index, 0-100
btcDominancePctNoBTC dominance in percentage points
ethDominancePctNoETH dominance in percentage points
totalMarketCapUsdNoTotal crypto market cap, USD
totalVolume24hUsdNoTotal 24h volume, USD
altcoinSeasonIndexNoAltcoin Season index, 0-100

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose4/5

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

The description clearly identifies the tool as a '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.

Usage Guidelines2/5

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 QuotesA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsNoCoin symbols to include, e.g. ["BTC","ETH"]. Omit for all covered coins.

Output Schema

ParametersJSON Schema
NameRequiredDescription
quotesNo

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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

With an output schema present 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 MoversA
Read-only
Inspect

Ranked 24h gainers, losers, and trend candidates (>+5% move)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

onchain_metricsOn-Chain MetricsA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesChain token symbol, e.g. 'ETH' or 'SOL'

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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

The description states a specific verb and resource: 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.

Usage Guidelines4/5

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.

providers_healthData Provider HealthA
Read-only
Inspect

Reports the health of each connected data provider

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

The description is consistent with the readOnlyHint annotation and adds the scope 'each connected data provider.' However, it doesn't disclose details like what health metrics are reported, whether it pings endpoints, or how statuses are represented. Since annotations already cover the read-only safety profile, the description adds only modest behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It immediately states the action and the target resource, making it easy for an agent to parse quickly.

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

Completeness4/5

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

For a parameterless read-only health-check tool, the description gives enough information to call it correctly and understand the general result. There is no output schema, but 'health of each connected data provider' sufficiently conveys what the agent should expect, even if exact field names are not specified.

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

Parameters4/5

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

The tool has zero parameters, and the schema covers 100% of the (empty) parameter surface. The description doesn't need to explain parameters because there are none, and the baseline for no-parameter tools is appropriately strong.

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

Purpose5/5

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

The description uses a specific verb ('Reports') and resource ('health of each connected data provider'), making the tool's function unambiguous. None of the 28 sibling tools relate to provider health, so it is easily distinguished from them without needing to open schemas.

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

Usage Guidelines4/5

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

The usage context is clear: an agent should call this tool when it needs the health status of connected data providers. It doesn't explicitly name alternatives or exclusions, but there are no sibling tools that overlap with this purpose, so the guidance is sufficient.

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

research_opportunitiesOpportunity ScanA
Read-only
Inspect

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 six 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), stress (24h liquidations as a share of open interest — whether forced sellers already cleared), 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 — the vote is withheld unless the slow timeframe agrees), and location (distance from the 4h EMA20 in ATR units — an extended coin scores DOWN, because a chase is not a setup). 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. Candidates carry ATR-and-structure geometry — a resting-limit entry at the EMA20 (never at market), a stop a full 2 ATR beyond it, and a target shaded inside the first structural level — priced so it feeds research_trade_plan directly. '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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierNoSize tier to screen: 'major' (market cap >= $10B), 'medium' ($300M-$10B), or 'all' (default).
limitNoRanked candidates to return. Default 10, max 25.
symbolsNoOptional: narrow the universe to these coin symbols, e.g. ["SOL","AVAX"]. Omit to screen everything that clears the tier and liquidity floors.
intervalsNoThe 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

ParametersJSON Schema
NameRequiredDescription
ruleNoThe exact rule that produced setup and score
caveatsNoWhat the scan cannot see, stated rather than implied
coverageNoWhat the scan actually looked at — read this before treating an empty candidate list as a quiet market
candidatesNo
requestedSymbolsNoOne 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.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=true; the description adds substantial behavioral context beyond that: zero per-symbol calls to the rate-limited derivatives provider (explaining why it is safe at scale), liquidity filtering before candle fetching, bounded shortlist, the six-signal construction with vote semantics, and the honest caveat that bands are disclosed constants with no backtest. It also discloses the tier/floor/symbol accounting contract so absence from the list is never ambiguous.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core differentiation is front-loaded in the first sentence and the operational cautions are placed well. It is dense and long — the per-signal enumeration is heavy and a few clauses (e.g. restating research_regime's BTC-only scope) could be trimmed — but nearly every sentence carries a distinct constraint or routing cue, so it stays justified.

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

Completeness5/5

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

With an output schema present, return values need not be explained; the description instead covers everything else an agent needs — universe construction, signal definitions and vote polarity, geometry conventions, parameter effects, and failure-mode semantics. Given the tool's complexity, nothing material is left unspecified.

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

Parameters4/5

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

Schema coverage is 100% and the schema itself is unusually rich (the 'intervals' description explains candle-cost, confirmation-slower rule, and timeframe scaling). The description still adds meaning on top: it clarifies that 'tier' filters major/medium/all, that 'limit' caps the ranked list, and that each symbol in 'symbols' is individually accounted for under five possible dispositions. That is real added semantics rather than repetition.

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

Purpose5/5

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

States a specific verb and resource — a cross-sectional screener over the whole major/medium-cap universe — and immediately distinguishes it from the per-coin tools ('the screener the per-coin tools cannot be looped into safely'). It names the sibling tools it complements (research_positioning, research_regime, research_trade_plan, ta_technicals), so an agent can place it in the toolset without ambiguity.

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

Usage Guidelines5/5

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

Gives explicit workflow direction: 'Use it to pick what to look at, then research_positioning and ta_technicals on the two or three that stand out,' and notes geometry feeds research_trade_plan directly. It also states when the tool legitimately returns nothing ('NO CANDIDATES' is a real and frequent answer), which prevents the agent from treating an empty board as a failure.

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

research_positioningPositioning AnalysisA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesCoin symbol, e.g. "BTC" or "ETH".

Output Schema

ParametersJSON Schema
NameRequiredDescription
axesNo
farmedNoOne-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.
stanceNoOverall positioning-fragility label
symbolNo
axesTotalNo
stanceRuleNoThe exact rule that produced stance
thresholdsNoThe wouldChange lines in machine-readable form for stateless alerting
focalPointsNoPrice levels that are common knowledge on the board, nearest to spot first
skippedAxesNoAxes attempted but not computed; the stance is over the computed ones only
wouldChangeNoThresholds that would flip an axis, as prose
axesComputedNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations give readOnlyHint=true, so safety is already covered; the description usefully adds determinism ('same inputs, same read'), the explicit stance rule (sum-of-votes), the degradation behavior of the fragility axis, and the critical framing 'Reports the board, not a direction — crowding says who is paying, not where price goes.' Much of the remaining text enumerates return content rather than behavior, which blunts it slightly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with a strong orienting sentence, but the axis catalogue runs to roughly 350 words for a one-parameter tool, and a large share of that detail restates return values already carried by the output schema. Dense and hard to scan; a good chunk does not earn its place.

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

Completeness4/5

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

Nothing an agent needs to select or invoke the tool is missing: scope, sequencing, stance semantics, and determinism are all present. It undershoots on conciseness rather than completeness, over-explaining return values that the output schema already provides.

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

Parameters3/5

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

Single parameter with 100% schema description coverage, so the schema already documents 'symbol' fully. The description adds no syntax, format, or edge-case guidance for the parameter. Baseline 3 applies 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.

Purpose5/5

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

Opens with a specific verb+resource and scope ('Deterministic positioning read for one coin'), then frames it as 'the game-state companion to research_regime' and enumerates the exact question it answers ('who is crowded, who is paying, who is trapped, and where'). An agent can distinguish it from research_regime, funding_current, and flow_whale_positions without opening any schema.

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

Usage Guidelines5/5

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

Gives explicit sequencing and context: 'Call research_regime first for market context, then this per coin before sizing or timing decisions.' It names the sibling to chain from and the decision point at which this tool belongs, leaving nothing to inference.

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

research_regimeMarket RegimeA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
axesNo
postureNoOverall risk-posture label
asymmetryNoWhich 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
axesTotalNo
compressedNo30d realized vol at or below its 5th percentile — while true the Trend axis contributes 0 to the posture whatever its state
postureRuleNoThe exact rule that produced posture
wouldChangeNoThresholds that would flip an axis
axesComputedNo
volatilityPercentileNo30d realized-vol percentile vs own history; absent when no candle history was available, which is not the same as not compressed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=true, but the description goes well beyond that by disclosing the sum-of-votes rule, the compression exception that withholds the Trend axis vote, the informational non-voting asymmetry lean, the explicit thresholds, and the deterministic behavior. This is far richer than the annotations alone and gives the agent a clear model of the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: the core classification is front-loaded, and the vote rule, exception, lean, thresholds, determinism, and usage positioning are all operationally relevant. The detail is justified by the complexity of the regime logic.

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

Completeness5/5

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

With an output schema already covering the return shape and zero input parameters, the description supplies exactly the contextual information an agent needs: the composite nature, the exception behavior, the asymmetry lean, and when to use the tool. Nothing essential is missing.

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

Parameters4/5

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

The tool has zero parameters, so there is no parameter ambiguity and the empty input schema is fully self-contained. The description uses this opportunity to clarify output semantics and behavioral rules, which is more valuable than restating empty parameter details.

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

Purpose5/5

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

The description clearly defines the tool as a deterministic market-regime classifier across seven explicit axes and states exactly what it produces: per-axis state, supporting numbers, votes, and an overall posture. It effectively distinguishes itself from raw-data sibling tools by positioning it as a composite first-call regime read.

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

Usage Guidelines4/5

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

The description explicitly frames the tool as a first call and explains that funding, sentiment, and flows should be interpreted differently depending on this regime. This gives an agent strong context for when to invoke it, though it does not list explicit when-not-to-use cases or name specific sibling tools as alternatives.

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 DiveA
Read-only
Inspect

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').

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesCoin symbol, e.g. 'ETH' or 'BTC'

Output Schema

ParametersJSON Schema
NameRequiredDescription
newsNo
marketNoSame shape as one market_quotes item; omitted when no provider covers the symbol
socialNo
symbolYes
etfFlowNo
onChainNo
sectionsNoPer-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.
catalystsNo
narrativeNo
technicalsNoIn-house per-timeframe snapshots; same item shape as ta_technicals's timeframes. Empty when no timeframe could be analyzed.
marketContextNoSame shape as market_overview
providerCoverageNo
predictionMarketsNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark it read-only, and the description adds meaningful behavioral context: it is an aggregate assembled from multiple feeds, on-chain data is conditional on the symbol being tracked, and it includes a per-section status list that distinguishes empty sections from failed feeds. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one dense front-loaded sentence that starts with the core purpose before listing sections. It is long, but almost every clause names a distinct output category or caveat, so the length is justified by the tool's breadth; breaking it into bullets would improve scannability.

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

Completeness5/5

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

Given a simple input schema, a read-only annotation, and an output schema that covers return structure, the description covers the relevant behaviors and conditional cases (tracked chains, per-section failures, live provider coverage). An agent has enough information to call this tool and interpret its aggregated result.

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

Parameters3/5

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

With 100% schema description coverage for the sole symbol parameter, the schema already documents the meaning and example. The description repeats the one-symbol scope and ETH example but does not add constraints like case-sensitivity, accepted symbol formats, or validation behavior, so it stays at baseline.

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

Purpose5/5

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

The description opens with 'Aggregated single-coin dossier' and enumerates the full set of data categories for one symbol, so an agent immediately knows what the tool returns. It also distinguishes itself from siblings by noting equivalent content to market_quotes and ta_technicals, making its aggregation role explicit.

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

Usage Guidelines3/5

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

The description strongly implies this is the broad overview tool and points out where its data overlaps with market_quotes and ta_technicals, but it never explicitly says when to prefer this over a specialized sibling. There is no when-not guidance or alternative routing, so an agent must infer the usage boundary.

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

research_trade_planTrade Plan Check & ReplayA
Read-only
Inspect

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, leverage over 10x, and an entry far from live. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stopYesStop-loss price (below entry = long, above = short)
entryYesPlanned entry price
symbolYesCoin symbol, e.g. "ETH".
targetNoOptional take-profit price
leverageNoOptional 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_atNoWhen 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.
order_typeNoHow 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.
account_sizeNoOptional 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_percentNoOptional percent of the account lost if the stop is hit, e.g. 1; only with account_size

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=true, but the description adds substantial behavioral context: nothing is persisted ('the numbers come in, the replay goes out'), planLine is the round-trip handle, liquidation is priced with first-tier 0.5% maintenance margin (flagged as the optimistic case), and the full status set (PENDING/MISSED/OPEN/STOPPED/TARGET/AMBIGUOUS) is enumerated. No contradiction with readOnlyHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose in the first sentence, and every subsequent clause maps to a real behavior (returns, statuses, sizing coupling, replay rules). It is dense as a single block — the return inventory could be broken out — but little of it is filler for a tool of this complexity.

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

Completeness5/5

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

With no output schema, the description carries the return burden itself and does so thoroughly: reward:risk, stop distance in % and 4h ATR, liquidation price, funding per day, perp levels, and the named checks. Edge cases (AMBIGUOUS candle, MISSED target-first) and the stateless model are covered, 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.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description genuinely adds semantics: the both-or-neither coupling of account_size and risk_percent, the leverage default logic, and the order_type fill rules (limit fills on approach or immediately if already marketable). It stops short of 5 because most field-level detail is still carried by the schema.

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

Purpose5/5

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

States a specific verb set and resource: 'Check, review or replay a perp trade setup (entry, stop, optional target)', and names the sibling tools it follows (research_opportunities, flow_levels). It also explicitly disclaims being a signal, which separates it from adjacent research tools 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.

Usage Guidelines5/5

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

Explicit routing: use after research_opportunities or flow_levels has suggested a setup. It gives conditional guidance for placed_at ('pass it whenever the user says when the trade was placed') and instructs to ask the user rather than re-call when order_type is ambiguous — when/when-not/alternatives are all covered.

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 IndexA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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

The tool has zero parameters, so the baseline 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.

Purpose4/5

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.

Usage Guidelines4/5

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 SentimentA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesCoin symbol, e.g. "BTC".

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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 SentimentA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax Posts to return (1-10). Defaults to 5.
queryYesX recent-search query (keywords, phrases, hashtags, cashtags, or operators), e.g. "$BTC", "bitcoin ETF", or "from:handle BTC". Self-serve query limit: 512 characters.
latestNoReturn the newest Posts instead of top relevance. Defaults to false.
minLikesNoOnly Posts with at least this many likes. Defaults to 0.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tweetsNo

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 AnalysisA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketNoWhich candle series: 'spot', 'perp', or 'auto' (default: spot preferred; perp when spot fails or its history is too short)
symbolYesCoin symbol, e.g. 'ETH' or 'BTC'
intervalsNoCandle 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

ParametersJSON Schema
NameRequiredDescription
levelsNoDaily swing support/resistance; omitted when unavailable (see levelsUnavailable)
symbolYes
timeframesYes
lastPriceUsdYesNewest close of the finest analyzed timeframe
failedIntervalsNoIntervals that could not be analyzed, with reasons
levelsUnavailableNoWhy levels are missing, when they are

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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

With an output schema present, 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose5/5

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.

Usage Guidelines4/5

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 TimeA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

The readOnlyHint annotation already covers safety, and the description 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 2 tool updates
    • Changedderivatives_liquidations1 field changed
      • addedOutput schema / properties / baseline1y
        Added 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"
        +}
    • Addedmarket_history
  2. 3 tool updates
    • Changedresearch_opportunities1 field changed
      • changedOutput schema / properties / candidates / items / properties / geometry / description
        Previous 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."
    • Changedresearch_trade_plan4 fields changed
      • changedInput schema / properties / account_size / description
        Previous 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."
      • changedInput schema / properties / leverage / description
        Previous 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."
      • changedInput schema / properties / risk_percent / description
        Previous 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"
      • changedInput schema / required
        Previous value: -[
        -  "symbol",
        -  "entry",
        -  "stop",
        -  "account_size",
        -  "risk_percent"
        -]New value: +[
        +  "symbol",
        +  "entry",
        +  "stop"
        +]
    • Removedrisk_position_size
  3. 1 tool update
    • Changedrisk_position_size14 fields changed
      • addedInput schema / properties / leverage
        Added value: +{
        +  "description": "Optional leverage, passed on to the market check",
        +  "type": "number"
        +}
      • addedInput schema / properties / order_type
        Added value: +{
        +  "description": "Optional entry order type, passed on to the market check",
        +  "enum": [
        +    "limit",
        +    "stop",
        +    "market"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / placed_at
        Added 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"
        +}
      • addedInput schema / properties / symbol
        Added value: +{
        +  "description": "Optional coin, e.g. BTC. Not used in the arithmetic; lets the trade ticket check the plan against the market.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / accountUsd
        Added value: +{
        +  "type": "number"
        +}
      • addedOutput schema / properties / entryUsd
        Added value: +{
        +  "type": "number"
        +}
      • addedOutput schema / properties / leverage
        Added value: +{
        +  "type": "number"
        +}
      • addedOutput schema / properties / mode
        Added value: +{
        +  "description": "Always sizing: arithmetic only, no market data",
        +  "type": "string"
        +}
      • addedOutput schema / properties / orderType
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / placedAt
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / riskPercent
        Added value: +{
        +  "type": "number"
        +}
      • addedOutput schema / properties / stopUsd
        Added value: +{
        +  "type": "number"
        +}
      • addedOutput schema / properties / symbol
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / targetUsd
        Added value: +{
        +  "type": "number"
        +}
  4. 1 tool update
    • Changedresearch_trade_plan1 field changed
      • changedInput schema / properties / order_type / description
        Previous 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."
  5. 1 tool update
    • Changedresearch_trade_plan1 field changed
      • changedInput schema / properties / placed_at / description
        Previous 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."
  6. 1 tool update
    • Changedresearch_trade_plan1 field changed
      • addedInput schema / properties / order_type
        Added 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"
        +}
  7. 1 tool update
    • Changedresearch_trade_plan1 field changed
      • addedInput schema / properties / placed_at
        Added 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"
        +}
  8. 1 tool update
    • Addedresearch_trade_plan
  9. 2 tool updates
    • Changedmarket_candles1 field changed
      • changedInput schema / properties / market / description
        Previous value: -"Which market's series: spot exchange trades, perpetual-futures marks, or auto (spot preferred, perp fallback). Default auto."New value: +"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."
    • Changedta_technicals1 field changed
      • changedInput schema / properties / market / description
        Previous value: -"Which candle series: 'spot', 'perp', or 'auto' (default: spot preferred, perp fallback)"New value: +"Which candle series: 'spot', 'perp', or 'auto' (default: spot preferred; perp when spot fails or its history is too short)"
  10. 1 tool update
    • Changedta_technicals3 fields changed
      • removedOutput schema / properties / altFins
        Removed value: -{
        -  "description": "Vendor levels enrichment; omitted when the AltFINS feed is down",
        -  "properties": {
        -    "longTermTrend": {
        -      "type": "string"
        -    },
        -    "mediumTermTrend": {
        -      "type": "string"
        -    },
        -    "resistanceLevelsUsd": {
        -      "items": {
        -        "type": "number"
        -      },
        -      "type": "array"
        -    },
        -    "shortTermTrend": {
        -      "type": "string"
        -    },
        -    "supportLevelsUsd": {
        -      "items": {
        -        "type": "number"
        -      },
        -      "type": "array"
        -    }
        -  },
        -  "type": "object"
        -}
      • addedOutput schema / properties / levels
        Added value: +{
        +  "description": "Daily swing support/resistance; omitted when unavailable (see levelsUnavailable)",
        +  "properties": {
        +    "interval": {
        +      "type": "string"
        +    },
        +    "measuredFromUsd": {
        +      "description": "Price the levels are split around and distances measured from (the headline lastPriceUsd)",
        +      "type": "number"
        +    },
        +    "rangeHighAt": {
        +      "type": "string"
        +    },
        +    "rangeHighUsd": {
        +      "type": "number"
        +    },
        +    "rangeLowAt": {
        +      "type": "string"
        +    },
        +    "rangeLowUsd": {
        +      "type": "number"
        +    },
        +    "resistances": {
        +      "description": "Nearest first, at or above measuredFromUsd",
        +      "items": {
        +        "properties": {
        +          "distancePct": {
        +            "description": "Signed distance from measuredFromUsd, % (negative = below)",
        +            "type": "number"
        +          },
        +          "lastTouchAt": {
        +            "description": "Newest swing in the cluster, ISO-8601 UTC",
        +            "type": "string"
        +          },
        +          "priceUsd": {
        +            "type": "number"
        +          },
        +          "swings": {
        +            "description": "Confirmed swing highs/lows in the cluster",
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "supports": {
        +      "description": "Nearest first, below measuredFromUsd",
        +      "items": {
        +        "properties": {
        +          "distancePct": {
        +            "description": "Signed distance from measuredFromUsd, % (negative = below)",
        +            "type": "number"
        +          },
        +          "lastTouchAt": {
        +            "description": "Newest swing in the cluster, ISO-8601 UTC",
        +            "type": "string"
        +          },
        +          "priceUsd": {
        +            "type": "number"
        +          },
        +          "swings": {
        +            "description": "Confirmed swing highs/lows in the cluster",
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "toleranceUsd": {
        +      "description": "Cluster width: half a daily ATR(14), floored at 0.25% of price",
        +      "type": "number"
        +    },
        +    "windowCandles": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
      • addedOutput schema / properties / levelsUnavailable
        Added value: +{
        +  "description": "Why levels are missing, when they are",
        +  "type": "string"
        +}
  11. 1 tool update
    • Changedcatalysts_calendar1 field changed
      • changedInput schema / properties / coins / description
        Previous value: -"Comma-separated coin IDs, e.g. 'bitcoin,ethereum'. Omit for all coins."New value: +"Comma-separated coin symbols, e.g. 'sol,eth'. Omit for all coins."
  12. 1 tool update
    • Changedresearch_positioning1 field changed
      • addedOutput schema / properties / skippedAxes
        Added value: +{
        +  "description": "Axes attempted but not computed; the stance is over the computed ones only",
        +  "items": {
        +    "properties": {
        +      "name": {
        +        "type": "string"
        +      },
        +      "reason": {
        +        "description": "The feed that was offline, or what the coin lacks",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
  13. 1 tool update
    • Changedflow_levels1 field changed
      • addedOutput schema / properties / window
        Added value: +{
        +  "description": "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",
        +  "properties": {
        +    "liquidatedUsd": {
        +      "type": "number"
        +    },
        +    "oiChangePct": {
        +      "type": "number"
        +    },
        +    "oiEndUsd": {
        +      "type": "number"
        +    },
        +    "oiStartUsd": {
        +      "type": "number"
        +    },
        +    "oiVenue": {
        +      "type": "string"
        +    },
        +    "priceChangePct": {
        +      "type": "number"
        +    },
        +    "priceEnd": {
        +      "type": "number"
        +    },
        +    "priceStart": {
        +      "type": "number"
        +    },
        +    "priceVenue": {
        +      "type": "string"
        +    },
        +    "volumeUsd": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
  14. 2 tool updates
    • Changedderivatives_flow7 fields changed
      • changedOutput schema / properties / episodes / items / properties / absorbed / description
        Previous value: -"Aggressors pushed one way, price went the other"New value: +"Aggressors pushed one way, price went the other (taker basis only)"
      • addedOutput schema / properties / episodes / items / properties / readBasis
        Added value: +{
        +  "enum": [
        +    "taker",
        +    "price"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / episodes / items / properties / takerCoveragePct
        Added value: +{
        +  "type": "number"
        +}
      • addedOutput schema / properties / largestOiBuckets / items / properties / readBasis
        Added value: +{
        +  "enum": [
        +    "taker",
        +    "price"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / takerSplitFromMs
        Added value: +{
        +  "description": "When the venue covers only part of the window: the first bucket with a taker split",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / window / properties / readBasis
        Added value: +{
        +  "enum": [
        +    "taker",
        +    "price"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / window / properties / takerCoveragePct
        Added value: +{
        +  "description": "Share of volume whose taker split is known",
        +  "type": "number"
        +}
    • Addedflow_levels
  15. 3 tool updates
    • Addedderivatives_flow
    • Addedderivatives_liquidations
    • Changedflow_orderbook3 fields changed
      • addedOutput schema / properties / fillCosts
        Added value: +{
        +  "description": "Cost vs mid of a market order of each size against the visible levels",
        +  "items": {
        +    "properties": {
        +      "buyBps": {
        +        "description": "Average buy fill vs mid in bps; absent when the visible asks can't fill the size",
        +        "type": "number"
        +      },
        +      "sellBps": {
        +        "description": "Average sell fill vs mid in bps (positive = cost); absent when the visible bids can't fill the size",
        +        "type": "number"
        +      },
        +      "sizeUsd": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "sizeUsd"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / visibleAskReachPct
        Added value: +{
        +  "description": "Deepest returned ask vs mid, percent; nothing beyond is visible",
        +  "type": "number"
        +}
      • addedOutput schema / properties / visibleBidReachPct
        Added value: +{
        +  "description": "Deepest returned bid vs mid, percent; nothing beyond is visible",
        +  "type": "number"
        +}
  16. 1 tool update
    • Changedsentiment_twitter4 fields changed
      • removedInput schema / properties / accounts
        Removed value: -{
        -  "description": "Optional subset of the server's trusted X accounts. Untrusted handles are rejected.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • changedInput schema / properties / query / description
        Previous value: -"Search keywords, $cashtag or #hashtag, e.g. \"$BTC\" or \"bitcoin etf\"."New value: +"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."
      • removedOutput schema / properties / tweets / items / properties / author
        Removed value: -{
        -  "description": "Author handle without @",
        -  "type": "string"
        -}
      • changedOutput schema / properties / tweets / items / properties / url / description
        Previous value: -"Canonical X Post URL"New value: +"X Post permalink"
  17. 1 tool update
    • Changedsentiment_twitter10 fields changed
      • addedInput schema / properties / accounts
        Added value: +{
        +  "description": "Optional subset of the server's trusted X accounts. Untrusted handles are rejected.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / properties / latest / description
        Previous value: -"Return the newest tweets instead of top-relevance. Defaults to false."New value: +"Return the newest Posts instead of top relevance. Defaults to false."
      • changedInput schema / properties / limit / description
        Previous value: -"Max tweets to return (1-50). Defaults to 10."New value: +"Max Posts to return (1-10). Defaults to 5."
      • changedInput schema / properties / minLikes / description
        Previous value: -"Only tweets with at least this many likes. Useful for cutting spam in top-relevance mode; avoid combining with latest=true (brand-new tweets have no likes yet, so it returns nothing). Defaults to 0."New value: +"Only Posts with at least this many likes. Defaults to 0."
      • changedOutput schema / properties / tweets / items / properties / author / description
        Previous value: -"Author screen name (without @)"New value: +"Author handle without @"
      • removedOutput schema / properties / tweets / items / properties / authorFollowers
        Removed value: -{
        -  "type": "number"
        -}
      • removedOutput schema / properties / tweets / items / properties / authorName
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / tweets / items / properties / authorVerified
        Removed value: -{
        -  "type": "boolean"
        -}
      • changedOutput schema / properties / tweets / items / properties / createdAt / description
        Previous value: -"ISO 8601; empty when the venue omits it"New value: +"ISO 8601"
      • addedOutput schema / properties / tweets / items / properties / url
        Added value: +{
        +  "description": "Canonical X Post URL",
        +  "type": "string"
        +}

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides 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.
    52 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A comprehensive cryptocurrency market-data MCP server with 49 tools across six data sources, enabling LLMs to answer market questions via natural language.
    49
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources