Skip to main content
Glama

Server Details

AI-generated crypto futures signals with entry, target and stop levels, plus smart money whale positioning across Binance, Hyperliquid, Bybit and OKX. Also live prices, candles and 13 technical indicators — every tool is read-only.

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

TDQS

A4/5.0

Scored across 18 tools

Disambiguation4/5

Most tools are clearly distinct (e.g., get_candles vs get_technical_indicators vs backtest_condition), but some overlap exists between get_market_stats and get_signal_stats (both aggregate performance but for different domains), and get_trader_position_history vs get_positions could be confused (one trader vs smart-money). Overall, descriptions clarify the boundaries well.

Naming Consistency4/5

Names follow a clear verb_noun pattern: get_* for data retrieval, screen_symbols, backtest_condition. Minor inconsistency: backtest_condition uses a verb_noun but with 'condition' as a noun, which is acceptable. No camelCase or mixed conventions. Slight deviation with 'screen_symbols' (verb_screen + noun) but still consistent with the pattern.

Tool Count5/5

18 tools is on the higher end but well-scoped for a comprehensive crypto analysis server covering market data, technical indicators, smart-money tracking, signals, and backtesting. Each tool serves a distinct purpose and the count is justified by the breadth of features.

Completeness3/5

The surface is fairly complete for read-only analysis: candles, indicators, screening, backtesting, signals, and trader data. However, there are gaps: no tool for historical OHLCV beyond the last 1000 candles (backtest_condition is limited to a fixed window), no direct comparison between symbols beyond simple screening, and no tool for combining multiple conditions across timeframes. Some dead ends like get_elite_leaderboard are listed but no related drill-down for individual elite traders.

Available Tools

18 tools
backtest_conditionA
Read-onlyIdempotent
Inspect

What happened AFTER a condition in the past, on one symbol and timeframe — "how did BTC do after RSI dropped below 30 on 4h", "is a golden cross on ETH daily actually bullish", "what usually follows a −5% day on SOL". Runs an event study over the whole stored tape (up to 1000 candles: ~41 days on 1h, ~166 days on 4h, ~3 years on 1d): occurrences, average / median forward return, win rate, average best and worst excursion per horizon, the unconditional baseline over the same tape and the EDGE the condition adds over it, the last five episodes, and whether the condition is active on the latest bar. Same condition vocabulary as screen_symbols. Quote the edge and the sample size together — a 3-sample stat is an anecdote.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesTrading pair, e.g. BTCUSDT (a bare "BTC" is read as its USDT perpetual)
horizonsNoBars ahead to measure returns over (≤ 4). Default per interval ≈ 4h / 1d / 3d: 1h → [4, 24, 72], 4h → [6, 18, 42], 1d → [1, 3, 7].
intervalNoCandle timeframe4h
conditionsYesUp to 3 conditions, AND-ed. Examples: RSI oversold = {"metric":"rsi","op":"lt","value":30}; above the 200 EMA = {"metric":"priceVsEma","op":"gt","value":0,"period":200}; golden cross = {"metric":"emaSpread","op":"crossAbove","value":0,"period":50,"period2":200}; MACD bullish cross = {"metric":"macdHistogram","op":"crossAbove","value":0}; dumped 5% in a day = {"metric":"changePct","op":"lt","value":-5,"period":24}.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toNo
barsNoCandles the study ran on (the whole stored tape)
fromNo
recentNoNewest episodes first: { openTime, barsAgo, price, returnsPct { "<bars>": pct } }
symbolNo
horizonsNoPer look-ahead: { bars, samples, avgReturnPct, medianReturnPct, winRatePct, avgMaxUpPct, avgMaxDownPct, bestPct, worstPct, baselineAvgReturnPct, edgePct } — edge = avg − unconditional baseline
intervalNo
warningsNo
activeNowNoConditions hold on the latest closed bar
conditionsNo
occurrencesNoEpisodes — the FIRST bar of each run where the conditions held
horizonHoursNo
coverageHoursNo
currentValuesNoLatest value of every metric involved
evaluableBarsNo
lastOccurrenceNo{ openTime, barsAgo, price }

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering safety. The description adds valuable behavioral context: it runs over the entire stored tape (up to 1000 candles), computes specific statistics (average/median forward return, win rate, best/worst excursion, baseline, edge), and includes a critical caveat about quoting edge with sample size (a 3-sample stat is an anecdote). This goes beyond annotations and is useful for proper interpretation.

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

Conciseness4/5

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

The description is dense but each sentence earns its place. It front-loads the core question and examples, then details the analysis output and caveat. It is not overly verbose; the length is justified by the complexity of the tool. However, it could be slightly more concise by trimming some redundant phrasing, but overall it is well-structured and informative.

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

Completeness5/5

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

The description is comprehensive for a complex tool. It covers what the tool does, what it returns (occurrences, forward returns, win rate, excursions, baseline, edge, last five episodes, active status), the sample size limitation, and gives usage examples. It even mentions the output includes an unconditional baseline and the edge, which are crucial for interpretation. With an output schema present, it doesn't need to detail return format, but the description gives a full conceptual overview. 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.

Parameters4/5

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

Schema description coverage is 100% with detailed parameter descriptions, so baseline is 3. The tool description adds value by explaining default horizons per interval, the concept of 'edge' over the baseline, and providing concrete condition examples (RSI oversold, golden cross, etc.) that clarify how to structure conditions. It also clarifies the meaning of the edge statistic, which is not in the schema. This is meaningful added semantic context.

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

Purpose5/5

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

The description clearly states the tool's purpose: it runs an event study on historical data to answer 'what happened AFTER a condition in the past' for a given symbol and timeframe. It uses a specific verb (backtest), a resource (condition on a symbol/timeframe), and provides concrete examples (RSI, golden cross, -5% day) that distinguish it from siblings like screen_symbols, which is implied to be for current screening. The phrasing 'Same condition vocabulary as screen_symbols' further clarifies its relationship.

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 implies when to use this tool: for historical performance analysis of a condition, contrasting with screening current conditions via screen_symbols (implied by the vocabulary mention). It gives examples of questions it answers, but it does not explicitly state 'use screen_symbols for current screening' or list when not to use this tool. The guidance is clear from context but not explicit.

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

get_candlesA
Read-onlyIdempotent
Inspect

Get OHLCV (Open, High, Low, Close, Volume) candle data for a crypto futures symbol. Useful for charting, price history, and technical analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of candles to return
symbolYesTrading pair symbol, e.g. BTCUSDT
intervalNoCandle interval/timeframe1h

