LiquidVision.app — MCP server for crypto derivatives data
Crypto derivatives data for AI agents and trading bots: a remote MCP server,
no install, no API key needed.
Endpoint: https://liquidvision.app/mcp (Streamable HTTP, 42 tools, read-only; the raw-row tools need a Pro/Bot key sent as X-API-Key, the conclusion tools do not)
Lite endpoint: https://liquidvision.app/mcp/lite — the 13 tools that return conclusions (brief, explain, regime, cascades, dispersion, carry, microstructure, three liquidation maps, tokenized stocks, accuracy). Start here if your agent answers questions; use the full server for raw rows, history and alerts.
Discovery: /.well-known/agent-card.json, /.well-known/mcp.json, /.well-known/x402.json; worked examples at /llms-full.txt.
Registry: server.json in this repo is the manifest for the Official MCP Registry (io.github.lv-analytics/liquidvision); also listed on Glama and in awesome-remote-mcp-servers.
What it gives an agent
Open interest and funding rates across 13 venues (Binance, MEXC, Bybit, Bitget,
Hyperliquid, HTX, Gate, OKX, KuCoin, BingX, Aster, Kraken, GMX on Arbitrum), as
each exchange reports them. An audit compares our figures with the exchanges'
own endpoints every 10 minutes and publishes the result:
https://liquidvision.app/accuracy (tool: get_accuracy).
Start with list_markets, then the computed views. They return a conclusion,
not a pile of ticks:
| Tool | Answers |
|---|
get_liquidation_cascades | Liquidations grouped into events: start, duration, multiples of normal, what price did |
get_positioning_regime | Price direction x change in positions per coin: new longs, short covering, new shorts, long flush |
get_funding_dispersion | Coins ranked by how far funding disagrees across venues, each leg annualized with its real settlement cycle |
get_funding_arbitrage | Realized funding carry per coin: what the short-richest / long-cheapest pair earned over 7 and 30 days, share of positive hours, mark gap now |
get_tokenized_stocks | Tokenized stocks, indices, commodities, FX and pre-IPO names as perps on Lighter, Hyperliquid builder markets, Ostium and gTrade: OI, volume, funding, cross-venue price gap |
get_microstructure | Cross-venue spread, top-of-book depth, basis |
get_market_brief | One deterministic risk brief for a symbol: feed it to your own model |
explain_market | "Why did BTC drop 4%?": a grounded answer built from the live data |
Measured, not modeled (Hyperliquid and Lighter, where positions are public):
| Tool | Returns |
|---|
get_hl_whales | Leveraged positions of the 10,000 largest accounts with exchange-reported liquidation prices, closest to liquidation first |
get_hl_account | One address: live positions, liquidation prices, archived snapshots |
get_hl_liquidation_map | Those positions binned by liquidation price |
get_hl_builder_markets | Builder-deployed (HIP-3) perp markets on Hyperliquid: equity indices, stocks, commodities, with open interest, volume, funding |
get_lighter_liquidation_map | Measured liquidation map for Lighter: positions binned by the exchange-reported liquidation price, with the share of venue open interest covered |
get_lighter_whales | Lighter positions with exchange-reported liquidation prices, closest to liquidation first (address = account index, l1_address = wallet) |
Raw data: get_funding_rates, get_funding_history, get_funding_settlements,
get_open_interest, get_open_interest_history, get_oi_board,
get_cash_flows, get_long_short_ratio, get_liquidations,
get_liquidations_summary, get_liquidation_map, get_liquidation_heatmap,
get_orderbook_heatmap, get_footprint, get_cvd, get_spoofing,
get_arbitrum_perps, get_top_traders, get_token_unlocks, get_stocks.
For bots: get_api_key (a free key by email, without a browser),
get_history (archive rows as CSV for backtests), list_history_packages
(monthly Parquet files per dataset with rows, bytes and sha256; Pro: this and last month, Bot: all), create_alert,
list_alerts, delete_alert (webhooks: a liquidation cascade ended, a
Hyperliquid whale is near liquidation, price reached a large modeled cluster).
Connect
Claude Code
claude mcp add --transport http liquidvision https://liquidvision.app/mcp
Claude Desktop / claude.ai: Settings → Connectors → Add custom connector,
URL https://liquidvision.app/mcp.
Cursor / Windsurf / any client with an mcp.json
{
"mcpServers": {
"liquidvision": {
"url": "https://liquidvision.app/mcp"
}
}
}
Raw JSON-RPC
curl -X POST https://liquidvision.app/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Claude Code skill
Copy skills/liquidvision into ~/.claude/skills/ (or a project's .claude/skills/).
It tells the agent which tool answers which question, how to read measured vs modeled data,
and how to pay per file with x402 when history is needed.
Without MCP
The same data is a REST API and a WebSocket feed (https://liquidvision.app/llms.txt
lists every endpoint). Two small clients live in clients/: Python (standard library only; pip install "liquidvision[x402]" for
pay-per-call) and JavaScript (built-in fetch; bring any EIP-712 signer for pay-per-call). Both start at brief().
from liquidvision import LiquidVision
lv = LiquidVision()
lv.brief("BTCUSDT")
lv.hl_whales(coin="BTC", max_dist_pct=5)["positions"]
lv.export("liquidations", symbol="BTCUSDT", start="2026-09-01", end="2026-09-08")
lv = LiquidVision(payer=X402Payer("0x..."))
lv.package("liquidations", "2026-08", "liq_2026-08.parquet")
Examples
examples/passivbot_funding_filter.py: keeps
Passivbot out of coins where holding the
position is expensive (funding annualized with the contract's real interval) or where a
liquidation cascade is running. Writes the ignored_coins file Passivbot reads
continuously. Standard library only, no key:
python examples/passivbot_funding_filter.py --exchange bybit --once
examples/binance_liq_probe.py: which Binance host
actually delivers the liquidation stream.
collectors/gmx_v2.py: a standalone GMX v2 (Arbitrum) collector.
Limits and honesty
- Free and anonymous: the conclusion tools and the lite server, 60 requests/min per IP (120 with a free key); raw-row tools need a Pro/Bot key or x402;
send it as
X-API-Key or Authorization: Bearer lv_.... Paid plans (history
exports, webhook alerts, higher limits): https://liquidvision.app/pricing
explain_market costs real money to run: 5 answers/day anonymous, 25 with a
free key.
- Every dict answer carries
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.
- Open interest is counted on one side on every venue. Bybit documents its
openInterest as "the sum of both sides" and we serve its
singleOpenInterest; Gate and HTX report both sides and are halved. An
aggregator showing those venues at twice our figure is showing both sides.
Commands to check this yourself: docs/coinglass-vs-exchanges.md.
- Liquidation events come from Binance, Bitget, OKX, Bybit, HTX, Gate, Kraken,
GMX (on-chain, complete) and Hyperliquid whale accounts. Binance and Bitget
throttle their feeds to one order per contract per second, so totals are a
floor for the whole market.
- The CEX liquidation map and heatmap are models built from candles and
open-interest changes. They show where leveraged positions sit, not where
price will go. Scored against realized liquidations (367 snapshots, 21 days):
among the price levels actually traded in the next 24 h, the map's top
quarter held 32% of the liquidated USD, against 25% by chance. The live
score is on https://liquidvision.app/accuracy.
- Symbols are
BASEUSDT (BTCUSDT, ETHUSDT, ...). Computed views accept a
fixed set of window sizes; other values snap to the nearest.
More for agents: https://liquidvision.app/llms.txt · REST/OpenAPI:
https://liquidvision.app/api/v1/docs · status and uptime:
https://liquidvision.app/status