opencode-skills-collection 4.0.74 → 4.0.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +16 -1
  2. package/bundled-skills/claude-api/SKILL.md +4 -4
  3. package/bundled-skills/claude-api/curl/examples.md +5 -5
  4. package/bundled-skills/claude-api/java/claude-api.md +1 -1
  5. package/bundled-skills/claude-api/php/claude-api.md +2 -2
  6. package/bundled-skills/claude-api/python/claude-api/README.md +13 -13
  7. package/bundled-skills/claude-api/python/claude-api/batches.md +3 -3
  8. package/bundled-skills/claude-api/python/claude-api/files-api.md +3 -3
  9. package/bundled-skills/claude-api/python/claude-api/streaming.md +6 -6
  10. package/bundled-skills/claude-api/python/claude-api/tool-use.md +19 -19
  11. package/bundled-skills/claude-api/ruby/claude-api.md +3 -3
  12. package/bundled-skills/claude-api/shared/error-codes.md +2 -2
  13. package/bundled-skills/claude-api/shared/live-sources.md +1 -1
  14. package/bundled-skills/claude-api/shared/models.md +4 -4
  15. package/bundled-skills/claude-api/shared/tool-use-concepts.md +2 -2
  16. package/bundled-skills/claude-api/typescript/claude-api/README.md +12 -12
  17. package/bundled-skills/claude-api/typescript/claude-api/batches.md +2 -2
  18. package/bundled-skills/claude-api/typescript/claude-api/files-api.md +1 -1
  19. package/bundled-skills/claude-api/typescript/claude-api/streaming.md +4 -4
  20. package/bundled-skills/claude-api/typescript/claude-api/tool-use.md +14 -14
  21. package/bundled-skills/electron-drive-skill/LICENSE +21 -0
  22. package/bundled-skills/electron-drive-skill/README.md +172 -0
  23. package/bundled-skills/electron-drive-skill/SKILL.md +237 -0
  24. package/bundled-skills/electron-drive-skill/drive.config.json.example +10 -0
  25. package/bundled-skills/electron-drive-skill/package.json +28 -0
  26. package/bundled-skills/electron-drive-skill/scripts/daemon.mjs +352 -0
  27. package/bundled-skills/electron-drive-skill/scripts/drive.mjs +250 -0
  28. package/bundled-skills/electron-drive-skill/scripts/lib.mjs +165 -0
  29. package/bundled-skills/electron-drive-skill/scripts/lib.test.mjs +56 -0
  30. package/bundled-skills/jev-social/SKILL.md +5 -5
  31. package/bundled-skills/lintlang-audit/SKILL.md +100 -0
  32. package/bundled-skills/mcp-dependency-drift-audit/SKILL.md +169 -0
  33. package/bundled-skills/nexrad-mosaic-access/SKILL.md +297 -0
  34. package/bundled-skills/nexrad-mosaic-construction/SKILL.md +277 -0
  35. package/bundled-skills/nexrad-product-access/SKILL.md +258 -0
  36. package/bundled-skills/nexrad-radar-visualization/SKILL.md +318 -0
  37. package/bundled-skills/radar-satellite-analysis/SKILL.md +314 -0
  38. package/bundled-skills/system-prompt-lookup/SKILL.md +188 -0
  39. package/bundled-skills/traderspy-market-briefing/SKILL.md +132 -0
  40. package/bundled-skills/traderspy-market-screener/SKILL.md +182 -0
  41. package/bundled-skills/traderspy-market-screener/references/condition-cookbook.md +70 -0
  42. package/bundled-skills/traderspy-position-check/SKILL.md +130 -0
  43. package/bundled-skills/traderspy-position-check/references/risk-math.md +60 -0
  44. package/bundled-skills/traderspy-smart-money/SKILL.md +151 -0
  45. package/bundled-skills/traderspy-smart-money/references/exchange-notes.md +40 -0
  46. package/bundled-skills/traderspy-technical-analysis/SKILL.md +162 -0
  47. package/bundled-skills/traderspy-technical-analysis/references/derivatives-guide.md +57 -0
  48. package/bundled-skills/traderspy-technical-analysis/references/indicator-guide.md +47 -0
  49. package/bundled-skills/traderspy-trading-signals/SKILL.md +156 -0
  50. package/bundled-skills/traderspy-trading-signals/references/signal-fields.md +64 -0
  51. package/bundled-skills/unified-ai-gateway/SKILL.md +58 -16
  52. package/package.json +1 -1
  53. package/skills_index.json +657 -358