Output Schema

ParametersJSON Schema
NameRequiredDescription
symbolNo
candlesNoOldest first
intervalNo

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the OHLCV data type and use cases but does not disclose additional behavioral traits like pagination, rate limits, or return format. This matches the baseline where annotations carry the transparency burden.

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 that states what the tool does and why it is useful. Every word earns its place, with no redundancy or fluff.

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

Completeness4/5

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

Given the rich annotations, fully described schema, and output schema presence, the description is nearly complete. It could explicitly note that this returns historical data versus a current price, which would improve differentiation from get_price, but the OHLCV mention largely covers this. Slightly more contextual guidance would make it fully complete.

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 all three parameters (symbol, interval, limit) fully described, including defaults, enums, and ranges. The description adds no parameter-specific meaning beyond saying 'OHLCV', so the schema already does the heavy lifting; baseline 3 applies.

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

Purpose5/5

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

The description uses a specific verb ('Get') with a clear resource ('OHLCV candle data') and scope ('for a crypto futures symbol'). It also lists concrete use cases ('charting, price history, and technical analysis'), which distinguishes it from siblings like get_price (likely current price) and get_technical_indicators.

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 to use this tool ('Useful for charting, price history, and technical analysis'), implying these scenarios. However, it does not explicitly mention alternatives or when not to use it, such as 'for current price, use get_price'.

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

get_derivativesA
Read-onlyIdempotent
Inspect

Funding rate, open interest and positioning for Binance USDⓈ-M perpetual futures — the derivatives questions candles cannot answer: is funding high (who is paying whom, annualized), is open interest building or unwinding (24h/4h change, and the OI×price regime: new longs, short covering, new shorts, long liquidation), and which way accounts lean (top-trader long/short by position, all-account ratio, taker buy/sell flow). Each symbol carries plain-language notes — quote those. Up to 5 symbols per call; data is 60s fresh.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsYesUp to 5 Binance USDⓈ-M futures symbols, e.g. ["BTCUSDT", "ETHUSDT"]. A bare base asset ("BTC") is read as its USDT perpetual.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoOne entry per symbol: { symbol, markPrice, indexPrice, premiumPct, funding { rate, ratePct, annualizedPct, nextFundingTime, minutesToNextFunding, avg24hPct, avg3dPct, label }, openInterest { contracts, valueUsd, change4hPct, change24hPct, priceChange24hPct, regime }, positioning { globalLongShortRatio, globalLongPct, topTraderLongShortRatio, topTraderLongPct, takerBuySellRatio, label }, notes[] } — or { symbol, error, message } when the symbol is not a Binance USDⓈ-M futures pair
countNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds useful behavioral context by noting data is 60 seconds fresh and that each symbol carries plain-language notes that should be quoted, giving the agent clear expectations about output style and data timeliness.

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 somewhat dense with rhetorical questions and parentheticals, but it remains purposeful and front-loaded with the core resource and data types. The repetition of 'Up to 5 symbols per call' is slightly redundant with the schema, but the overall structure is efficient and readable.

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

Completeness5/5

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

Given the single-parameter schema, an output schema, and rich annotations, the description is complete enough for correct invocation. It covers what data is returned, how the parameter behaves, output note guidance, freshness, and usage limits, leaving no critical gap for the agent.

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

Parameters5/5

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

The schema description fully explains the single `symbols` parameter, including the array limit of 1–5, concrete examples like 'BTCUSDT' and 'ETHUSDT', and the rule that a bare base asset like 'BTC' is interpreted as its USDT perpetual. This exceeds basic parameter documentation.

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

Purpose5/5

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

The description clearly states the tool returns funding rate, open interest, and positioning data for Binance USDⓈ-M perpetual futures, and explicitly frames it as 'the derivatives questions candles cannot answer.' This makes the resource and data scope unambiguous and distinguishes it from price/candle-focused sibling tools.

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

Usage Guidelines4/5

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

The description gives concrete use cases—checking whether funding is high, whether open interest is building/unwinding, and how accounts lean—and notes the 5-symbol limit and 60-second freshness. It does not explicitly name alternative tools beyond 'candles,' but the use-case framing is strong enough to guide selection.

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

get_elite_leaderboardA
Read-onlyIdempotent
Inspect

Use this when the user specifically asks for the elite leaderboard by SmartScore across exchanges.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
keyNo
titleNo
sourceNo
leadersNoRanked traders with score, scoreBreakdown, metrics, rationale[] and tier
summaryNoCoverage of the run: traders scored, trades counted
lastRunAtNo
updatedAtNo
algorithmDetailsNoHow each scoring component is weighted
algorithmVersionNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already communicate read-only and idempotent behavior. The description adds useful scoping context ('by SmartScore across exchanges') without contradicting annotations. It doesn't detail edge cases or rate limits, but for a simple read operation this is adequate.

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 immediately states the trigger condition and the tool's purpose. No wasted words, perfectly scannable by an agent.

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 no-parameter, read-only tool with a clear output schema and simple trigger, the description fully covers the necessary context. There are no gaps in usage preconditions or scope.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4 per the rubric. Schema coverage is trivially 100%, and there are no parameter details missing—the description doesn't need to explain parameters that don't exist.

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 and resource—'get the elite leaderboard'—and adds the scoping detail 'by SmartScore across exchanges,' which clearly differentiates it from sibling tools like get_top_traders. It tells the agent exactly what the tool does and when to consider it.

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

Usage Guidelines4/5

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

The description provides a clear trigger condition ('when the user specifically asks for'), giving explicit context for when to use the tool. However, it does not mention alternatives or state when not to use it, which is a minor gap relative to the top tier.

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

get_exchangesA
Read-onlyIdempotent
Inspect

Use this when the user asks which exchanges are currently available in TraderSpy smart-money tracking.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoTracked exchanges and whether each is currently enabled

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description adds only context about the data source. It does not describe return format or dynamic behavior, which is acceptable given annotation coverage.

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 with no redundant content, perfectly sized for its simplicity.

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 params, strong annotations, and an output schema present, the description adequately covers the tool's purpose and use case. Could slightly benefit from mentioning the output nature, but not necessary.

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?

Tool has zero parameters, so the baseline is 4. The description appropriately avoids parameter details since none exist; schema coverage is 100%.

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

Purpose5/5

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

Description explicitly states the tool returns available exchanges in TraderSpy smart-money tracking, using a clear resource (exchanges) and context, distinguishing it from sibling get_* tools.

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

