Server definition
- Hash
- sha256:6e44244d3568d781958eeb419b6ec18da3936dccc9dcdd47160cb085d2aa9fc4
- What it is
- What a remote MCP server returned when asked what it offers: 37 tools
The blob, as servednamed by its sha256
{
"instructions": "LiquidVision: crypto derivatives data for agents. READ-ONLY: every tool reads public market data; nothing here trades, signs, stores or touches private data, which is why no key is required. Open interest and funding across 13 venues (Binance, MEXC, Bybit, Bitget, Hyperliquid, HTX, Gate, OKX, KuCoin, BingX, Aster, Kraken, GMX on Arbitrum) exactly as the exchanges publish them — no haircuts, no doubling; /accuracy audits that against the exchanges every 10 minutes. START WITH: list_markets (what exists), then get_market_brief (one coin, one JSON) or the computed views. Prefer the computed views, which return conclusions rather than ticks: get_liquidation_cascades (cascades as events), get_positioning_regime (price x OI), get_funding_dispersion (cross-venue arbitrage), get_microstructure (spread/depth/basis), get_market_brief (one deterministic risk brief) and explain_market (grounded answer to 'why did BTC drop?'). Liquidation events cover Binance and Bitget (both exchange-throttled to one order per contract per second), OKX, Bybit, HTX, Gate, GMX, Kraken and Hyperliquid whales, so totals are a floor for the whole market. Liquidation maps are MODELED estimates, except the measured Hyperliquid map (get_hl_liquidation_map). Tool docstrings are tagged [measured] or [modeled]. Symbols are BASEUSDT. FRESHNESS: answers carry age_s (seconds since the data was read from the exchange); rows of get_open_interest, get_funding_rates and get_long_short_ratio carry age_s each and stale=true when a venue feed is behind. Check it before acting on a number. History exports (CSV) and webhook alerts for bots: liquidvision.app/pricing.",
"tools": [
{
"description": "Subscribe an HTTPS URL to push alerts instead of polling (Pro: 3, Bot: 20 subscriptions).\n type='cascade': a liquidation cascade just ended, over min_usd and x_normal times the coin's\n normal minute. type='hl_near_liq': a Hyperliquid whale position over min_usd within\n max_dist_pct of its liquidation price. type='cluster_sweep': price reached one of the 10\n largest modeled liquidation-map clusters (size over min_usd; no symbol = BTC, ETH, SOL), sent\n 3 min later with modeled vs actually liquidated USD. Returns the signing secret ONCE: verify header\n X-LiquidVision-Signature = hex HMAC-SHA256(secret, raw body). Needs a Pro or Bot key.",
"inputSchema": {
"properties": {
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
},
"max_dist_pct": {
"default": 3,
"title": "Max Dist Pct",
"type": "number"
},
"min_usd": {
"default": 1000000,
"title": "Min Usd",
"type": "number"
},
"symbol": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Symbol"
},
"type": {
"title": "Type",
"type": "string"
},
"url": {
"title": "Url",
"type": "string"
},
"x_normal": {
"default": 8,
"title": "X Normal",
"type": "number"
}
},
"required": [
"type",
"url"
],
"title": "create_alertArguments",
"type": "object"
},
"name": "create_alert",
"outputSchema": null
},
{
"description": "Permanently delete one webhook alert subscription. DESTRUCTIVE and not reversible:\n deliveries to its URL stop at once and its signing secret is discarded (create_alert\n issues a new one). Only a subscription owned by the caller's API key can be deleted;\n an id belonging to another key returns {\"deleted\": false} and changes nothing. id: the\n number returned by create_alert or list_alerts. Needs a Pro or Bot key (X-API-Key header\n of the MCP connection, or api_key).",
"inputSchema": {
"properties": {
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
},
"id": {
"title": "Id",
"type": "integer"
}
},
"required": [
"id"
],
"title": "delete_alertArguments",
"type": "object"
},
"name": "delete_alert",
"outputSchema": null
},
{
"description": "AI risk-intelligence answer: ask e.g. 'Why did BTC drop 4%?' and get a\n concise grounded explanation (liquidation cascades, funding extremes, where\n the positions sit, next risk zone) computed from live derivatives data\n across 13 venues (CEXs, Hyperliquid and GMX).",
"inputSchema": {
"properties": {
"question": {
"title": "Question",
"type": "string"
},
"symbol": {
"default": "BTCUSDT",
"title": "Symbol",
"type": "string"
}
},
"required": [
"question"
],
"title": "explain_marketArguments",
"type": "object"
},
"name": "explain_market",
"outputSchema": null
},
{
"description": "[measured] The public accuracy audit: our open interest and funding vs Binance, Bybit, OKX and\n Hyperliquid's own endpoints, sampled every 10 min (diff %, snapshot age, 24h mean/max), plus how\n the modeled liquidation map scored against realized liquidations. Read this before trusting\n any number here with money.",
"inputSchema": {
"properties": {},
"title": "get_accuracyArguments",
"type": "object"
},
"name": "get_accuracy",
"outputSchema": null
},
{
"description": "Get a free LiquidVision API key for this agent's owner, by email, without a browser.\n Works for a NEW email only (an existing account's key is never returned; its owner sees it\n at liquidvision.app/data). Use the key as X-API-Key on REST or on this MCP endpoint for\n 300 req/min instead of the shared anonymous budget, and to upgrade later to Pro/Bot\n (history exports, webhook alerts). Ask the user for the email first; do not invent one.",
"inputSchema": {
"properties": {
"email": {
"title": "Email",
"type": "string"
}
},
"required": [
"email"
],
"title": "get_api_keyArguments",
"type": "object"
},
"name": "get_api_key",
"outputSchema": null
},
{
"description": "Arbitrum perps board: GMX v2 open interest per coin and its share of every\n tracked venue, GMX funding next to the CEX median (8h basis), on-chain\n liquidations over 24h. Ask this for 'how is Arbitrum positioned vs CEXs'.",
"inputSchema": {
"properties": {},
"title": "get_arbitrum_perpsArguments",
"type": "object"
},
"name": "get_arbitrum_perps",
"outputSchema": null
},
{
"description": "Derivatives cash flow per exchange: net USD into/out of open interest\n over 1h/4h/24h windows, per core symbol. Positive = money flowing in.",
"inputSchema": {
"properties": {},
"title": "get_cash_flowsArguments",
"type": "object"
},
"name": "get_cash_flows",
"outputSchema": null
},
{
"description": "Cumulative volume delta split by trade size (retail <$10K, mid <$100K,\n large <$1M, whale >$1M). Whale-vs-retail divergence = smart-money signal.",
"inputSchema": {
"properties": {
"minutes": {
"default": 240,
"title": "Minutes",
"type": "integer"
},
"symbol": {
"default": "BTCUSDT",
"title": "Symbol",
"type": "string"
}
},
"title": "get_cvdArguments",
"type": "object"
},
"name": "get_cvd",
"outputSchema": null
},
{
"description": "[measured] Footprint chart data: for each candle, taker BUY and taker SELL volume in\n USD and the trade count at each of 30 price levels, from the archived trade streams of\n Binance, Bybit, OKX, Bitget and Gate. Use it to see at which prices aggressive buyers\n or sellers were absorbed; for the net flow over time by trade size use get_cvd. symbol:\n BTCUSDT, ETHUSDT or SOLUSDT only. minutes: look-back window, 15 to 10080. step: candle\n size in minutes, 1 to 240.",
"inputSchema": {
"properties": {
"minutes": {
"default": 240,
"title": "Minutes",
"type": "integer"
},
"step": {
"default": 15,
"title": "Step",
"type": "integer"
},
"symbol": {
"default": "BTCUSDT",
"title": "Symbol",
"type": "string"
}
},
"title": "get_footprintArguments",
"type": "object"
},
"name": "get_footprint",
"outputSchema": null
},
{
"description": "Coins ranked by how far funding disagrees ACROSS exchanges.\n\n For each coin: the spread in APR points between the venue charging the most\n and the one paying the most, plus which venue to hold the long on and which\n to hold the short on. Every leg is annualized with its own settlement cycle\n (1h / 4h / 8h), and the ranking uses the median rate over `window` minutes\n rather than the latest print, which is noisy for hourly contracts.\n ",
"inputSchema": {
"properties": {
"limit": {
"default": 40,
"title": "Limit",
"type": "integer"
},
"min_venues": {
"default": 6,
"title": "Min Venues",
"type": "integer"
},
"window": {
"default": 60,
"title": "Window",
"type": "integer"
}
},
"title": "get_funding_dispersionArguments",
"type": "object"
},
"name": "get_funding_dispersion",
"outputSchema": null
},
{
"description": "[measured] Funding rate over time for one contract, one row per venue per time bucket:\n ts (ms), exchange, funding_rate (per settlement interval, a fraction), mark_price and\n funding_hours (that contract's interval: 1, 4 or 8). Annualize as rate * 8760 / funding_hours.\n This is the LIVE predicted rate sampled over time; for the rates actually paid at each\n settlement (2 years back) use get_funding_settlements. symbol: BASEUSDT. minutes: 5 to 20160.",
"inputSchema": {
"properties": {
"minutes": {
"default": 1440,
"title": "Minutes",
"type": "integer"
},
"symbol": {
"title": "Symbol",
"type": "string"
}
},
"required": [
"symbol"
],
"title": "get_funding_historyArguments",
"type": "object"
},
"name": "get_funding_history",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "get_funding_historyOutput",
"type": "object"
}
},
{
"description": "Latest perpetual funding rates and mark prices for every tracked\n exchange/symbol pair. Positive rate = longs pay shorts.",
"inputSchema": {
"properties": {},
"title": "get_funding_ratesArguments",
"type": "object"
},
"name": "get_funding_rates",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "get_funding_ratesOutput",
"type": "object"
}
},
{
"description": "Settled funding rates, one row per settlement, from Binance and Bybit\n history — up to 730 days for any pool coin (e.g. BTCUSDT). The backtest\n series; get_funding_history is the live 10-second archive since July 2026.",
"inputSchema": {
"properties": {
"days": {
"default": 365,
"title": "Days",
"type": "integer"
},
"exchange": {
"default": "all",
"title": "Exchange",
"type": "string"
},
"symbol": {
"title": "Symbol",
"type": "string"
}
},
"required": [
"symbol"
],
"title": "get_funding_settlementsArguments",
"type": "object"
},
"name": "get_funding_settlements",
"outputSchema": null
},
{
"description": "[measured] Historical rows as CSV, for backtests. dataset: liquidations | funding_settlements\n (since 2024-09) | funding_hourly | open_interest_hourly | hl_positions (Hyperliquid whale\n positions with liquidation prices). start/end are ISO dates (UTC). Without a key or on the free\n tier only the last 24 hours are available; Pro: any 31-day window; Bot: full history. The key\n is read from the MCP connection's X-API-Key header, or pass api_key. limit caps rows here\n (max 5000); for bulk use download_url with the same key.",
"inputSchema": {
"properties": {
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
},
"dataset": {
"title": "Dataset",
"type": "string"
},
"end": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "End"
},
"exchange": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Exchange"
},
"limit": {
"default": 500,
"title": "Limit",
"type": "integer"
},
"start": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Start"
},
"symbol": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Symbol"
}
},
"required": [
"dataset"
],
"title": "get_historyArguments",
"type": "object"
},
"name": "get_history",
"outputSchema": null
},
{
"description": "[measured] One Hyperliquid account by address: live positions (size, entry, mark,\n liquidation price, distance to liquidation, leverage, unrealized PnL), account value, and\n its archived position snapshots. History depth: 24 h free, 31 days Pro, everything since\n 2026-09-27 on Bot (key from the MCP connection's X-API-Key header, or api_key).",
"inputSchema": {
"properties": {
"address": {
"title": "Address",
"type": "string"
},
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
}
},
"required": [
"address"
],
"title": "get_hl_accountArguments",
"type": "object"
},
"name": "get_hl_account",
"outputSchema": null
},
{
"description": "[measured] Perp markets deployed on Hyperliquid by third parties (HIP-3 builder dexs):\n equity indices, single stocks, commodities and pre-IPO names such as xyz:SP500 or xyz:GOLD.\n For each dex: its markets (coin named dex:COIN), open interest in USD (one side), 24h\n volume, mark price, hourly funding and its APR. These are NOT in get_open_interest or\n get_funding_rates, which cover Hyperliquid's own crypto listing. Live from Hyperliquid,\n cached 2 minutes. No arguments.",
"inputSchema": {
"properties": {},
"title": "get_hl_builder_marketsArguments",
"type": "object"
},
"name": "get_hl_builder_markets",
"outputSchema": null
},
{
"description": "[measured] Liquidation map for Hyperliquid, not a model: leveraged\n positions of the 10,000 largest accounts binned by the exchange-reported\n liquidation price, long/short notional per bin, cumulative curves and the\n largest positions. Partial coverage: large accounts only. range: 12h | 1d | 3d | 7d | max (±100%, recommended: large accounts run low leverage).",
"inputSchema": {
"properties": {
"range": {
"default": "1d",
"title": "Range",
"type": "string"
},
"symbol": {
"title": "Symbol",
"type": "string"
}
},
"required": [
"symbol"
],
"title": "get_hl_liquidation_mapArguments",
"type": "object"
},
"name": "get_hl_liquidation_map",
"outputSchema": null
},
{
"description": "[measured] Leveraged positions of the 10,000 largest Hyperliquid accounts with the\n exchange-reported liquidation price, closest to liquidation first (sort='value' = largest\n first). Filters: coin (BTC), side (long|short), min_usd, max_dist_pct. Each row carries the\n account address; pass it to get_hl_account. Snapshot age is in age_s.",
"inputSchema": {
"properties": {
"coin": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Coin"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
},
"max_dist_pct": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Dist Pct"
},
"min_usd": {
"default": 100000,
"title": "Min Usd",
"type": "number"
},
"side": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Side"
},
"sort": {
"default": "distance",
"title": "Sort",
"type": "string"
}
},
"title": "get_hl_whalesArguments",
"type": "object"
},
"name": "get_hl_whales",
"outputSchema": null
},
{
"description": "Liquidation cascades as discrete events rather than a raw feed.\n\n Each event: coin, which side broke, when it started, how long it ran, total\n and peak-minute USD, how many multiples of that coin's own normal minute it\n was, the move in cross-venue median mark price during it, and what price did\n in the hour after. Also returns market_wide: minutes when three or more\n unrelated coins cascaded together.\n ",
"inputSchema": {
"properties": {
"hours": {
"default": 168,
"title": "Hours",
"type": "integer"
},
"limit": {
"default": 40,
"title": "Limit",
"type": "integer"
}
},
"title": "get_liquidation_cascadesArguments",
"type": "object"
},
"name": "get_liquidation_cascades",
"outputSchema": null
},
{
"description": "[modeled] How the liquidation map evolved over time: grid[t][b] is the estimated USD of\n leveraged positions with their liquidation price in price bin b at time cols[t] (ms),\n bins[b] is the bin's centre price (240 bins fitted to the traded range) and price[t] is\n the close. A level disappears once price trades through it. Use get_liquidation_map for\n the current picture only (smaller answer, split by leverage and exchange); use this one\n to see when a cluster formed and whether it is still there. The answer is large\n (about 35,000 numbers). symbol: BASEUSDT. exchange: all | binance | bybit | okx.\n range: 12h | 1d | 3d | 7d.",
"inputSchema": {
"properties": {
"exchange": {
"default": "all",
"title": "Exchange",
"type": "string"
},
"range": {
"default": "1d",
"title": "Range",
"type": "string"
},
"symbol": {
"title": "Symbol",
"type": "string"
}
},
"required": [
"symbol"
],
"title": "get_liquidation_heatmapArguments",
"type": "object"
},
"name": "get_liquidation_heatmap",
"outputSchema": null
},
{
"description": "[modeled] Liquidation map for a perp symbol (e.g. BTCUSDT): estimated\n notional of leveraged positions per price bin at their liquidation price,\n split by leverage tier (5/10/20/25/50/100x) and by exchange (binance/bybit/okx\n or 'all'), plus cumulative long/short curves from the current price outward.\n range: 12h | 1d | 3d | 7d. It answers \"if price reaches this level, how much\n is there\" (backtest: top quarter of the levels price traded held 32% of the\n liquidated USD, chance 25%); it does NOT predict where price will go.\n Live scoring: get_accuracy.",
"inputSchema": {
"properties": {
"exchange": {
"default": "all",
"title": "Exchange",
"type": "string"
},
"range": {
"default": "1d",
"title": "Range",
"type": "string"
},
"symbol": {
"title": "Symbol",
"type": "string"
}
},
"required": [
"symbol"
],
"title": "get_liquidation_mapArguments",
"type": "object"
},
"name": "get_liquidation_map",
"outputSchema": null
},
{
"description": "Recent liquidation events (side, price, qty), NEWEST FIRST, at most `limit` rows (max\n 2000). Market-wide, 500 rows is only a few minutes of a busy hour: pass `symbol` (BTCUSDT)\n and/or `min_usd` to look further back, or use get_liquidations_summary for totals and\n get_history for the archive. side=long means a long position was liquidated.",
"inputSchema": {
"properties": {
"limit": {
"default": 500,
"title": "Limit",
"type": "integer"
},
"min_usd": {
"default": 0,
"title": "Min Usd",
"type": "number"
},
"minutes": {
"default": 60,
"title": "Minutes",
"type": "integer"
},
"symbol": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Symbol"
}
},
"title": "get_liquidationsArguments",
"type": "object"
},
"name": "get_liquidations",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "get_liquidationsOutput",
"type": "object"
}
},
{
"description": "[measured] Liquidation totals for the whole market, already added up: rekt (USD\n liquidated in the last 1h/4h/12h/24h, split long/short), by_symbol and by_exchange over\n the last `minutes`, and series (30-minute buckets). Start here for \"how much was\n liquidated\"; use get_liquidations for the individual orders and get_liquidation_cascades\n for events. Totals are a floor: Binance and Bitget throttle their feeds. side=long means\n longs were liquidated. minutes: 1 to 1440, applies to the breakdowns and the series.",
"inputSchema": {
"properties": {
"minutes": {
"default": 1440,
"title": "Minutes",
"type": "integer"
}
},
"title": "get_liquidations_summaryArguments",
"type": "object"
},
"name": "get_liquidations_summary",
"outputSchema": null
},
{
"description": "Latest global long/short account ratio per exchange/symbol.",
"inputSchema": {
"properties": {},
"title": "get_long_short_ratioArguments",
"type": "object"
},
"name": "get_long_short_ratio",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "get_long_short_ratioOutput",
"type": "object"
}
},
{
"description": "Deterministic market brief for a perp symbol: 24h liquidations (totals,\n by exchange), current funding + 24h extremes per venue, OI by venue with\n 1h/4h/24h changes, net position flows, modeled liquidation risk zones\n above/below price, and top-trader positioning. Free, no LLM involved —\n ideal input for your own reasoning.",
"inputSchema": {
"properties": {
"symbol": {
"default": "BTCUSDT",
"title": "Symbol",
"type": "string"
}
},
"title": "get_market_briefArguments",
"type": "object"
},
"name": "get_market_brief",
"outputSchema": null
},
{
"description": "Cross-venue order book microstructure for BTC, ETH and SOL.\n\n Per venue: spread in bps, immediately-executable depth in USD and the bid\n share of it, measured over a band narrow enough that every venue's stream\n captured it, each venue around its own mid. Also the basis - how far apart\n venues price the same asset - plus a per-minute spread history.\n\n Does NOT answer \"what moves price 0.5%\": the streams only carry the\n innermost levels, so that would be extrapolation, not measurement.\n ",
"inputSchema": {
"properties": {
"minutes": {
"default": 240,
"title": "Minutes",
"type": "integer"
}
},
"title": "get_microstructureArguments",
"type": "object"
},
"name": "get_microstructure",
"outputSchema": null
},
{
"description": "Per-venue open-interest ranking for a perp symbol (e.g. BTCUSDT): OI in\n coins and USD, market share %, 1h/4h/24h OI change % and USD flow, and\n OI / 24h-volume ratio per exchange, plus market totals.",
"inputSchema": {
"properties": {
"symbol": {
"title": "Symbol",
"type": "string"
}
},
"required": [
"symbol"
],
"title": "get_oi_boardArguments",
"type": "object"
},
"name": "get_oi_board",
"outputSchema": null
},
{
"description": "Latest open interest (contracts and USD) per exchange/symbol.",
"inputSchema": {
"properties": {},
"title": "get_open_interestArguments",
"type": "object"
},
"name": "get_open_interest",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "get_open_interestOutput",
"type": "object"
}
},
{
"description": "[measured] Open interest over time for one contract, one row per venue per time\n bucket: ts (ms), exchange, oi (coins, one side), oi_usd. Use it to see how positioning\n built up or unwound; for the current snapshot with shares and 1h/4h/24h changes use\n get_oi_board, for every contract at once get_open_interest. symbol: BASEUSDT (BTCUSDT).\n minutes: look-back window, 5 to 20160 (14 days); snapped to a fixed set of windows.",
"inputSchema": {
"properties": {
"minutes": {
"default": 240,
"title": "Minutes",
"type": "integer"
},
"symbol": {
"title": "Symbol",
"type": "string"
}
},
"required": [
"symbol"
],
"title": "get_open_interest_historyArguments",
"type": "object"
},
"name": "get_open_interest_history",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "get_open_interest_historyOutput",
"type": "object"
}
},
{
"description": "[measured] Resting limit orders over time on ONE exchange: cells of (time bucket, price\n bucket, quantity in coins) from archived order-book snapshots, with price_min, price_max,\n price_step and time_step (seconds) describing the grid. Shows where bid and ask walls\n stood and when they were pulled; not liquidations (see get_liquidation_heatmap for\n those) and not trades (get_footprint). exchange: binance | bybit | okx. symbol: BTCUSDT,\n ETHUSDT or SOLUSDT only. minutes: 1 to 1440.",
"inputSchema": {
"properties": {
"exchange": {
"title": "Exchange",
"type": "string"
},
"minutes": {
"default": 30,
"title": "Minutes",
"type": "integer"
},
"symbol": {
"title": "Symbol",
"type": "string"
}
},
"required": [
"exchange",
"symbol"
],
"title": "get_orderbook_heatmapArguments",
"type": "object"
},
"name": "get_orderbook_heatmap",
"outputSchema": null
},
{
"description": "Per-coin positioning regime from price direction crossed with open interest.\n\n price up + OI up = new longs; price up + OI down = short covering (a rally\n with no new buyers); price down + OI up = new shorts; price down + OI down =\n long flush. Returns a market summary (coins and net OI per regime) plus per\n coin the price change, OI change and current OI over the window.\n ",
"inputSchema": {
"properties": {
"minutes": {
"default": 240,
"title": "Minutes",
"type": "integer"
}
},
"title": "get_positioning_regimeArguments",
"type": "object"
},
"name": "get_positioning_regime",
"outputSchema": null
},
{
"description": "Order-book wall lifecycle heuristic: large levels classified as\n active_wall / absorbed / pulled_wall / suspected_spoof based on whether\n trades executed into them before they vanished.",
"inputSchema": {
"properties": {
"exchange": {
"default": "binance",
"title": "Exchange",
"type": "string"
},
"minutes": {
"default": 60,
"title": "Minutes",
"type": "integer"
},
"symbol": {
"default": "BTCUSDT",
"title": "Symbol",
"type": "string"
}
},
"title": "get_spoofingArguments",
"type": "object"
},
"name": "get_spoofing",
"outputSchema": null
},
{
"description": "Crypto-related equities (COIN, MSTR, miners) and spot BTC/ETH ETF quotes:\n price, day change %, range, volume. ~15-min delayed.",
"inputSchema": {
"properties": {},
"title": "get_stocksArguments",
"type": "object"
},
"name": "get_stocks",
"outputSchema": null
},
{
"description": "Upcoming token unlock events for pool coins, nearest first: next unlock\n timestamp and token amount per public vesting schedule.",
"inputSchema": {
"properties": {},
"title": "get_token_unlocksArguments",
"type": "object"
},
"name": "get_token_unlocks",
"outputSchema": null
},
{
"description": "Top lead traders (OKX copy trading, public data): total PnL, win rate,\n AUM, copiers, live open positions (pair, side, leverage, entry, uPnL) and\n recently closed trades with realized PnL.",
"inputSchema": {
"properties": {},
"title": "get_top_tradersArguments",
"type": "object"
},
"name": "get_top_traders",
"outputSchema": null
},
{
"description": "The webhook alert subscriptions that belong to the caller's API key (read-only): id,\n type, url, filters (symbol, min_usd, x_normal, max_dist_pct) and delivery health:\n last_status (HTTP code or error of the last delivery), fails (consecutive failures; a\n subscription pauses itself at 20) and active. Call it to find the id for delete_alert or\n to check why alerts stopped arriving. Needs a Pro or Bot key, from the MCP connection's\n X-API-Key header or the api_key argument; without one it returns an error object, not\n an exception.",
"inputSchema": {
"properties": {
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
}
},
"title": "list_alertsArguments",
"type": "object"
},
"name": "list_alerts",
"outputSchema": null
},
{
"description": "[measured] What exists: every venue we track and, for each, the contracts with live open\n interest right now (BASEUSDT symbols), plus the top-100 coin pool. Call this first when unsure\n which symbol or exchange string another tool accepts.",
"inputSchema": {
"properties": {},
"title": "list_marketsArguments",
"type": "object"
},
"name": "list_markets",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:6e44244d3568d781958eeb419b6ec18da3936dccc9dcdd47160cb085d2aa9fc4 | sha256sum