Hyperliquid Market Data — OHLCV, Funding Rates & Positioning (Tessera)
by tesseralytics.dev · remote · no sign-in to list tools · v0.1.0 · published by dev.tesseralytics
Hyperliquid perp market data for LLMs: OHLCV, funding, open interest, positioning & forecasts.
9 tools: 3 change things and 6 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things3Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http hyperliquid-data https://tesseralytics.dev/mcp --header 'Authorization: <your-authorization>'Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
9 tools
Changes things 3Claude Code: ask
funding_divergenceRank markets by how far their funding has diverged from a benchmark (default ETH) over a trailing window.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Rank markets by how far their funding has diverged from a benchmark (default ETH) over a trailing window. Pick bar (1d, the default, or 1h on a Pro key) to read completed days or completed hours. metric=rate compares mean funding over the window; metric=cum_funding_spread compares how far a market's cumulative funding level travelled inside the window (its high minus its low, so never negative) — that is not the funding the window accumulated, which is funding_paid_7d (or funding_rate_7d_avg times the window's completed-interval count). Returns the most diverged in each direction. Markets with no funding reading are excluded from both lists. Descriptive only.
live_marketWhat is happening right now: mark price, current hourly funding, open interest (one-sided — counted once per contract, half of the both-sides figure Hyperliquid's own UI shows, so …No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it What is happening right now: mark price, current hourly funding, open interest (one-sided — counted once per contract, half of the both-sides figure Hyperliquid's own UI shows, so it is directly comparable with the oi_usd column the bar tools return), 24-hour traded notional and premium for up to 25 markets, taken straight from the venue's public API and stamped with the moment it was read. Use this for 'now' questions; the bar=1d and bar=1h tools answer completed intervals only.
screen_universeScreen the whole market on ONE completed interval with several conditions ANDed together.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Screen the whole market on ONE completed interval with several conditions ANDed together. Pick bar (1d, the default, or 1h on a Pro key; a free key is screened at 1d). Conditions use op >, <, >=, <=, between, top_pct or bottom_pct; top_pct/bottom_pct are deciles of your eligible markets, and the liquidity floor is applied before the deciles so they are measured over the population you are choosing from. Answers 'top-decile funding with bottom-decile open-interest change' and 'open interest rising faster than volume'. A market that does not report a field never satisfies a condition on it.
Only reads 6Claude Code: allow
describe_datasetThe full dictionary for ONE downloadable dataset: description plus every column's type, nullability and plain-English meaning.No findings
Why it is in this group
- The name "describe_dataset" says "describe": a word for reading.
Description, as the server wrote it The full dictionary for ONE downloadable dataset: description plus every column's type, nullability and plain-English meaning. Pass a name from list_datasets. Open — no key needed. For the fields the query tools accept, use list_fields.
get_universeThe coverage picture: the last complete interval, how many markets are in the universe for a scope, how much history sits behind them, and how densely it is populated.No findings
Why it is in this group
- The name "get_universe" says "get": a word for reading.
Description, as the server wrote it The coverage picture: the last complete interval, how many markets are in the universe for a scope, how much history sits behind them, and how densely it is populated. Pick bar (1d, the default, or 1h on a Pro key) to describe completed days or completed hours. The range counts cover the last 7 days at bar: 1h (pass days, 1..30, to widen them) and the whole published range at bar: 1d. A compact SUMMARY by default — pass top_n (1..50) only if you need the per-market counts.
list_datasetsList the downloadable datasets: one-line summary, the plan required, and the month range available.No findings
Why it is in this group
- The name "list_datasets" says "list": a word for reading.
Description, as the server wrote it List the downloadable datasets: one-line summary, the plan required, and the month range available. Open — no key needed. Then use describe_dataset for one dataset's columns, or list_fields for the fields the query tools accept.
list_fieldsEvery field the query tools accept, each with its meaning, unit, whether it can be missing, and which bars (1d, 1h) it exists on.No findings
Why it is in this group
- The name "list_fields" says "list": a word for reading.
Description, as the server wrote it Every field the query tools accept, each with its meaning, unit, whether it can be missing, and which bars (1d, 1h) it exists on. Open — no key needed. Call this before query_cross_section, screen_universe or query_series. Percentile, z-score and the top_pct/bottom_pct conditions rank within the markets your plan can see, so they need a wide slice.
query_cross_sectionRank the whole market on ONE completed interval: pick bar (1d, the default, or 1h on a Pro key), columns, an order_by field and top_n.No findings
Why it is in this group
- The name "query_cross_section" says "query": a word for reading.
Description, as the server wrote it Rank the whole market on ONE completed interval: pick bar (1d, the default, or 1h on a Pro key), columns, an order_by field and top_n. Answers 'top markets by funding / open interest / returns on the latest day or hour' and 'what percentile is BTC on open interest'. day defaults to the last complete interval; scope defaults to crypto (HIP-3 markets track an underlying that closes, so their flow is not comparable); stat=percentile|zscore ranks within your eligible markets; window_days recomputes the trailing-window fields; min_usd_volume_7d_avg keeps dust out of the ranking and the ranking is computed after it. Field names come from list_fields — never guess them, they are snake_case compound names and each one lists the bars it exists on; for a cut ('top decile by X') use screen_universe.
query_seriesThe series for one market or a few (max 10): one row per market per interval over a trailing window, oldest first.No findings
Why it is in this group
- The name "query_series" says "query": a word for reading.
Description, as the server wrote it The series for one market or a few (max 10): one row per market per interval over a trailing window, oldest first. Pick bar (1d, the default, for one row per day, or 1h on a Pro key for one row per completed hour). Answers 'is this move backed by real flow' and 'how has positioning built up'. ending_day defaults to the last complete interval. The whole answer is capped, so markets times window_days (times 24 at bar 1h) must stay inside the row cap; the response states the window it used.
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http hyperliquid-data https://tesseralytics.dev/mcp --header 'Authorization: <your-authorization>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__hyperliquid-data__list_fields",
"mcp__hyperliquid-data__query_cross_section",
"mcp__hyperliquid-data__query_series",
"mcp__hyperliquid-data__list_datasets",
"mcp__hyperliquid-data__describe_dataset",
"mcp__hyperliquid-data__get_universe"
],
"ask": [
"mcp__hyperliquid-data__screen_universe",
"mcp__hyperliquid-data__live_market",
"mcp__hyperliquid-data__funding_divergence"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as hyperliquid-data. Review it before you use it.