Usage Guidelines4/5

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

Provides clear when-to-use guidance ('when the user asks which exchanges are currently available'), but does not explicitly mention alternatives or exclusions.

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

get_market_statsA
Read-onlyIdempotent
Inspect

Use this when the user asks for aggregate market stats (positions, PNL, win rate), optionally scoped by source and period.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoTime period for closed position stats
sourceNoExchange filterall

Output Schema

ParametersJSON Schema
NameRequiredDescription
avgRoiNo
periodNo
winRateNoPercentage of closed positions in profit; null when none closed
byExchangeNoPer-exchange { totalPositions, openPositions }, keyed by exchange
realizedPnlNo
openPositionsNo
closedInPeriodNo
totalPositionsNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that the tool computes aggregate stats and supports optional filters, but it does not describe any additional behavioral traits such as exactly which stats are computed or how period affects results.

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

Conciseness5/5

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

The description is one concise, front-loaded sentence that immediately states when to use the tool and what it does. No filler or redundant restatement of the tool name.

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 this is a simple read-only aggregation tool with two optional parameters, a rich input schema with enums and defaults, and an output schema, the description is sufficient. It tells the agent what the tool offers and how the optional filters apply.

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

Parameters3/5

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

Schema coverage is 100% and both parameters have descriptions (period for closed position stats, source as exchange filter). The description's mention of scoping by source and period is consistent but does not add meaningful semantics beyond an already well-documented schema.

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

Purpose4/5

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

The description clearly identifies the tool as the one for aggregate market stats (positions, PNL, win rate), and the optional source/period scoping adds useful specificity. It doesn't explicitly contrast with sibling tools, but 'aggregate' and the stat types help differentiate it from get_positions, get_my_account, and get_signal_stats.

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

Usage Guidelines4/5

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

The description provides clear invocation guidance: use when the user asks for aggregate market stats, optionally scoped by source and period. It does not name alternative tools or explicitly say when not to use it, so it stops short of full guidance.

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

get_my_accountA
Read-only
Inspect

Use this when the user asks about THEIR OWN TraderSpy account: Hyperliquid balance, open positions, unrealized PnL, or paper-trading account. Read-only — this connector cannot place, close or modify orders, and cannot withdraw. Requires a personal MCP connection (key from traderspy.app Settings).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
paperNoPaper trading account, when enabled
tradingNoConnector capabilities: read-only. States that this connector cannot place orders or withdraw, and where the user trades instead
balancesNo{ accountValueUsd, withdrawableUsd }
setupUrlNoWhere to create a wallet, returned only when hasWallet is false
hasWalletNoFalse when the user has not created a Hyperliquid wallet yet
positionsNoOpen Hyperliquid positions

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already state readOnlyHint=true and destructiveHint=false. The description adds explicit behavioral detail beyond that: 'cannot place, close or modify orders, and cannot withdraw' and the connection requirement. This goes beyond merely restating the annotation, providing practical constraints an agent needs to know.

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 with a distinct purpose: usage scope, behavioral limitation, and prerequisite. No redundancy, and the key information is front-loaded in the first sentence. 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 zero-parameter tool with an output schema present, the description covers all necessary context: when to use, what it returns, limitations, and prerequisites. 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.

Parameters4/5

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

The tool has zero parameters and schema coverage is trivially 100%. Per the rubric, 0 params gets a baseline of 4. The description doesn't need to explain parameters, and it doesn't—no missed opportunity since there's nothing to explain.

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

Purpose5/5

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

The description clearly states the tool returns the user's own TraderSpy account information (balance, positions, PnL, paper-trading). It explicitly scopes to 'THEIR OWN' account, distinguishing it from sibling tools like get_positions that are not account-specific. The verb 'get' plus the resource is specific and unambiguous.

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

Usage Guidelines5/5

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

The first sentence gives an explicit usage condition: 'Use this when the user asks about THEIR OWN TraderSpy account.' It also notes read-only limitations and the prerequisite of a personal MCP connection. This clearly tells an agent when to invoke this tool vs alternatives, though it doesn't name specific sibling tools, the condition is sufficient.

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

get_positionsA
Read-onlyIdempotent
Inspect

Use this when the user asks for current or historical smart-money positions, optionally filtered by status, source, or symbol.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of positions to return
offsetNoOffset for pagination
sourceNoExchange filterall
statusNoPosition status filterall
symbolNoFilter by trading pair, e.g. BTC, ETHUSDT

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoSmart money positions across the tracked exchanges
paginationNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds the historical/current scope and filter capabilities, but does not describe return format or pagination behavior. Given the annotations cover the safety profile, the added context brings it to a moderate level.

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, well-structured sentence that front-loads the trigger ('Use this when') and fills in scope and filters. No wasted words.

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

Completeness4/5

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

Given the rich schema (all params with descriptions), strong annotations, and presence of an output schema, the description covers the essential purpose and use context. It lacks an explicit contrast with get_trader_position_history, which would make it more complete in a sibling-rich environment.

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 each parameter having a clear description. The description repeats the filter dimensions (status, source, symbol) without adding new meaning or format details, so it lands at the baseline for well-covered schemas.

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 specifies the tool retrieves smart-money positions, with scope (current/historical) and filter dimensions (status, source, symbol). This distinguishes it from the more specific sibling get_trader_position_history, though it does not explicitly name that alternative.

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: use when the user asks for current or historical smart-money positions, with optional filters. It lacks explicit exclusions or named alternatives, but the trigger condition and scope are well-defined.

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

get_priceA
Read-onlyIdempotent
Inspect

Get real-time price data for one or more crypto futures symbols. Returns current price, 24h high/low, volume, and 24h price change percentage.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsYesList of symbols to get prices for, e.g. ["BTCUSDT", "ETHUSDT"]

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false. The description aligns with these (fetches data, no writes). It adds behavioral detail about what data is returned (current price, high/low, volume, change), which is useful. However, it does not disclose details like rate limits, potential symbol validation, or handling of invalid symbols. With annotations covering the safety profile, the description adds some value but isn't rich on edge-case behaviors.

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

Conciseness5/5

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

The description is two sentences, front-loads the main purpose, and wastes no words. Every sentence provides value: the first defines the action, the second lists return data. It is appropriately concise for the complexity.

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

Completeness4/5

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

