Skip to content

wtfsayo/hyperdash-info

v0.3.0MIT

Read-only Hyperdash terminal intel via public GraphQL — asset movers, trader explore/stats, liquidations/levels, deltas, spot holders, dashboard widgets, RFQ markets. No order mutations.

hyperdash-info

Cursor / Agent Plugin for Hyperdash public market intel (Hyperliquid terminal).

  • REST: GET https://api.hyperdash.com/health
  • GraphQL: POST https://api.hyperdash.com/graphql (introspection disabled; operations reverse-mapped from the web app, so upstream schema changes can break a tool; the daily CI run catches them)

Read-only. No order / strategy / wallet mutations.

Site: https://hyperdash.com · Docs: https://docs.hyperdash.com (product docs; published OpenAPI there is currently a Mintlify placeholder)

Results

  • Every result is compact JSON in content[0].text; there is no structuredContent.
  • List tools take limit (default 50 unless the tool says otherwise, max 500) and offset, and return { total, returned, offset, next_offset, truncated, items, hint }. next_offset and hint appear only when more rows remain.
  • Every result stays under 40,000 characters. A list that would exceed it is cut short and marked truncated; any other result over the cap returns an error asking for narrower arguments.
  • Tool failures come back as isError results whose text carries the upstream reason and a hint (bad address, bad enum, timeout, schema drift). JSON-RPC errors are reserved for unknown methods and tools.
  • label, displayName, twitter, group names and news text are third-party content; affected results carry a note saying so.

Install (Cursor IDE)

Copy to ~/.cursor/plugins/local/hyperdash-info, Reload Window.

Install (Claude Code)

Clone this repo, then start Claude Code with claude --plugin-dir /path/to/hyperdash-plugin. .claude-plugin/plugin.json loads the skill and starts the MCP server with node ${CLAUDE_PLUGIN_ROOT}/server/index.mjs. The server has no dependencies, so it needs only Node on PATH and no npm install.

Environment:

VariableDefaultEffect
HYPERDASH_API_URLhttps://api.hyperdash.comAPI host. In Claude Code, export it before launch; in Cursor, edit mcp.json.
HYPERDASH_TIMEOUT_MS15000Per-request upstream timeout.

MCP tools (28)

tools/list carries the full schemas. Summary:

Market

ToolNotes
get_healthREST /health, falls back to / on an HTTP error
list_asset_price_changesmovers incl. xyz:* HIP-3; coins filter
get_recent_liquidationsliq tape; coin filter
get_newsheadlines; include_body for article text
get_current_twapsmarket, type (perp | spot)
get_historical_funding_ratestokens[], timeframe 7d | 30d
get_historical_open_interesttokens[], timeframe 7d | 30d
get_perps_market_participationglobal + size/PnL cohorts; coins filter, max 15 coins
list_perp_rfq_marketsRFQ-enabled symbols

Liquidations

ToolNotes
list_liquidation_totalsper-market aggregates (windowHours)
get_liquidation_levelsheatmap bands; default band mark ±15% over 24h; empty bands dropped
get_current_top_liquidationstop long/short clusters; default band mark ±15%

Deltas & orderbook

ToolNotes
get_perp_deltasmarket, timeframe 15m | 1h | 4h | 24h | 3d | 7d; sorted by |delta|
get_spot_deltastoken, same timeframes
get_orderbook_snapshot_filteredresting orders in a band; keep bands narrow (wide BTC bands fail upstream)
list_spot_ticker_positionstop spot holders

Traders

ToolNotes
explore_tradersleaderboard; timeframe one_day | seven_days | thirty_days | all
get_traderone wallet
get_tradersbatch by addresses[]; include_graph for portfolioGraph
get_asset_top_traderstop unrealized PnL on a coin
get_trader_best_tradesbest completed trades
get_trader_stats_per_assetper-coin stats
get_trader_detailed_statsduration / streak / PnL summary
list_trader_completed_tradespage / pageSize (max 50)
get_trader_perp_positions_atsnapshot at epoch ms
list_system_group_traderstagged | copytraders | equities | btc | hype | cl; include_graph
get_groupgroup metadata + wallets

Widgets

ToolNotes
get_widgettype enum + optional params; empty params auto-nest the camelCase key (OI_SURGES → { oiSurges: {} })

Widget types: OI_SURGES, IMMINENT_LIQUIDATIONS, FUNDING_RATES, SMART_MONEY_FLIPS, CVD, TOP_UPNL_CHANGES, LARGEST_OPENED_TRADES, NET_TWAP_PRESSURE, ASSET_RETURNS, TOP_PERP_UNREALIZED_PNL, TOP_PERP_POSITIONS, FRESH_WALLET_POSITIONS, WHALE_DEPOSITS, TOP_TWAPS, LIQUIDATION_FEED, OPEN_INTEREST, USER_GROWTH, AF_BUYBACKS, PERP_PRICE_CHANGES, NET_POSITIONING.

Testing

npm test runs test/smoke.mjs (zero dependencies). It checks the protocol and tool metadata, bad-argument errors, paging and size caps against a local mock, the fetch timeout, and the stdin-close drain. When the API is reachable it also calls every tool and widget with test/fixtures.json and fails on any error or schema drift. Set SMOKE_OFFLINE=1 to skip the live calls. CI runs it on every push and daily.

License

MIT