One good read of a chart is three things in order: where price is in its structure (trend and levels), what momentum and volatility are doing, and how the derivatives market is positioned around it. TraderSpy gives all three in at most two calls. Spend the calls well — the user's quota is finite — and quote the numbers, not adjectives.
@traderspy-market-screener; for whale positions use @traderspy-smart-money.| Tool | Use it for | Key arguments |
|---|---|---|
get_technical_indicators |
The chart read | symbol, intervals (≤ 3) or interval, indicators (≤ 19), periods, history 0–20 |
get_derivatives |
Funding, open interest, positioning | symbols (≤ 5 Binance USDⓈ-M perps; bare BTC is fine) |
get_price |
Live price, 24h high/low/volume/change | symbols (≤ 20) |
get_candles |
Raw OHLCV | symbol, interval 1m/5m/15m/1h/4h/1d, limit ≤ 500 |
get_tracked_symbols |
Coverage check | none — only when a symbol returns no data |
Symbols are Binance Futures names: BTCUSDT, SOLUSDT, 1000PEPEUSDT (1000x-prefixed small
caps), and tokenized equities/ETFs such as AAPLUSDT or SPYUSDT. Append USDT to a bare coin.
Hyperliquid-only perps (e.g. HYPE) are tracked under the same naming.
intervals: ["1h","4h","1d"] (or ["15m","1h","4h"] for an intraday user) and get a
confluence verdict — never three separate calls.rsi, macd, ema, bollinger covers momentum and
trend. Add levels + pivots whenever the user cares about entries, targets or "where is
support"; atr for stop distance and volatility; adx for trend strength; supertrend for a
clean trend state; obv / mfi when volume confirmation matters; ichimoku / keltner only
when asked. Eight to ten well-chosen indicators is a full read; all 19 is noise.periods lets you honour the user's settings ({"ema":[9,21,55,200],"rsi":7}); an unknown
key is rejected, so use the documented names only.get_derivatives when the question involves "why is it moving", crowding, funding,
open interest, leverage, liquidations, or when the user is about to lean on a directional call —
candles cannot see positioning.get_candles is for when the user wants the data itself (to chart, export or compute something
custom). Do not fetch candles to eyeball indicators the technicals tool already computes.Shape. One timeframe → top-level indicators + summary. Several → timeframes[] (each
with interval, price, candles, indicators, summary) plus confluence { aligned, bias, byInterval }; the top-level interval/price then name the first timeframe only. settings
echoes what was computed; warnings[] lists anything that was thinned or missing.
Every indicator carries value, previous, direction (rising / falling / flat) and a short
series (oldest → newest), plus its own fields — zone on RSI/Stochastic/CCI/MFI/Williams,
crossover on MACD/Stochastic, stack/pricePosition on EMA, ±DI and strength on ADX,
trend/flipped/barsSinceFlip on SuperTrend, divergence on RSI/MACD/OBV. { value: null, reason: "insufficient_data" } means the tape is too short for that period — say so, do not
substitute.
summary is the spine of the read. bias (bullish / bearish / neutral) is computed from a
FIXED set (RSI 14, MACD, EMA 20/50/200, ADX 14, ATR 14, BB 20/2, volume 20) regardless of what
you requested, so it is comparable between calls; score is its internal vote (|score| ≥ 30 sets
a bias). trend (direction, strength, emaStack, priceVsEma200), momentum (rsiZone, macdState),
volatility (atrPct, atrPercentile 0–100, squeeze, state), volume.ratioVsAverage, patterns[]
(candlestick finders on the last two bars) and notes[] — plain-language sentences written to be
quoted. Build the answer from the notes, then add the numbers.
levels (nearest three per side from swing highs/lows over 300 bars): price, touches,
distancePct; range.positionPct (0 = at the low of the lookback, 100 = at the high);
fibonacci (the dominant leg with retracedPct and the nearest level above/below);
volumeProfile (poc, value area, pricePosition). pivots are classic floor pivots from
the previous DAILY candle whatever the timeframe. Together they give you a levels table; distance
in % is what a user can act on.
confluence.aligned is true only when every timeframe with data agrees on a non-neutral bias.
"Aligned bearish on 1h/4h/1d" is a strong statement; "4h bullish, 1d neutral" is a pullback
question. Say which.
Derivatives (get_derivatives): funding.label — extreme_longs_paying / longs_paying /
neutral / shorts_paying / extreme_shorts_paying (longs pay at ≥ +0.03% per 8h, extreme at
≥ +0.10%; shorts pay at ≤ −0.01%, extreme at ≤ −0.05%; Binance's baseline is +0.01%; quote
annualizedPct); openInterest.regime — new_longs / short_covering / new_shorts /
long_liquidation / flat (needs ≥ 1% OI and ≥ 0.5% price change over 24h);
positioning.label — long_heavy (long/short ratio ≥ 1.5, i.e. ≥ 60% long) / balanced /
short_heavy (≤ 0.67, i.e. ≤ 40% long), read from the top-trader POSITION ratio first;
takerBuySellRatio is the last hour's aggressor flow. Data is at most 60 s old. notes[] are
quotable. Details in references/derivatives-guide.md.
For a single-coin read ALWAYS use this order, and keep it to what the user asked:
Use RSI(14) 41.3 — neutral, falling style labelling so the period and the direction are always
visible. Percentages to one decimal; prices to the precision the tool returned.
insufficient_data or a symbol is not
tracked, say so instead of estimating.Per-indicator fields and conventional readings: references/indicator-guide.md.
Analyse BTC on the 1h, 4h and 1d with funding and open interest.
Is SOL overbought? Where are the nearest support and resistance levels?
Where is the 200 EMA on ETH, and is funding stretched?
https://mcp.traderspy.app/mcp, Streamable HTTP), authorized with OAuth or a personal key from https://traderspy.app/mcp. A free TraderSpy account is enough. Without the server the skill has no data to work from.BTCUSDT, 1000PEPEUSDT). get_derivatives covers Binance USDⓈ-M perpetuals, up to five per call.@traderspy-market-screener - many coins at once, and backtests of a condition@traderspy-smart-money - what tracked top traders hold@traderspy-position-check - the same read applied to an open position