Given the tool's simplicity (one parameter, read-only, output schema exists), the description is complete enough for selection and invocation. It lists key return data. It does not describe all output schema fields, but the output schema likely covers that. Minor gap: no mention of error handling or symbol format beyond the example, but this is minor for a price-query 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?

The schema covers 100% of the one parameter ('symbols') with a description and example. The tool description adds context about what the data is used for (real-time price data) but does not add meaning beyond the schema's parameter description. Given high schema coverage, 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 states the tool's purpose: 'Get real-time price data for one or more crypto futures symbols.' It specifies the resource (price data), the action (get), and the scope (one or more symbols). It also lists the returned data points (current price, 24h high/low, volume, 24h change). This distinguishes it from siblings like get_candles or get_market_stats, which likely focus on different data types.

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 for fetching current prices, but does not explicitly state when to use this tool versus alternatives. For example, it doesn't say 'use this for live spot-price queries, use get_candles for OHLC history' or reference siblings. The context of 'real-time' and '24h' data gives some implicit guidance, but explicit differentiation or when-not-to-use scenarios are absent.

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

get_signal_detailsA
Read-onlyIdempotent
Inspect

Use this when the user needs full details for one AI signal by ID, including review and resolution data.

ParametersJSON Schema
NameRequiredDescriptionDefault
signalIdYesThe ID of the signal to retrieve

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoSignal id — pass to get_signal_details
coinNo
priceNoPrice when the signal triggered
actionNobuy or sell
historyNo
targetsNoTake-profit and stop levels: { label, type, pct }
aiReviewNo
createdAtNo
livePriceNoCurrent price, so the model can judge whether the signal still stands
timeframeNoChart timeframe the preset evaluated, e.g. 4h
importanceNohigh | medium | low
strategyNameNoPreset that produced the signal
signalStrengthNoweak | moderate | strong | very_strong
indicatorValuesNoIndicator readings at trigger time
resolutionStatusNopending | stop | tp1_hit | tp2_hit | tp3_hit | profit_locked | expired
triggeredConditionsNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds that it includes 'review and resolution data', which is useful but does not describe handling of missing IDs or response structure. This is comparable to the calibration example, where annotations cover safety and the description adds minimal behavior 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?

A single front-loaded sentence that immediately states purpose and includes the key constraint (by ID). Zero waste, effective for an agent.

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?

Simple tool with one param (100% schema coverage), read-only annotations, and an output schema available. The description tells the agent exactly what it returns (full details, review and resolution data) and the condition (by ID), which is complete for this type of lookup 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 coverage is 100% with the parameter 'signalId' described as 'The ID of the signal to retrieve'. The description reinforces that it's an ID-based lookup but does not add new semantics beyond what the schema already states. 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 explicitly states the action ('retrieve'), the resource ('one AI signal by ID'), and the scope ('full details... including review and resolution data'). It clearly distinguishes from listing signals, making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description opens with 'Use this when the user needs full details for one AI signal by ID', which is a clear usage trigger. However, it does not explicitly name alternative tools for listing signals or when to use them, though the phrasing implies a single-item retrieval by ID.

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

get_signalsA
Read-onlyIdempotent
Inspect

Use this when the user asks for recent public AI crypto trading signals, optionally filtered by coin, importance, or pagination. When the user names a count ("last 5 signals"), pass it as limit — the card view renders exactly what was fetched, so over-fetching shows more cards than the user asked for.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoFilter by coin symbol, e.g. BTC, ETH
skipNoOffset for pagination
limitNoNumber of signals to return
importanceNoFilter by signal importanceall

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoSignals, newest first
paginationNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false. The description adds key behavioral context beyond this: it explains the tool fetches 'recent public AI crypto trading signals' and crucially, it reveals a rendering constraint—the card view displays exactly what was fetched, which affects how parameters should be passed. This trades on the annotation safety profile while adding genuine value about the UI coupling.

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, zero fluff. The first sentence explains what the tool does and its filter options; the second explains a subtle parameter-mapping requirement with a concrete example ('last 5 signals' → limit). Every phrase 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?

This is a read-only, filtered-list tool with excellent annotations (readOnlyHint, idempotentHint, destructiveHint), a 100%-documented schema, and a clear sibling landscape (get_signal_details, get_signal_stats, get_market_stats). The description fills the one remaining gap—the UI coupling to the limit parameter—making this complete for an agent to invoke 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 description coverage is 100%, with every parameter already documented in the schema. The description adds value for the `limit` parameter by explaining that when the user names a count, it should be passed as `limit`—context not present in the schema. While it doesn't enumerate all parameters, the schema already does that job well, so the description appropriately focuses on the semantically important parameter.

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

Purpose5/5

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

The description clearly states what the tool does: 'Use this when the user asks for recent public AI crypto trading signals, optionally filtered by coin, importance, or pagination.' It includes specific filter dimensions and is distinguishable from sibling tools like get_signal_details and get_signal_stats by referring to 'public AI crypto trading 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 gives explicit when-to-use guidance: 'Use this when the user asks for recent public AI crypto trading signals...' It also provides a critical exclusion/edge case: when the user names a count, pass it as `limit` to avoid over-fetching, since 'the card view renders exactly what was fetched'. This behavior is unique to this tool and not covered by siblings, making the guidance highly actionable.

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

get_signal_statsA
Read-onlyIdempotent
Inspect

Use this when the user asks for aggregate AI signal performance statistics over a specific period.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoTime period for statistics24h

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalNoSignals published in the period
pendingNoStill open at the end of the period
stoppedNo
winRateNotargetHits / resolved, as a percentage; null when nothing resolved
highCountNoHigh-importance signals
targetHitsNoSignals that reached a take-profit or locked profit

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe read operation. The description adds the 'aggregate' and 'over a specific period' scoping, which is useful. However, it doesn't mention any additional behavioral details such as return format aggregation level, or performance implications. Given the annotations cover the safety profile, the description adds modest value beyond the structured data, so a score of 3 is appropriate.

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

Conciseness4/5

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

The description is a single sentence that is concise and front-loaded with the usage trigger. It earns its place by providing the primary use case. It could have been slightly more explicit about the output being aggregates, but it's efficient and appropriately sized.

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

Completeness4/5

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

Given the low complexity (1 optional parameter with enum), full schema coverage, and presence of an output schema, the description is sufficient to complete the tool's documentation. The output schema likely explains the return structure, so the description doesn't need to. The only minor gap is explicit differentiation from get_signal_details, but overall the tool is adequately complete.

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% (the only parameter 'period' is fully documented with enum and default). The description mentions 'specific period' but doesn't add format or usage details beyond the schema. The baseline for full coverage is 3, and the description doesn't meaningfully exceed it. The parameter is simple and self-explanatory from the enum values.

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

