TraderSpy follows thousands of top-ranked accounts on four exchanges and records their positions as they open, change and close. This skill turns that feed into answers about positioning and about individual traders. Positions are observations of what other people did with their own money — present them as evidence, never as instructions.
@traderspy-technical-analysis), and not for AI signals (@traderspy-trading-signals).| Tool | Use it for | Key arguments |
|---|---|---|
get_elite_leaderboard |
The cross-exchange top 10 by smart score, with the scoring rationale | none |
get_top_traders |
Ranked traders per exchange and window | source all / binance / hyperliquid / bybit / okx, timeRange 24h / 3D / 7D / 30D, rankingType ROI / PNL, sortBy ROI / PNL / SCORE, limit ≤ 200 |
get_positions |
The position feed | status open / closed / all, source, symbol, limit ≤ 50, offset |
get_trader_profile |
One trader: metrics + latest positions | traderId AND source (see below), timeRange, rankingType |
get_trader_position_history |
One trader's closed trades, paged | traderId, source, page, limit ≤ 50 |
get_market_stats |
Aggregate counts and PnL across all tracked positions | source, period 4h / 8h / 24h / 7d |
get_exchanges |
Which exchanges are currently tracked | none |
Always pass source with a trader id. get_trader_profile and get_trader_position_history
default to Binance; a Hyperliquid address (0x…) or an OKX id looked up on the wrong exchange
returns nothing. Take source from the row you got the id from.
Symbols differ per exchange. Hyperliquid rows use bare coins (BTC, ZEC) and prefix
tokenized stocks with xyz: (xyz:AVGO); Binance, Bybit and OKX rows use BTCUSDT. When the
user asks about "BTC positions", pass symbol: "BTC" — the filter matches both BTC and
BTCUSDT exactly — and read the symbol field before summing anything. Tokenized stocks
(xyz:AVGO) are not reachable through the filter; fetch without symbol and pick them out.
Position rows: side LONG / SHORT, size in coins, entryPrice, markPrice, leverage,
unrealizedPnl (open rows) or pnl + roi (closed rows), openTime / closeTime, isOpen,
lastEvent (increase, partial_close, or null when the last change was the open itself). Notional ≈ size × markPrice; use
notional, not row count, when you say "whales are net long".
Freshness. Binance and Bybit snapshots refresh every 5–15 minutes, Hyperliquid every 15 minutes
plus live fills, OKX every 10–60 minutes. On a free-tier key the feed is delayed 15 minutes — if
get_positions returns nothing newer than that, say the feed is delayed rather than "no activity".
Leaderboard rows (get_top_traders) carry the exchange's own ranking snapshot: roi, pnl,
assets (account size), winRate (null on Hyperliquid — the exchange does not publish it),
rankings[] with the same trader across every window, and smartScore when TraderSpy has scored
them. traderName is a shortened address when the account has no public name. A trader who is
#1 on 30-day ROI with assets of $5k is a different animal from #19 with $3.4M — quote both.
Smart score (get_elite_leaderboard, 0–100, recomputed daily): realized PnL 30% (all-time
blended with the last 30 days), effective win rate 22%, ROI edge 18%, consistency 14%, longevity
10%, trade depth 6%, plus a recency bonus (up to +9) and a staleness penalty (down to −12 after
about three weeks idle). scoreBreakdown shows each part, rationale[] is a ready-made
plain-language justification, metrics has the raw counts (closedTrades, profitFactor,
realizedPnl30d, openPositionCount, worstDayPnl). reliabilityMultiplier below 1 means a
short history dragged the score down — say so when a 6-day-old account ranks top-5.
Market stats aggregate every tracked position, thousands of them, so realizedPnl can be a
large negative number even when the leaders are winning; the tracked universe includes traders
who fell off the leaderboard. Use it for counts and the exchange split, not as "smart money is
losing".
"What are whales doing in SOL?" → get_positions with symbol, status: open, limit 50.
Sum notional by side, name the largest two or three accounts with entry and leverage, and note
how recent the newest entries are. If open rows are few, add status: closed for the last day to
show whether they have been exiting.
"Who are the best traders right now?" → get_elite_leaderboard first (it is cross-exchange
and score-based), then get_top_traders for a specific exchange or window if the user wants raw
ROI/PnL. Explain that 7-day ROI rankings reward one lucky week; the smart score is built to
penalise exactly that.
"Should I copy trader X?" / "Research this trader" → get_trader_profile + one or two pages of
get_trader_position_history. From the history compute what the user actually needs: win rate
from closed rows, typical hold time (closeTime − openTime), typical leverage, how concentrated
in one coin, worst single trade, and whether the recent month looks like the all-time record.
Present it as a profile. Copying is the user's decision — this connector cannot follow anyone.
"Are the pros long or short?" (whole market) → get_positions status: open on the majors
plus get_market_stats; for exchange-wide long/short ratios of ALL accounts use
get_derivatives from technical-analysis instead, which answers that directly.
Positions: one row per position —
| Trader | Exchange | Side | Size (notional) | Entry | Mark | Lev | uPnL | Opened |
Traders: name, exchange, score or rank, window, ROI, PnL, account size, win rate (or "n/a" on Hyperliquid), then the two-line rationale. Lead with the number that answers the question, keep addresses shortened as returned, and always say which window a ROI belongs to.
For exchange-specific quirks and refresh cadences read references/exchange-notes.md.
What are the top traders long and short right now?
What are whales doing in SOL?
Who is at the top of the Hyperliquid leaderboard right now, and what are they positioned in? Then show me the position history of the top one.
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.@traderspy-technical-analysis (called technical-analysis in the text above, its upstream ID) - get_derivatives for exchange-wide funding, open interest and long/short ratios@traderspy-trading-signals - AI signals rather than trader positions