{"serverId":"mcp-registry/dev.tesseralytics/hyperliquid-data","tools":[{"name":"describe_dataset","fixed":{"name":"describe_dataset","description":"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.","inputSchema":{"type":"object","title":"DatasetArg","$schema":"https://json-schema.org/draft/2020-12/schema","required":["asset"],"properties":{"asset":{"type":"string","description":"Dataset name, as returned by `list_datasets`."}},"description":"Which dataset's dictionary to return."},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":158,"tokensAfter":158},{"name":"get_universe","fixed":{"name":"get_universe","description":"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.","inputSchema":{"type":"object","title":"UniverseArgs","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"bar":{"type":"string","default":null,"nullable":true,"description":"`1d` (the default) for completed UTC days, `1h` for completed UTC hours.\nAn interval, at either grain, is stamped by the instant it **closes** —\nan hourly `…T09:00:00Z` is the hour that ended at 09:00."},"day":{"type":"string","default":null,"nullable":true,"description":"The day or hour to describe: `YYYY-MM-DD` or `latest` at `bar: 1d`, a\ncompleted `YYYY-MM-DDTHH:00:00Z` (the hour that *ended* there) or\n`latest` at `bar: 1h`."},"days":{"type":"integer","format":"uint","default":null,"minimum":0,"nullable":true,"description":"How many days of completed intervals the range counts cover, 1..30.\nDefaults to 7 at `bar: 1h` — the hourly source publishes one object per\ncompleted hour, so an unbounded inventory would open every hour ever\npublished — and to the whole published range at `bar: 1d`, whose source\nis one object per month. The window the counts actually covered is\n`interval_start`..`interval_end`, and `notes` says when it was bounded."},"scope":{"type":"string","default":null,"nullable":true,"description":"`crypto` (the default), `hip3`, or `all`."},"top_n":{"type":"integer","format":"uint","default":null,"minimum":0,"nullable":true,"description":"Per-market detail is off by default; passing a value (1..50) returns\nthat many markets, listed by name, alongside the summary."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":562,"tokensAfter":562},{"name":"list_datasets","fixed":{"name":"list_datasets","description":"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.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":89,"tokensAfter":89},{"name":"list_fields","fixed":{"name":"list_fields","description":"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.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":122,"tokensAfter":122},{"name":"query_cross_section","fixed":{"name":"query_cross_section","description":"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 ","inputSchema":{"type":"object","title":"CrossSectionArgs","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"bar":{"type":"string","default":null,"nullable":true,"description":"`1d` (the default) for completed UTC days, `1h` for completed UTC hours.\nAn interval, at either grain, is stamped by the instant it **closes** —\nan hourly `…T09:00:00Z` is the hour that ended at 09:00."},"day":{"type":"string","default":null,"nullable":true,"description":"The day or hour to rank. For `bar: 1d`, `YYYY-MM-DD` or `latest` (the\ndefault: the most recent complete day). For `bar: 1h`, a completed hour\nas `YYYY-MM-DDTHH:00:00Z` — the hour that *ended* at that instant — or\n`latest`."},"stat":{"type":"string","default":null,"nullable":true,"description":"`raw` (the default), `percentile`, or `zscore`. Percentile and z-score\nare ranked **within the markets your plan can see**, so they need a\nslice of at least four markets."},"coins":{"type":"array","items":{"type":"string"},"default":null,"nullable":true,"description":"Restrict to these markets. A market outside your plan's coverage is\nignored rather than widening the answer."},"scope":{"type":"string","default":null,"nullable":true,"description":"`crypto` (the default), `hip3`, or `all`. Restricted markets track an\nunderlying that closes, so their flow is not comparable on a weekend."},"top_n":{"type":"integer","format":"uint","default":null,"minimum":0,"nullable":true,"description":"How many markets to return, 1..50. Defaults to 20."},"columns":{"type":"array","items":{"type":"string"},"default":null,"nullable":true,"description":"Fields to return per market, from `list_fields`. `coin` is always\nincluded. Defaults to price, traded notional and the interval's return."},"order_by":{"type":"string","default":null,"nullable":true,"description":"The field to rank by. Need not appear in `columns`. Defaults to the\ninterval's traded notional."},"descending":{"type":"boolean","default":null,"nullable":true,"description":"Rank largest first (the default). Set false for the smallest."},"window_days":{"type":"integer","format":"uint","default":null,"minimum":0,"nullable":true,"description":"Recompute the trailing-window fields over this many days, 1..365\n(default 7). The response always states the window it used."},"min_usd_volume_7d_avg":{"type":"number","format":"double","default":null,"nullable":true,"description":"Drop markets whose average daily traded notional over the window is\nbelow this value, so dust cannot top a ranking."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":856,"tokensAfter":856},{"name":"query_series","fixed":{"name":"query_series","description":"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.","inputSchema":{"type":"object","title":"SeriesArgs","$schema":"https://json-schema.org/draft/2020-12/schema","required":["coins"],"properties":{"bar":{"type":"string","default":null,"nullable":true,"description":"`1d` (the default) for completed UTC days, `1h` for completed UTC hours.\nAn interval, at either grain, is stamped by the instant it **closes** —\nan hourly `…T09:00:00Z` is the hour that ended at 09:00."},"coins":{"type":"array","items":{"type":"string"},"description":"The markets to return, 1..10."},"scope":{"type":"string","default":null,"nullable":true,"description":"`crypto` (the default), `hip3`, or `all`."},"columns":{"type":"array","items":{"type":"string"},"default":null,"nullable":true,"description":"Fields to return per row, from `list_fields`. The interval column\n(`day` at 1d, `hour` at 1h) and `coin` are always included."},"ending_day":{"type":"string","default":null,"nullable":true,"description":"The last interval to include: `YYYY-MM-DD` or `latest` at `bar: 1d`, a\ncompleted `YYYY-MM-DDTHH:00:00Z` (the hour that *ended* there) or\n`latest` at `bar: 1h`."},"window_days":{"type":"integer","format":"uint","default":null,"minimum":0,"nullable":true,"description":"Length of the trailing window in days, 1..365. Defaults to 7. At\n`bar: 1h` one window day is 24 hourly rows."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":514,"tokensAfter":514}],"toolsChanged":6,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}