Purpose4/5

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

The description clearly states the tool's purpose: retrieving aggregate AI signal performance statistics for a specific period. It uses a specific verb-resource combination ('get ... signal performance statistics') and is distinguishable from siblings like get_signal_details (which likely returns individual signal details) and get_signals (which likely lists signals). However, it doesn't explicitly name a sibling alternative when to use another tool, so it doesn't maximize differentiation.

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 begins with explicit guidance: 'Use this when the user asks for aggregate AI signal performance statistics over a specific period.' This clearly tells the agent the trigger condition. It doesn't specify when not to use it or name alternatives like get_signal_details for individual signals, but the context is clear enough for an agent to select it appropriately.

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

get_technical_indicatorsA
Read-onlyIdempotent
Inspect

Technical analysis for a crypto futures symbol. 19 indicators: RSI, MACD, EMA, SMA, Bollinger Bands, ATR, ADX (+DI/−DI), Stochastic, OBV (with price divergence), VWAP, CCI, MFI, Williams %R, ROC, SuperTrend, Ichimoku, Keltner Channels, classic pivot points and swing support/resistance levels. Every indicator returns its current value, the previous bar, a rising/falling/flat direction, a short series history and — where it applies — zones and crossovers. EMA/SMA accept several periods at once (default 20/50/200); every period is overridable via periods. Pass intervals (up to 3) to get 1h/4h/1d in ONE call with a multi-timeframe confluence verdict. Each timeframe also carries a summary (bias, trend, momentum, volatility, volume, plain-language notes) computed from a fixed indicator set — quote its notes rather than the raw score.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesTrading pair symbol, e.g. BTCUSDT
historyNoPrior values returned per indicator as `series` (oldest → newest, length history + 1). 0 = latest only.
periodsNoOptional period overrides, e.g. {"ema":[9,21,55,200],"rsi":7}
intervalNoCandle timeframe. Ignored when `intervals` is given.1h
intervalsNoUp to 3 timeframes in ONE call (one quota unit), e.g. ["1h","4h","1d"]. The response then carries per-timeframe results plus a `confluence` verdict.
indicatorsNoIndicators to compute. `levels` = swing support/resistance from price structure, `pivots` = classic floor pivots from the previous day.

Output Schema

ParametersJSON Schema
NameRequiredDescription
priceNoLatest close on the primary timeframe, or null when no candles are stored
symbolNo
candlesNoClosed candles the primary timeframe was computed on
summaryNoSingle-timeframe call only: bias, score, trend, momentum, volatility, volume, notes[]. Omitted when `timeframes` is present.
intervalNoPrimary timeframe (the first requested one)
settingsNoEcho of what was computed: indicators, history, resolved periods
warningsNo
confluenceNoMulti-timeframe agreement: { aligned, bias, byInterval }
indicatorsNoSingle-timeframe call only: requested indicators keyed by name. Each carries value, previous, direction, series and indicator-specific fields (zone, crossover, stack, levels…); { value: null, reason: "insufficient_data" } when the tape is too short. Omitted when `timeframes` is present — read them there.
timeframesNoPresent when several intervals were requested: one { interval, price, candles, indicators, summary } per timeframe, in the requested order. The top-level indicators/summary are omitted in that case.
lastCandleOpenTimeNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the bar is lower. The description further details the return shape (current value, previous bar, rising/falling/flat direction, series history, zones/crossovers) and the multi-timeframe behavior producing a `confluence` verdict and per-timeframe `summary`. This meaningfully extends the annotation-only picture.

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?

Dense but well-arranged: purpose front-loaded, then return format, then parameter flexibility, then multi-timeframe guidance. Every sentence carries information, though the 19-indicator enumeration could arguably be compressed since the schema also lists them.

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 tool with 19 indicators, 6 params, and nested objects, the description covers return structure, period overrides, multi-timeframe behavior, and interpretation guidance (quote summary notes). An output schema exists, so return-value details needn't be in the description; what's present is sufficient for correct invocation.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds real value beyond the schema by explaining that EMA/SMA accept multiple periods at once (default 20/50/200), that every period is overridable via `periods`, and that `intervals` yields a multi-timeframe confluence result in one quota-efficient call.

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 ('Technical analysis for a crypto futures symbol') and enumerates 19 concrete indicators, from RSI/MACD to swing levels. An agent can immediately understand what this tool computes and how it differs from siblings like get_price or get_candles, which handle raw prices rather than analyzed indicators.

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?

Offers clear usage context: using `intervals` gets multiple timeframes in one call with a confluence verdict, and instructs the agent to 'quote its notes rather than the raw score' for the per-timeframe summary. However, it stops short of explicitly naming sibling alternatives or stating when NOT to use this tool versus get_price/get_candles.

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

get_top_tradersA
Read-onlyIdempotent
Inspect

Use this when the user wants ranked smart-money traders across supported exchanges with sorting and filtering.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of traders to return
orderNoSort directionDESC
sortByNoSort metric (defaults to ranking type)
sourceNoExchange to filter byall
timeRangeNoPerformance time range30D
rankingTypeNoRanking snapshot typeROI

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoRanked traders: source, topTraderId, traderName, roi, pnl, winRate, smartScore, rank, rankings[]

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds no behavioral details beyond what annotations provide, but it doesn't contradict them. With annotations present, a baseline of 3 is appropriate; the description adds minimal extra 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 that conveys the purpose and usage in a compact way. No fluff, no redundancy, every word 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?

The tool has an output schema, so return details are covered. The description covers the core use case with sorting/filtering mentioned. It's complete enough for a straightforward read-only query tool, though it could optionally note the ranking types or exchange scope, but these are in the 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 description coverage is 100%, with all 6 parameters fully documented including enums, defaults, and descriptions. The description itself adds no parameter details beyond what's in the schema, so baseline 3 is correct. It doesn't compensate further but also doesn't need to.

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

Purpose4/5

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

The description clearly states the tool returns ranked smart-money traders with sorting and filtering, which is a specific verb+resource. It distinguishes from siblings like get_elite_leaderboard by focusing on 'smart-money traders' and 'sorting and filtering', but it doesn't explicitly name alternatives.

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 an explicit trigger condition ('Use this when the user wants ranked smart-money traders...'), which is clear usage context. However, it doesn't provide when-not-to-use guidance or explicitly mention alternative tools, so it falls short of a 5.

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