@@ -0,0 +1,130 @@
1
+ ---
2
+ name: traderspy-position-check
3
+ description: "Health-check crypto futures positions the user describes, with TraderSpy data: liquidation and stop distance, multi-timeframe read, funding and top-trader side. Reports only; never tells the user to close or add."
4
+ category: finance
5
+ risk: safe
6
+ source: "https://github.com/target1m/traderspy-mcp/tree/069aae5a84640d671f92705a2e3bc0b62efca1e0/skills/position-check"
7
+ source_repo: target1m/traderspy-mcp
8
+ source_type: official
9
+ date_added: "2026-09-25"
10
+ author: target1m
11
+ tags: [traderspy, crypto, risk-management, futures, mcp]
12
+ tools: [claude, cursor, gemini]
13
+ license: MIT
14
+ license_source: "https://github.com/target1m/traderspy-mcp/blob/069aae5a84640d671f92705a2e3bc0b62efca1e0/LICENSE"
15
+ ---
16
+
17
+ # TraderSpy Position Check
18
+
19
+ A position check answers, in order: how much room is left before this position is taken away
20
+ (liquidation), how much before the user's own plan says it is wrong (stop), what the chart and
21
+ the derivatives market are doing around it, and who else is positioned the same way. Report those
22
+ facts with numbers. The decision — hold, trim, close, add — belongs to the person whose money it
23
+ is.
24
+
25
+ ## When to Use
26
+
27
+ - Use when the user asks "how's my position", "am I in trouble", "how far am I from liquidation", "should I hold or close" or "review my trades", or asks what you think of their long or short.
28
+ - Use when the user pastes or describes a position, for example "I'm long ETH from 2,400 at 10x".
29
+ - The skill reports and explains. It never tells the user to close, add, hedge or move a stop, and it cannot trade.
30
+
31
+ ## Inputs
32
+
33
+ The position always comes from the user. TraderSpy has no account tool: it cannot read a balance
34
+ or an open position on any exchange, so never offer to "check the account".
35
+
36
+ Ask for whatever is missing among side, entry, leverage (and stop / target / the exchange's
37
+ liquidation price if they have them). Size is optional — the analysis works in percentages. The
38
+ current price is the `price` that `get_technical_indicators` returns.
39
+
40
+ Map the symbol to Binance naming for the data tools: `BTC` → `BTCUSDT`, `kPEPE` → `1000PEPEUSDT`,
41
+ `xyz:AVGO` → `AVGOUSDT`.
42
+
43
+ ## Calls per position (keep it to what matters)
44
+
45
+ 1. `get_technical_indicators` — `intervals: ["1h","4h","1d"]`, `indicators: ["rsi","macd","ema",
46
+ "atr","adx","supertrend","levels"]`. One call. This gives the trend on three timeframes, ATR
47
+ for stop sanity and the nearest levels.
48
+ 2. `get_derivatives` — up to five coins in ONE call for all positions at once. Funding is a cost
49
+ or an income for this position; the OI regime says whether the move is being funded.
50
+ 3. `get_positions` — `symbol`, `status: "open"`, `limit: 20`. Optional; skip on a tight quota.
51
+ Tells you whether tracked top traders are on the same side.
52
+
53
+ Three positions ≈ 3 + 1 (+3) calls. If the quota is tight, do derivatives for all coins first,
54
+ then technicals for the position with the smallest liquidation distance.
55
+
56
+ ## The math (show it, briefly)
57
+
58
+ - P&L % on margin = (mark − entry) / entry × leverage, sign-flipped for shorts; P&L % on price =
59
+ the same without leverage. State both when leverage > 1.
60
+ - Distance to liquidation = |liq − mark| / mark. With no liquidation price from the user, approximate:
61
+ ≈ 100 / leverage % minus a maintenance buffer (say it is approximate; cross margin makes the
62
+ real distance depend on the whole account).
63
+ - Distance to stop = |stop − mark| / mark, and stop distance in ATRs = |stop − mark| / ATR(14) on
64
+ the 4h. Under 1 ATR means the stop sits inside normal noise for that timeframe.
65
+ - Funding per day ≈ `funding.ratePct` × 3 on notional; positive rate costs longs and pays shorts.
66
+
67
+ Bands for the liquidation distance: ≤ 5% →
68
+ "at risk", ≤ 15% → "watch", above → "comfortable". These are labels for a distance, not
69
+ instructions.
70
+
71
+ ## The report
72
+
73
+ ALWAYS use this template per position:
74
+
75
+ **<COIN> <SIDE> · <leverage>x · <marginMode>**
76
+
77
+ - Entry <entry> → mark <mark> (<±x.x%> on price, <±y%> on margin) · uPnL <$, when the size is known>
78
+ - Liquidation <liq> — <d%> away → **<at risk / watch / comfortable>**
79
+ - Stop <stop or "none stated"> — <d%> / <n> ATR(4h) away · Target <if any>
80
+ - Chart: 1h <bias, RSI, trend> · 4h <…> · 1d <…> · confluence <aligned / mixed>
81
+ - Nearest levels: support <price (d%)>, resistance <price (d%)>
82
+ - Derivatives: funding <label, annualized → cost or income for this side>, OI <regime>, top
83
+ traders <long %> (same side / opposite side)
84
+ - Thesis check: what the position needs to keep working, and the level or reading that would
85
+ say it has stopped working
86
+ - Scenarios: if price goes to <nearest level against> the position shows <P&L>; at <liquidation>
87
+ it is gone; at <nearest level for> it shows <P&L>
88
+
89
+ Then one line naming the position with the least room, and one plain sentence that crypto derivatives are high-risk and this is market information,
90
+ not financial advice.
91
+
92
+ Facts first, labels second, no verbs of instruction. "The stop sits 0.6 ATR away, inside normal 4h
93
+ noise" is a report; "move your stop" is not.
94
+
95
+ ## Conduct
96
+
97
+ - Never tell the user to close, hold, add, hedge, move a stop or change leverage. Present
98
+ distances, scenarios and the invalidation level; the decision is theirs. If they ask "should I
99
+ close", lay out what supports staying in and what argues against, then hand it back.
100
+ - Distances and scenarios are arithmetic on current prices and levels the tools returned; they are
101
+ not predictions of where price will go.
102
+ - Nothing in this connector trades — no order, close, transfer or withdrawal tool exists, by
103
+ design. Say so when asked to act; the decision and any trade stay with the user.
104
+ - Position details the user shares stay in the conversation; do not restate them in later
105
+ unrelated answers.
106
+ - Quote only tool results and what the user told you; if a coin is not tracked, say so.
107
+
108
+ Formulas and worked examples: `references/risk-math.md`.
109
+
110
+ ## Examples
111
+
112
+ ```text
113
+ I'm short SOL from 180 at 5x, liquidation around 214. How far is it, and what do the 1h/4h/1d indicators say?
114
+ I'm long ETH from 2,400 at 10x with a stop at 2,250. How does it look?
115
+ Am I in trouble on my SOL short?
116
+ ```
117
+
118
+ ## Limitations
119
+
120
+ - Needs the hosted TraderSpy MCP server connected in the client (`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.
121
+ - Tool calls are metered per day: 300 on the free tier, 5,000 on premium.
122
+ - Every tool is read-only. Nothing here places, closes or modifies an order, and there is no withdrawal or transfer tool.
123
+ - The output is market data and analysis for the user's own research, not investment advice.
124
+ - TraderSpy cannot see anyone's exchange or TraderSpy account, so every position has to be described or pasted in chat.
125
+ - Without a `liquidationPrice` the liquidation distance is an approximation; under cross margin it depends on the whole account.
126
+
127
+ ## Related Skills
128
+
129
+ - `@traderspy-technical-analysis` - a full chart read on one of the coins
130
+ - `@traderspy-smart-money` - who else holds the same position
@@ -0,0 +1,60 @@
1
+ # Risk math for position checks
2
+
3
+ Entry, side and leverage come from the user; mark is the current `price` from the data tools.
4
+
5
+ ## P&L
6
+
7
+ - Price move % = (mark − entry) / entry × 100, sign-flipped for a SHORT.
8
+ - Return on margin % ≈ price move % × leverage (isolated margin; for cross margin the same figure
9
+ describes the position, not the account).
10
+ - Unrealized P&L in USD needs the size; compute it only when the user gave one, and say so.
11
+
12
+ ## Liquidation
13
+
14
+ - Exact: the liquidation price the user's exchange shows → distance % = |liq − mark| / mark × 100.
15
+ - Approximation when the user has none: distance % ≈ 100 / leverage − maintenance margin (assume ~0.5–1%
16
+ and say "approximately"). 10x → ~9%, 20x → ~4%, 40x → ~2%. Cross margin can be wider (the whole
17
+ account backs it) or tighter (other positions drain it); the exact figure is the exchange's.
18
+
19
+ Bands: ≤ 5% at risk · ≤ 15% watch · > 15% comfortable.
20
+
21
+ ## Stop sanity
22
+
23
+ - Stop distance % = |stop − mark| / mark × 100.
24
+ - In ATRs = |stop − mark| / ATR(14) on the timeframe the user trades (use the 4h if unstated).
25
+ < 1 ATR: inside normal noise; 1–2 ATR: typical swing stop; > 3 ATR: wide.
26
+ - Reward-to-risk = |target − mark| / |stop − mark| from the CURRENT mark (the original R:R from
27
+ entry is history).
28
+
29
+ ## Funding
30
+
31
+ - Per-day cost ≈ `funding.ratePct` × 3 (three 8h settlements) × notional; a positive rate is paid
32
+ by longs to shorts. Quote it as "≈ $x/day" or "≈ y% APR against / for this side".
33
+ - `avg3dPct` says whether today's rate is typical.
34
+
35
+ ## Reading the chart against the position
36
+
37
+ - Same-side confluence (a LONG with 1h/4h/1d bullish) → the chart supports the position; the risk
38
+ is the distance to the stop and to liquidation, not the direction.
39
+ - Opposite-side confluence → the chart is against it; name the level that would have to reclaim.
40
+ - Mixed → identify which timeframe is the user's and lead with that one.
41
+ - Nearest level against the position vs stop: if the stop is beyond a well-touched support (for a
42
+ long), the plan has structure; if it sits above it, note that the level may be tested first.
43
+
44
+ ## Worked example
45
+
46
+ LONG ETH 10x cross, entry 2,434, mark 2,534, liq 2,290, stop 2,380, ATR(4h) 62, funding
47
+ +0.002%/8h, OI regime `new_longs`, top traders 55% long.
48
+
49
+ - Price move +4.1%, on margin ≈ +41%.
50
+ - Liquidation 9.6% away → comfortable.
51
+ - Stop 6.1% / 2.5 ATR away → outside 4h noise.
52
+ - Funding ≈ 0.006%/day → negligible cost for a long (≈ 2% APR).
53
+ - Chart 4h bullish, 1d neutral → mixed; the 4h is doing the work.
54
+ - Derivatives: new longs entering; leaders lean long only mildly (55%).
55
+ - Thesis check: the position needs the 4h uptrend to hold; a 4h close below the nearest support
56
+ (say 2,470) would put the stop in play; above 2,600 resistance the next level is …
57
+ - Scenarios: at 2,470 → +1.5% on price (+15% on margin); at 2,380 (stop) → −2.2% / −22%; at 2,290
58
+ → liquidated.
59
+
60
+ Reported as facts and scenarios — no instruction about what to do.
@@ -0,0 +1,151 @@
1
+ ---
2
+ name: traderspy-smart-money
3
+ description: "Track what top crypto futures traders hold on Binance, Hyperliquid, Bybit and OKX with TraderSpy: elite leaderboard, positions, trader profiles and history. Use for \"what are whales doing\"."
4
+ category: finance
5
+ risk: safe
6
+ source: "https://github.com/target1m/traderspy-mcp/tree/069aae5a84640d671f92705a2e3bc0b62efca1e0/skills/smart-money"
7
+ source_repo: target1m/traderspy-mcp
8
+ source_type: official
9
+ date_added: "2026-09-25"
10
+ author: target1m
11
+ tags: [traderspy, crypto, smart-money, whale-tracking, mcp]
12
+ tools: [claude, cursor, gemini]
13
+ license: MIT
14
+ license_source: "https://github.com/target1m/traderspy-mcp/blob/069aae5a84640d671f92705a2e3bc0b62efca1e0/LICENSE"
15
+ ---
16
+
17
+ # TraderSpy Smart Money
18
+
19
+ TraderSpy follows thousands of top-ranked accounts on four exchanges and records their positions as
20
+ they open, change and close. This skill turns that feed into answers about positioning and about
21
+ individual traders. Positions are observations of what other people did with their own money —
22
+ present them as evidence, never as instructions.
23
+
24
+ ## When to Use
25
+
26
+ - Use when the user asks what whales or top traders are buying, shorting or holding, or whether big accounts are long or short a coin.
27
+ - Use when the user asks who ranks highest on an exchange or across exchanges, or wants to research one trader's record and open positions.
28
+ - Use for "smart money", "whale watch" or "what are the pros doing".
29
+ - Not for funding rate, open interest or long/short ratios of the whole market (`@traderspy-technical-analysis`), and not for AI signals (`@traderspy-trading-signals`).
30
+
31
+ ## Tools
32
+
33
+ | Tool | Use it for | Key arguments |
34
+ | --- | --- | --- |
35
+ | `get_elite_leaderboard` | The cross-exchange top 10 by smart score, with the scoring rationale | none |
36
+ | `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 |
37
+ | `get_positions` | The position feed | `status` open / closed / all, `source`, `symbol`, `limit` ≤ 50, `offset` |
38
+ | `get_trader_profile` | One trader: metrics + latest positions | `traderId` AND `source` (see below), `timeRange`, `rankingType` |
39
+ | `get_trader_position_history` | One trader's closed trades, paged | `traderId`, `source`, `page`, `limit` ≤ 50 |
40
+ | `get_market_stats` | Aggregate counts and PnL across all tracked positions | `source`, `period` 4h / 8h / 24h / 7d |
41
+ | `get_exchanges` | Which exchanges are currently tracked | none |
42
+
43
+ **Always pass `source` with a trader id.** `get_trader_profile` and `get_trader_position_history`
44
+ default to Binance; a Hyperliquid address (`0x…`) or an OKX id looked up on the wrong exchange
45
+ returns nothing. Take `source` from the row you got the id from.
46
+
47
+ ## Reading the data
48
+
49
+ **Symbols differ per exchange.** Hyperliquid rows use bare coins (`BTC`, `ZEC`) and prefix
50
+ tokenized stocks with `xyz:` (`xyz:AVGO`); Binance, Bybit and OKX rows use `BTCUSDT`. When the
51
+ user asks about "BTC positions", pass `symbol: "BTC"` — the filter matches both `BTC` and
52
+ `BTCUSDT` exactly — and read the `symbol` field before summing anything. Tokenized stocks
53
+ (`xyz:AVGO`) are not reachable through the filter; fetch without `symbol` and pick them out.
54
+
55
+ **Position rows**: `side` LONG / SHORT, `size` in coins, `entryPrice`, `markPrice`, `leverage`,
56
+ `unrealizedPnl` (open rows) or `pnl` + `roi` (closed rows), `openTime` / `closeTime`, `isOpen`,
57
+ `lastEvent` (`increase`, `partial_close`, or null when the last change was the open itself). Notional ≈ `size × markPrice`; use
58
+ notional, not row count, when you say "whales are net long".
59
+
60
+ **Freshness.** Binance and Bybit snapshots refresh every 5–15 minutes, Hyperliquid every 15 minutes
61
+ plus live fills, OKX every 10–60 minutes. On a free-tier key the feed is delayed 15 minutes — if
62
+ `get_positions` returns nothing newer than that, say the feed is delayed rather than "no activity".
63
+
64
+ **Leaderboard rows** (`get_top_traders`) carry the exchange's own ranking snapshot: `roi`, `pnl`,
65
+ `assets` (account size), `winRate` (null on Hyperliquid — the exchange does not publish it),
66
+ `rankings[]` with the same trader across every window, and `smartScore` when TraderSpy has scored
67
+ them. `traderName` is a shortened address when the account has no public name. A trader who is
68
+ #1 on 30-day ROI with `assets` of $5k is a different animal from #19 with $3.4M — quote both.
69
+
70
+ **Smart score** (`get_elite_leaderboard`, 0–100, recomputed daily): realized PnL 30% (all-time
71
+ blended with the last 30 days), effective win rate 22%, ROI edge 18%, consistency 14%, longevity
72
+ 10%, trade depth 6%, plus a recency bonus (up to +9) and a staleness penalty (down to −12 after
73
+ about three weeks idle). `scoreBreakdown` shows each part, `rationale[]` is a ready-made
74
+ plain-language justification, `metrics` has the raw counts (`closedTrades`, `profitFactor`,
75
+ `realizedPnl30d`, `openPositionCount`, `worstDayPnl`). `reliabilityMultiplier` below 1 means a
76
+ short history dragged the score down — say so when a 6-day-old account ranks top-5.
77
+
78
+ **Market stats** aggregate every tracked position, thousands of them, so `realizedPnl` can be a
79
+ large negative number even when the leaders are winning; the tracked universe includes traders
80
+ who fell off the leaderboard. Use it for counts and the exchange split, not as "smart money is
81
+ losing".
82
+
83
+ ## Workflows
84
+
85
+ **"What are whales doing in SOL?"** → `get_positions` with `symbol`, `status: open`, `limit` 50.
86
+ Sum notional by side, name the largest two or three accounts with entry and leverage, and note
87
+ how recent the newest entries are. If open rows are few, add `status: closed` for the last day to
88
+ show whether they have been exiting.
89
+
90
+ **"Who are the best traders right now?"** → `get_elite_leaderboard` first (it is cross-exchange
91
+ and score-based), then `get_top_traders` for a specific exchange or window if the user wants raw
92
+ ROI/PnL. Explain that 7-day ROI rankings reward one lucky week; the smart score is built to
93
+ penalise exactly that.
94
+
95
+ **"Should I copy trader X?" / "Research this trader"** → `get_trader_profile` + one or two pages of
96
+ `get_trader_position_history`. From the history compute what the user actually needs: win rate
97
+ from closed rows, typical hold time (`closeTime − openTime`), typical leverage, how concentrated
98
+ in one coin, worst single trade, and whether the recent month looks like the all-time record.
99
+ Present it as a profile. Copying is the user's decision — this connector cannot follow anyone.
100
+
101
+ **"Are the pros long or short?" (whole market)** → `get_positions` `status: open` on the majors
102
+ plus `get_market_stats`; for exchange-wide long/short ratios of ALL accounts use
103
+ `get_derivatives` from technical-analysis instead, which answers that directly.
104
+
105
+ ## Presenting
106
+
107
+ Positions: one row per position —
108
+
109
+ | Trader | Exchange | Side | Size (notional) | Entry | Mark | Lev | uPnL | Opened |
110
+
111
+ Traders: name, exchange, score or rank, window, ROI, PnL, account size, win rate (or "n/a" on
112
+ Hyperliquid), then the two-line rationale. Lead with the number that answers the question, keep
113
+ addresses shortened as returned, and always say which window a ROI belongs to.
114
+
115
+ ## Conduct
116
+
117
+ - Positions are what other traders did, with their capital, their hedges and their exits, which
118
+ you cannot see in full. Present them as evidence about positioning, never as a recommendation to
119
+ mirror them; a leader's long can be one leg of a hedge.
120
+ - Past ROI and win rates describe a past sample — do not present a leaderboard as a forecast of
121
+ who will win next. Point out short histories and small samples.
122
+ - Nothing in this connector trades or copies. There is no order, follow, transfer or withdrawal
123
+ tool, by design. If asked to copy or execute a trade, say so plainly; the decision and the trade stay
124
+ with the user.
125
+ - Quote only what the tools returned; say when data is delayed or a field is null.
126
+ - When the answer is about a specific trade idea, end with one plain sentence that crypto
127
+ derivatives are high-risk and this is market information, not financial advice.
128
+
129
+ For exchange-specific quirks and refresh cadences read `references/exchange-notes.md`.
130
+
131
+ ## Examples
132
+
133
+ ```text
134
+ What are the top traders long and short right now?
135
+ What are whales doing in SOL?
136
+ 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.
137
+ ```
138
+
139
+ ## Limitations
140
+
141
+ - Needs the hosted TraderSpy MCP server connected in the client (`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.
142
+ - Tool calls are metered per day: 300 on the free tier, 5,000 on premium.
143
+ - Every tool is read-only. Nothing here places, closes or modifies an order, and there is no withdrawal or transfer tool.
144
+ - The output is market data and analysis for the user's own research, not investment advice.
145
+ - On a free key, position rows are delayed 15 minutes. Leaderboards, profiles and stats are not delayed.
146
+ - It sees only the accounts TraderSpy tracks on Binance, Hyperliquid, Bybit and OKX, not what the same traders hold elsewhere, so a tracked long can be one leg of a hedge.
147
+
148
+ ## Related Skills
149
+
150
+ - `@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
151
+ - `@traderspy-trading-signals` - AI signals rather than trader positions
@@ -0,0 +1,40 @@
1
+ # Exchange notes for the smart-money feed
2
+
3
+ | Exchange | `source` | Trader id looks like | Symbols | Refresh | Notes |
4
+ | --- | --- | --- | --- | --- | --- |
5
+ | Binance | `binance` | opaque leaderboard id | `BTCUSDT` | positions every 5–10 min | Largest tracked set (~5k positions); leaderboard is opt-in, so it is the traders who chose to be public |
6
+ | Hyperliquid | `hyperliquid` | `0x` EVM address | bare coin `BTC`, `kPEPE`-style 1000x coins, `xyz:AVGO` for tokenized stocks | fills live via WebSocket, snapshots every 15 min | Fully on-chain, so positions are exact; `winRate` is null because the venue does not publish it |
7
+ | Bybit | `bybit` | opaque id | `BTCUSDT` | every 10–15 min | Smaller tracked set |
8
+ | OKX | `okx` | 16-hex id | `BTCUSDT` | every 10 min – 1 h | Copy-trade leaders; names and avatars are public; many high-frequency scalpers with 90%+ win rates and tiny per-trade ROI |
9
+
10
+ ## Elite leaderboard (`get_elite_leaderboard`)
11
+
12
+ - Recomputed daily (00:10 Europe/Istanbul); `lastRunAt` says when. Not intraday.
13
+ - `tier` is the exchange's own badge where one exists (OKX leaders show Silver / Bronze / Regular);
14
+ null on venues without badges.
15
+ - `algorithmDetails[]` in the response documents every weight — quote it when the user asks how
16
+ the score works instead of paraphrasing from memory.
17
+ - `summary.totalTrackedTraders` vs `tradersWithClosedTrades` tells you how many accounts actually
18
+ have a closed-trade record behind their score.
19
+ - A trader can top the score with a negative `effectiveRoi` if their realized PnL is huge — the
20
+ score rewards money made, not percentage. Say which when the two disagree.
21
+
22
+ ## Reading a trader's history for a "should I copy" profile
23
+
24
+ From `get_trader_position_history` rows (`symbol, side, size, entryPrice, closePrice, leverage,
25
+ pnl, roi, openTime, closeTime`):
26
+
27
+ - win rate = rows with `pnl > 0` ÷ rows
28
+ - average hold = mean of `closeTime − openTime`, expressed in hours or days
29
+ - concentration = share of rows (or of |pnl|) in the single most-traded symbol
30
+ - worst trade = min `pnl`; compare it with the median win to show the shape of the distribution
31
+ - leverage habit = median `leverage`; flag anything ≥ 20× explicitly
32
+ - recency = share of rows in the last 30 days; a great all-time record with nothing recent is a
33
+ dormant account
34
+
35
+ Two pages of 50 rows are plenty for a profile. State the sample size.
36
+
37
+ ## Free tier
38
+
39
+ Position rows are filtered to those older than 15 minutes on a free key. Leaderboards, profiles and
40
+ stats are not delayed.
@@ -0,0 +1,162 @@
1
+ ---
2
+ name: traderspy-technical-analysis
3
+ description: "Read one crypto futures pair with TraderSpy: 19 indicators on up to 3 timeframes in one call, key levels, funding, open interest and positioning. Use for \"analyse BTC\" or \"is SOL oversold\"."
4
+ category: finance
5
+ risk: safe
6
+ source: "https://github.com/target1m/traderspy-mcp/tree/069aae5a84640d671f92705a2e3bc0b62efca1e0/skills/technical-analysis"
7
+ source_repo: target1m/traderspy-mcp
8
+ source_type: official
9
+ date_added: "2026-09-25"
10
+ author: target1m
11
+ tags: [traderspy, crypto, technical-analysis, indicators, mcp]
12
+ tools: [claude, cursor, gemini]
13
+ license: MIT
14
+ license_source: "https://github.com/target1m/traderspy-mcp/blob/069aae5a84640d671f92705a2e3bc0b62efca1e0/LICENSE"
15
+ ---
16
+
17
+ # TraderSpy Technical Analysis
18
+
19
+ One good read of a chart is three things in order: where price is in its structure (trend and
20
+ levels), what momentum and volatility are doing, and how the derivatives market is positioned
21
+ around it. TraderSpy gives all three in at most two calls. Spend the calls well — the user's quota
22
+ is finite — and quote the numbers, not adjectives.
23
+
24
+ ## When to Use
25
+
26
+ - Use when the user asks about a coin's chart, trend, momentum, support and resistance, or where a level such as the 200 EMA sits.
27
+ - Use for "analyse BTC", "how does SOL look", "is X overbought / oversold", "what do the indicators say" or "is this a good entry", even when the user only names a coin.
28
+ - Use when the question is whether funding is high or open interest is building, or when the user wants price or candle data.
29
+ - For scanning many coins by conditions use `@traderspy-market-screener`; for whale positions use `@traderspy-smart-money`.
30
+
31
+ ## Tools
32
+
33
+ | Tool | Use it for | Key arguments |
34
+ | --- | --- | --- |
35
+ | `get_technical_indicators` | The chart read | `symbol`, `intervals` (≤ 3) or `interval`, `indicators` (≤ 19), `periods`, `history` 0–20 |
36
+ | `get_derivatives` | Funding, open interest, positioning | `symbols` (≤ 5 Binance USDⓈ-M perps; bare `BTC` is fine) |
37
+ | `get_price` | Live price, 24h high/low/volume/change | `symbols` (≤ 20) |
38
+ | `get_candles` | Raw OHLCV | `symbol`, `interval` 1m/5m/15m/1h/4h/1d, `limit` ≤ 500 |
39
+ | `get_tracked_symbols` | Coverage check | none — only when a symbol returns no data |
40
+
41
+ Symbols are Binance Futures names: `BTCUSDT`, `SOLUSDT`, `1000PEPEUSDT` (1000x-prefixed small
42
+ caps), and tokenized equities/ETFs such as `AAPLUSDT` or `SPYUSDT`. Append `USDT` to a bare coin.
43
+ Hyperliquid-only perps (e.g. HYPE) are tracked under the same naming.
44
+
45
+ ## Making the call count
46
+
47
+ - **Multi-timeframe is one quota unit.** For any "how does X look" question pass
48
+ `intervals: ["1h","4h","1d"]` (or `["15m","1h","4h"]` for an intraday user) and get a
49
+ `confluence` verdict — never three separate calls.
50
+ - **Pick indicators for the question.** Default `rsi, macd, ema, bollinger` covers momentum and
51
+ trend. Add `levels` + `pivots` whenever the user cares about entries, targets or "where is
52
+ support"; `atr` for stop distance and volatility; `adx` for trend strength; `supertrend` for a
53
+ clean trend state; `obv` / `mfi` when volume confirmation matters; `ichimoku` / `keltner` only
54
+ when asked. Eight to ten well-chosen indicators is a full read; all 19 is noise.
55
+ - **`periods`** lets you honour the user's settings (`{"ema":[9,21,55,200],"rsi":7}`); an unknown
56
+ key is rejected, so use the documented names only.
57
+ - **Add `get_derivatives`** when the question involves "why is it moving", crowding, funding,
58
+ open interest, leverage, liquidations, or when the user is about to lean on a directional call —
59
+ candles cannot see positioning.
60
+ - `get_candles` is for when the user wants the data itself (to chart, export or compute something
61
+ custom). Do not fetch candles to eyeball indicators the technicals tool already computes.
62
+
63
+ ## Reading the response
64
+
65
+ **Shape.** One timeframe → top-level `indicators` + `summary`. Several → `timeframes[]` (each
66
+ with `interval`, `price`, `candles`, `indicators`, `summary`) plus `confluence` `{ aligned, bias,
67
+ byInterval }`; the top-level `interval`/`price` then name the first timeframe only. `settings`
68
+ echoes what was computed; `warnings[]` lists anything that was thinned or missing.
69
+
70
+ **Every indicator** carries `value`, `previous`, `direction` (rising / falling / flat) and a short
71
+ `series` (oldest → newest), plus its own fields — `zone` on RSI/Stochastic/CCI/MFI/Williams,
72
+ `crossover` on MACD/Stochastic, `stack`/`pricePosition` on EMA, `±DI` and `strength` on ADX,
73
+ `trend`/`flipped`/`barsSinceFlip` on SuperTrend, `divergence` on RSI/MACD/OBV. `{ value: null,
74
+ reason: "insufficient_data" }` means the tape is too short for that period — say so, do not
75
+ substitute.
76
+
77
+ **`summary` is the spine of the read.** `bias` (bullish / bearish / neutral) is computed from a
78
+ FIXED set (RSI 14, MACD, EMA 20/50/200, ADX 14, ATR 14, BB 20/2, volume 20) regardless of what
79
+ you requested, so it is comparable between calls; `score` is its internal vote (|score| ≥ 30 sets
80
+ a bias). `trend` (direction, strength, emaStack, priceVsEma200), `momentum` (rsiZone, macdState),
81
+ `volatility` (atrPct, atrPercentile 0–100, squeeze, state), `volume.ratioVsAverage`, `patterns[]`
82
+ (candlestick finders on the last two bars) and `notes[]` — plain-language sentences written to be
83
+ quoted. Build the answer from the notes, then add the numbers.
84
+
85
+ **`levels`** (nearest three per side from swing highs/lows over 300 bars): `price`, `touches`,
86
+ `distancePct`; `range.positionPct` (0 = at the low of the lookback, 100 = at the high);
87
+ `fibonacci` (the dominant leg with `retracedPct` and the nearest level above/below);
88
+ `volumeProfile` (`poc`, value area, `pricePosition`). **`pivots`** are classic floor pivots from
89
+ the previous DAILY candle whatever the timeframe. Together they give you a levels table; distance
90
+ in % is what a user can act on.
91
+
92
+ **`confluence.aligned`** is true only when every timeframe with data agrees on a non-neutral bias.
93
+ "Aligned bearish on 1h/4h/1d" is a strong statement; "4h bullish, 1d neutral" is a pullback
94
+ question. Say which.
95
+
96
+ **Derivatives** (`get_derivatives`): `funding.label` — `extreme_longs_paying` / `longs_paying` /
97
+ `neutral` / `shorts_paying` / `extreme_shorts_paying` (longs pay at ≥ +0.03% per 8h, extreme at
98
+ ≥ +0.10%; shorts pay at ≤ −0.01%, extreme at ≤ −0.05%; Binance's baseline is +0.01%; quote
99
+ `annualizedPct`); `openInterest.regime` — `new_longs` / `short_covering` / `new_shorts` /
100
+ `long_liquidation` / `flat` (needs ≥ 1% OI and ≥ 0.5% price change over 24h);
101
+ `positioning.label` — `long_heavy` (long/short ratio ≥ 1.5, i.e. ≥ 60% long) / `balanced` /
102
+ `short_heavy` (≤ 0.67, i.e. ≤ 40% long), read from the top-trader POSITION ratio first;
103
+ `takerBuySellRatio` is the last hour's aggressor flow. Data is at most 60 s old. `notes[]` are
104
+ quotable. Details in `references/derivatives-guide.md`.
105
+
106
+ ## Presenting
107
+
108
+ For a single-coin read ALWAYS use this order, and keep it to what the user asked:
109
+
110
+ 1. **Price line** — symbol, price, time of the read, 24h change if you fetched it.
111
+ 2. **Per timeframe, one line each** — bias, trend (EMA stack and ADX), momentum (RSI zone, MACD
112
+ state), volatility (ATR %, squeeze), with the key number after each label.
113
+ 3. **Confluence** — aligned or not, and what the disagreement means.
114
+ 4. **Levels table** — nearest support and resistance with distance %, the pivot, the nearest
115
+ Fibonacci level, the value-area edge if price is near it.
116
+ 5. **Derivatives line** (if fetched) — funding label + annualized, OI regime, top-trader long %.
117
+ 6. **What would change the read** — the one or two levels or readings that flip the picture
118
+ (e.g. "a 4h close above 79,325 resistance with OI rising would turn the 4h bias bullish").
119
+ 7. One plain sentence: crypto derivatives are high-risk; this is market information, not advice.
120
+
121
+ Use `RSI(14) 41.3 — neutral, falling` style labelling so the period and the direction are always
122
+ visible. Percentages to one decimal; prices to the precision the tool returned.
123
+
124
+ ## Conduct
125
+
126
+ - Describe the chart; do not prescribe the trade. If the user asks "is this a good entry", answer
127
+ with what supports the entry, what argues against it, where the invalidation sits, and hand the
128
+ decision back. Never tell the user to buy, sell, size or leverage.
129
+ - Indicators describe the past bars they were computed on; do not present a bias as a forecast or
130
+ imply any outcome is assured.
131
+ - Nothing in this connector trades — no order, close, transfer or withdrawal tool exists, by
132
+ design. If asked to execute, say so plainly; the decision and the trade stay with the user.
133
+ - Quote only what the tools returned. If an indicator is `insufficient_data` or a symbol is not
134
+ tracked, say so instead of estimating.
135
+ - When the answer is about a specific trade idea, end with one plain sentence that crypto
136
+ derivatives are high-risk and this is market information, not financial advice — once per
137
+ answer.
138
+
139
+ Per-indicator fields and conventional readings: `references/indicator-guide.md`.
140
+
141
+ ## Examples
142
+
143
+ ```text
144
+ Analyse BTC on the 1h, 4h and 1d with funding and open interest.
145
+ Is SOL overbought? Where are the nearest support and resistance levels?
146
+ Where is the 200 EMA on ETH, and is funding stretched?
147
+ ```
148
+
149
+ ## Limitations
150
+
151
+ - Needs the hosted TraderSpy MCP server connected in the client (`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.
152
+ - Tool calls are metered per day: 300 on the free tier, 5,000 on premium.
153
+ - Every tool is read-only. Nothing here places, closes or modifies an order, and there is no withdrawal or transfer tool.
154
+ - The output is market data and analysis for the user's own research, not investment advice.
155
+ - A multi-timeframe read is one tool call; adding derivatives makes it two.
156
+ - Symbols use Binance Futures naming (`BTCUSDT`, `1000PEPEUSDT`). `get_derivatives` covers Binance USDⓈ-M perpetuals, up to five per call.
157
+
158
+ ## Related Skills
159
+
160
+ - `@traderspy-market-screener` - many coins at once, and backtests of a condition
161
+ - `@traderspy-smart-money` - what tracked top traders hold
162
+ - `@traderspy-position-check` - the same read applied to an open position
@@ -0,0 +1,57 @@
1
+ # Derivatives guide — `get_derivatives`
2
+
3
+ Source: Binance USDⓈ-M perpetual futures public endpoints, snapshot cached 60 s. One entry per
4
+ symbol; an unknown or non-Binance symbol comes back as `{ symbol, error, message }`.
5
+
6
+ ## Fields
7
+
8
+ - `markPrice`, `indexPrice`, `premiumPct` — mark vs index; a persistent positive premium is
9
+ another face of long crowding.
10
+ - `funding`: `rate` (raw, per 8h), `ratePct`, `annualizedPct`, `nextFundingTime`,
11
+ `minutesToNextFunding`, `avg24hPct`, `avg3dPct`, `label`.
12
+ - `openInterest`: `contracts`, `valueUsd`, `change4hPct`, `change24hPct`, `priceChange24hPct`,
13
+ `regime`.
14
+ - `positioning`: `globalLongShortRatio`, `globalLongPct` (all accounts), `topTraderLongShortRatio`,
15
+ `topTraderLongPct` (top traders, by position size), `takerBuySellRatio` (last hour),
16
+ `label`.
17
+ - `notes[]` — the interpretation in sentences; quote them.
18
+
19
+ ## Labels
20
+
21
+ | `funding.label` | Rule (per 8h) | Reading |
22
+ | --- | --- | --- |
23
+ | `extreme_shorts_paying` | ≤ −0.05% | Shorts crowded and paying heavily; squeeze risk |
24
+ | `shorts_paying` | ≤ −0.01% | Shorts paying longs |
25
+ | `neutral` | between −0.01% and +0.03% (Binance's baseline is +0.01%) | No crowding signal |
26
+ | `longs_paying` | ≥ +0.03% | Longs paying shorts — leverage leaning long |
27
+ | `extreme_longs_paying` | ≥ +0.10% | Longs crowded and paying heavily; long-squeeze / flush risk |
28
+
29
+ Quote `annualizedPct` alongside — "0.05%/8h" means little to most readers, "≈ 55% APR" does.
30
+
31
+ | `openInterest.regime` | OI 24h | Price 24h | Reading |
32
+ | --- | --- | --- | --- |
33
+ | `new_longs` | up | up | Fresh money buying; trend being funded |
34
+ | `short_covering` | down | up | Rally driven by shorts closing — less durable |
35
+ | `new_shorts` | up | down | Fresh shorts pressing; trend being funded to the downside |
36
+ | `long_liquidation` | down | down | Longs being flushed — capitulation-type move |
37
+ | `flat` | < 1% OI or < 0.5% price | No meaningful OI story |
38
+
39
+ | `positioning.label` | Rule | Reading |
40
+ | --- | --- | --- |
41
+ | `long_heavy` | long/short ratio ≥ 1.5 (≈ 60%+ long) | Leaders leaning long |
42
+ | `balanced` | between | No lean |
43
+ | `short_heavy` | ratio ≤ 0.67 (≈ 40% or less long) | Leaders leaning short |
44
+
45
+ Top-trader positioning (by position size) is read first because it is the informed cohort; the
46
+ all-account ratio shows the crowd. When they disagree ("top traders 69% long, all accounts 45%
47
+ long"), that disagreement is the interesting sentence.
48
+
49
+ ## Combining with the chart
50
+
51
+ - Chart bullish + `new_longs` + `neutral` funding: a trend with fuel and no crowding.
52
+ - Chart bullish + `extreme_longs_paying`: extended; flush risk is the caveat to state.
53
+ - Chart bearish + `short_covering` bounce: a relief rally, not a reversal, until OI rebuilds.
54
+ - `long_liquidation` with `extreme_shorts_paying` afterwards: the flush may be done; watch whether
55
+ OI rebuilds.
56
+
57
+ These are conventional readings to explain the data, not predictions.