get_tracked_symbolsA
Read-onlyIdempotent
Inspect

List all crypto futures symbols currently tracked by TraderSpy with real-time candle data available.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
symbolsNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by specifying that symbols are 'currently tracked' and have 'real-time candle data available,' which indicates the data is live and relevant to candle-related tools. This adds value beyond the annotations.

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

Conciseness5/5

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

The description is a single, concise sentence that immediately conveys the tool's function. It is front-loaded with the verb and resource, and contains no unnecessary words or redundant information. Perfectly appropriate length.

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

Completeness5/5

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

Given the tool's simplicity (no parameters, output schema exists), the description fully covers what the agent needs to know: that it lists tracked symbols with real-time candle data. The sibling tools are distinct, and the output schema handles return values. The description is sufficient for correct selection and 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, so the description need not explain any. Per the rubric, with 0 params the baseline is 4. The description adds no parameter specifics, but none are needed since the schema is empty and schema description coverage is 100%.

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

Purpose5/5

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

The description clearly states the purpose: 'List all crypto futures symbols currently tracked by TraderSpy with real-time candle data available.' It uses a specific verb (list) and resource (crypto futures symbols), and adds a distinguishing qualifier (tracked by TraderSpy, real-time candle data). This differentiates it from sibling tools like get_candles or get_price, which focus on specific symbols or data.

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 when you need an overview of tracked symbols, but it does not explicitly mention when to use this tool instead of alternatives like get_candles or get_market_stats. No exclusions or alternative recommendations are provided. The one-sentence description gives context but lacks explicit guidance.

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

get_trader_position_historyA
Read-onlyIdempotent
Inspect

Use this when the user asks for closed trade history of a specific trader.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
limitNoResults per page
sourceNoExchangebinance
traderIdYesThe trader ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoClosed positions, most recently closed first
paginationNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering most safety-relevant behavior. The description adds minimal behavioral context beyond the 'closed' trade history distinction, so it does not significantly enhance transparency beyond annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler or redundant phrasing. It states the exact trigger and scope efficiently, making it easy for an agent to quickly understand applicability.

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

Completeness4/5

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

Given the comprehensive input schema with 100% description coverage, output schema, and safety annotations, the single-sentence description is largely sufficient for a straightforward read-only paginated endpoint. It lacks explicit mention of pagination or ordering, but these are adequately covered by the structured schema data.

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

Parameters3/5

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

All four parameters are fully described in the input schema, including the meaning of traderId, page, limit, and source exchange. The description itself adds no parameter-level details, so the schema carries the full burden; the high schema coverage supports the baseline score.

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 explicitly states the tool is for retrieving closed trade history for a specific trader, providing a clear resource and scope. It distinguishes itself from sibling tools like get_positions (open positions) and get_trader_profile, though it does not name them explicitly.

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

Usage Guidelines4/5

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

The phrase 'Use this when...' gives clear contextual guidance for when to invoke the tool (closed trade history of a specific trader). It does not provide explicit exclusions or alternatives, but the context is specific enough to discourage misuse.

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

get_trader_profileA
Read-onlyIdempotent
Inspect

Use this when the user needs one trader profile, including metrics and latest positions.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoExchange the trader is onbinance
traderIdYesThe trader ID
timeRangeNoPerformance time range30D
rankingTypeNoRanking snapshot typeROI

Output Schema

ParametersJSON Schema
NameRequiredDescription
aumNo
mddNoMaximum drawdown
pnlNo
roiNo
rankNo
sourceNo
winRateNo
avatarUrlNo
positionsNoCurrently tracked positions
timeRangeNo
smartScoreNo
traderNameNo
rankingTypeNo
topTraderIdNo

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful scoping context ('metrics and latest positions') but doesn't go beyond what the annotations and output schema already convey. No contradiction.

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 efficiently communicates both the trigger condition and the tool's primary output scope.

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

Completeness4/5

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

Given the tool's simplicity, rich output schema, and strong annotations, the description is adequate and complete for selection. It could optionally note the relationship to get_trader_position_history, but that sibling already appears in the tool list and the description still covers key information.

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 provides full descriptions for all four parameters, so coverage is 100%. The description does not add extra parameter semantics, merely echoing the general content (metrics and positions) without detailing how parameters map to results.

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

Purpose5/5

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

The description clearly states the tool's purpose: retrieving a single trader profile including metrics and latest positions. The phrase 'one trader profile' distinguishes it from sibling list/leaderboard tools like get_top_traders and get_elite_leaderboard.

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 begins with 'Use this when the user needs one trader profile,' providing an explicit usage context. However, it does not mention exclusions or directly name alternative tools for other scenarios, so it falls just short of full when/when-not guidance.

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

screen_symbolsA
Read-onlyIdempotent
Inspect

Screen MANY crypto futures symbols at once on one timeframe — "which coins are oversold on 4h", "what is above its 200 EMA with rising volume", "show me squeezes". Give up to 3 AND-ed conditions from a fixed metric list (RSI, stochastic, CCI, MFI, Williams %R, ADX, ROC, MACD histogram, ATR%, volume ratio, Bollinger %B / width, price vs EMA, EMA spread, SuperTrend, change %, price) with lt / gt / crossAbove / crossBelow. Scans the most-traded symbols by 24h volume (default 50, max 100) or an explicit list; every row carries the metric values plus bias, trend, RSI, ADX, ATR% and 24h change. With NO conditions and explicit symbols it is a side-by-side comparison table ("compare BTC, ETH, SOL"). ONE quota unit however many symbols — always prefer this over calling get_technical_indicators in a loop.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoRows to return
sortByNovolume (24h quote volume), change24h, or metric (the first condition's metric). Default: metric when conditions are given, else volume.
symbolsNoExplicit symbols to scan (≤ 100, e.g. ["BTC","ETH","SOL"]). Omit to scan the most-traded symbols instead. With no `conditions`, every listed symbol is returned as a comparison table.
intervalNoCandle timeframe to evaluate on4h
universeNoHow many of the most-traded symbols (by 24h volume) to scan when `symbols` is omitted (max 100)
sortOrderNodesc
conditionsNoUp to 3 conditions, AND-ed. Examples: RSI oversold = {"metric":"rsi","op":"lt","value":30}; above the 200 EMA = {"metric":"priceVsEma","op":"gt","value":0,"period":200}; golden cross = {"metric":"emaSpread","op":"crossAbove","value":0,"period":50,"period2":200}; MACD bullish cross = {"metric":"macdHistogram","op":"crossAbove","value":0}; dumped 5% in a day = {"metric":"changePct","op":"lt","value":-5,"period":24}.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sortByNo
matchedNoSymbols satisfying every condition (all scanned symbols when no conditions)
resultsNoOne row per matching symbol: { symbol, price, change24hPct, volume24hUsd, values { "<metric label>": value }, bias, trend, rsi14, adx14, atrPct, volumeRatio, squeeze }
intervalNo
returnedNo
universeNo{ source: top_by_volume | explicit, requested, scanned, missing[] }
warningsNo
sortOrderNo
conditionsNoHuman-readable conditions, e.g. "RSI(14) < 30"

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover read-only and non-destructive behavior, so the description's job is lighter. It adds useful behavioral context: scans top symbols by 24h volume with a default of 50 and max of 100, 'ONE quota unit however many symbols', and a description of what each row carries. This goes beyond the annotations without contradicting them.

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

Conciseness4/5

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

The description is one dense paragraph, but every sentence carries distinct information: purpose/examples, condition syntax, universe and row contents, comparison mode, and quota/alternative. It is front-loaded with the core purpose and not bloated, though it could be broken into clearer sentences or bullets.

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

Completeness5/5

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

Given the tool's complexity (7 parameters, nested conditions, metric options), the description covers the essential operational aspects: both usage modes, default universe, row contents, quota cost, and the preferred alternative. The output schema and annotations fill the remaining details such as sorting, limit, and safety, so nothing critical 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 high (86%), so the baseline applies. The description largely restates what the schema already documents: the metric list, lt/gt/crossAbove/crossBelow operators, and the comparison-table behavior are all in the schema. It adds little new per-parameter meaning beyond what an agent would already see in the structured spec.

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: 'Screen MANY crypto futures symbols at once on one timeframe'. It further specifies the metric list, operators, and example queries, making the tool's purpose unmistakable. It also clearly differentiates from the sibling get_technical_indicators by emphasizing multi-symbol screening versus per-symbol loops.

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 names the alternative and gives a preference rule: 'always prefer this over calling get_technical_indicators in a loop'. It also defines when the comparison-table mode applies ('With NO conditions and explicit `symbols`'), giving agents clear conditions for selecting between modes.

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
    • Addedbacktest_condition
    • Addedscreen_symbols
  2. 1 tool update
    • Addedget_derivatives
  3. 1 tool update
    • Changedget_technical_indicators3 fields changed
      • changedOutput schema / properties / indicators / description
        Previous value: -"Requested indicators keyed by name (primary timeframe). Each carries value, previous, direction, series and indicator-specific fields (zone, crossover, stack, levels…); { value: null, reason: \"insufficient_data\" } when the tape is too short."New value: +"Single-timeframe call only: requested indicators keyed by name. Each carries value, previous, direction, series and indicator-specific fields (zone, crossover, stack, levels…); { value: null, reason: \"insufficient_data\" } when the tape is too short. Omitted when `timeframes` is present — read them there."
      • changedOutput schema / properties / summary / description
        Previous value: -"Interpretation layer: bias, score, trend, momentum, volatility, volume, notes[]"New value: +"Single-timeframe call only: bias, score, trend, momentum, volatility, volume, notes[]. Omitted when `timeframes` is present."
      • changedOutput schema / properties / timeframes / description
        Previous value: -"Present when several intervals were requested: one { interval, price, indicators, summary } per timeframe"New value: +"Present when several intervals were requested: one { interval, price, candles, indicators, summary } per timeframe, in the requested order. The top-level indicators/summary are omitted in that case."
  4. 1 tool update
    • Changedget_technical_indicators17 fields changed
      • addedInput schema / properties / history
        Added value: +{
        +  "default": 5,
        +  "description": "Prior values returned per indicator as `series` (oldest → newest, length history + 1). 0 = latest only.",
        +  "maximum": 20,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedInput schema / properties / indicators / description
        Previous value: -"Technical indicators to compute"New value: +"Indicators to compute. `levels` = swing support/resistance from price structure, `pivots` = classic floor pivots from the previous day."
      • changedInput schema / properties / indicators / items / enum
        Previous value: -[
        -  "rsi",
        -  "macd",
        -  "ema",
        -  "sma",
        -  "bollinger",
        -  "atr",
        -  "adx",
        -  "stochastic",
        -  "obv",
        -  "vwap",
        -  "cci",
        -  "mfi",
        -  "williamsR"
        -]New value: +[
        +  "rsi",
        +  "macd",
        +  "ema",
        +  "sma",
        +  "bollinger",
        +  "atr",
        +  "adx",
        +  "stochastic",
        +  "obv",
        +  "vwap",
        +  "cci",
        +  "mfi",
        +  "williamsR",
        +  "roc",
        +  "supertrend",
        +  "ichimoku",
        +  "keltner",
        +  "pivots",
        +  "levels"
        +]
      • changedInput schema / properties / indicators / maxItems
        Previous value: -13New value: +19
      • changedInput schema / properties / interval / description
        Previous value: -"Candle interval/timeframe"New value: +"Candle timeframe. Ignored when `intervals` is given."
      • addedInput schema / properties / intervals
        Added value: +{
        +  "description": "Up to 3 timeframes in ONE call (one quota unit), e.g. [\"1h\",\"4h\",\"1d\"]. The response then carries per-timeframe results plus a `confluence` verdict.",
        +  "items": {
        +    "enum": [
        +      "1m",
        +      "5m",
        +      "15m",
        +      "1h",
        +      "4h",
        +      "1d"
        +    ],
        +    "type": "string"
        +  },
        +  "maxItems": 3,
        +  "minItems": 1,
        +  "type": "array"
        +}
      • addedInput schema / properties / periods
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Optional period overrides, e.g. {\"ema\":[9,21,55,200],\"rsi\":7}",
        +  "properties": {
        +    "adx": {
        +      "description": "ADX period (default 14)",
        +      "maximum": 500,
        +      "minimum": 2,
        +      "type": "integer"
        +    },
        +    "atr": {
        +      "description": "ATR period (default 14)",
        +      "maximum": 500,
        +      "minimum": 2,
        +      "type": "integer"
        +    },
        +    "bollinger": {
        +      "description": "Bollinger period (default 20)",
        +      "maximum": 500,
        +      "minimum": 2,
        +      "type": "integer"
        +    },
        +    "bollingerStdDev": {
        +      "description": "Bollinger std-dev multiplier (default 2)",
        +      "maximum": 5,
        +      "minimum": 0.5,
        +      "type": "number"
        +    },
        +    "cci": {
        +      "description": "CCI period (default 20)",
        +      "maximum": 500,
        +      "minimum": 2,
        +      "type": "integer"
        +    },
        +    "ema": {
        +      "description": "EMA periods, up to 4 (default [20, 50, 200])",
        +      "items": {
        +        "maximum": 500,
        +        "minimum": 2,
        +        "type": "integer"
        +      },
        +      "maxItems": 4,
        +      "minItems": 1,
        +      "type": "array"
        +    },
        +    "keltner": {
        +      "description": "Keltner EMA period (default 20)",
        +      "maximum": 500,
        +      "minimum": 2,
        +      "type": "integer"
        +    },
        +    "keltnerAtr": {
        +      "description": "Keltner ATR period (default 10)",
        +      "maximum": 500,
        +      "minimum": 2,
        +      "type": "integer"
        +    },
        +    "keltnerMultiplier": {
        +      "description": "Keltner ATR multiplier (default 2)",
        +      "maximum": 10,
        +      "minimum": 0.5,
        +      "type": "number"
        +    },
        +    "macdFast": {
        +      "description": "MACD fast EMA (default 12)",
        +      "maximum": 500,
        +      "minimum": 2,
        +      "type": "integer"
        +    },
        +    "macdSignal": {
        +      "description": "MACD signal EMA (default 9)",
        +      "maximum": 500,
        +      "minimum": 2,
        +      "type": "integer"
        +    },
        +    "macdSlow": {
        +      "description": "MACD slow EMA (default 26)",
        +      "maximum": 500,
        +      "minimum": 2,
        +      "type": "integer"
        +    },
        +    "mfi": {
        +      "description": "MFI period (default 14)",
        +      "maximum": 500,
        +      "minimum": 2,
        +      "type": "integer"
        +    },
        +    "obv": {
        +      "description": "OBV averaging window (default 20)",
        +      "maximum": 500,
        +      "minimum": 2,
        +      "type": "integer"
        +    },
        +    "roc": {
        +      "description": "Rate-of-change period (default 12)",
        +      "maximum": 500,
        +      "minimum": 2,
        +      "type": "integer"
        +    },
        +    "rsi": {
        +      "description": "RSI period (default 14)",
        +      "maximum": 500,
        +      "minimum": 2,
        +      "type": "integer"
        +    },
        +    "sma": {
        +      "description": "SMA periods, up to 4 (default [20, 50, 200])",
        +      "items": {
        +        "maximum": 500,
        +        "minimum": 2,
        +        "type": "integer"
        +      },
        +      "maxItems": 4,
        +      "minItems": 1,
        +      "type": "array"
        +    },
        +    "stochastic": {
        +      "description": "Stochastic %K period (default 14)",
        +      "maximum": 500,
        +      "minimum": 2,
        +      "type": "integer"
        +    },
        +    "stochasticSignal": {
        +      "description": "Stochastic %D smoothing (default 3)",
        +      "maximum": 500,
        +      "minimum": 2,
        +      "type": "integer"
        +    },
        +    "supertrend": {
        +      "description": "SuperTrend ATR period (default 10)",
        +      "maximum": 500,
        +      "minimum": 2,
        +      "type": "integer"
        +    },
        +    "supertrendMultiplier": {
        +      "description": "SuperTrend ATR multiplier (default 3)",
        +      "maximum": 10,
        +      "minimum": 0.5,
        +      "type": "number"
        +    },
        +    "vwap": {
        +      "description": "Rolling VWAP window in bars (default 48)",
        +      "maximum": 500,
        +      "minimum": 2,
        +      "type": "integer"
        +    },
        +    "williamsR": {
        +      "description": "Williams %R period (default 14)",
        +      "maximum": 500,
        +      "minimum": 2,
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
      • addedOutput schema / properties / candles
        Added value: +{
        +  "description": "Closed candles the primary timeframe was computed on",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / confluence
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Multi-timeframe agreement: { aligned, bias, byInterval }"
        +}
      • changedOutput schema / properties / indicators / description
        Previous value: -"Requested indicators keyed by name; shape differs per indicator"New value: +"Requested indicators keyed by name (primary timeframe). Each carries value, previous, direction, series and indicator-specific fields (zone, crossover, stack, levels…); { value: null, reason: \"insufficient_data\" } when the tape is too short."
      • addedOutput schema / properties / interval / description
        Added value: +"Primary timeframe (the first requested one)"
      • addedOutput schema / properties / lastCandleOpenTime
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "format": "date-time",
        +          "type": "string"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • changedOutput schema / properties / price / description
        Previous value: -"Latest close, or null when no candles are stored"New value: +"Latest close on the primary timeframe, or null when no candles are stored"
      • addedOutput schema / properties / settings
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Echo of what was computed: indicators, history, resolved periods"
        +}
      • addedOutput schema / properties / summary
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Interpretation layer: bias, score, trend, momentum, volatility, volume, notes[]"
        +}
      • addedOutput schema / properties / timeframes
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {},
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Present when several intervals were requested: one { interval, price, indicators, summary } per timeframe"
        +}
      • addedOutput schema / properties / warnings
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
  5. 1 tool update
    • Changedget_my_account1 field changed
      • changedOutput schema / properties / trading / description
        Previous value: -"Whether agent trading is enabled, plus the server-side caps that apply"New value: +"Connector capabilities: read-only. States that this connector cannot place orders or withdraw, and where the user trades instead"
  6. 15 tool updates
    • First observedget_candles
    • First observedget_elite_leaderboard
    • First observedget_exchanges
    • First observedget_market_stats
    • First observedget_my_account
    • First observedget_positions
    • First observedget_price
    • First observedget_signal_details
    • First observedget_signal_stats
    • First observedget_signals
    • First observedget_technical_indicators
    • First observedget_top_traders
    • First observedget_tracked_symbols
    • First observedget_trader_position_history
    • First observedget_trader_profile

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables detection and analysis of pre-public product launches through web search, content extraction, AI-powered scoring, and automated alerting. Provides comprehensive tools for surfacing stealth startup signals before they trend publicly.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Analyze LinkedIn & email outreach campaigns, track pipeline performance, and review lead conversations for RevOps, Sales Managers, and SDR teams.
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources