Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

Hyperliquid Market Data — OHLCV, Funding Rates & Positioning (Tessera)

REMOTE · TESSERALYTICS.DEV · SCANNED AUG 3

Hyperliquid perp market data for LLMs: OHLCV, funding, open interest, positioning & forecasts.

+4 this week 64 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security63
Transport & Reachability100
Schema Quality & AI Usability65
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 1201 tokens (~200/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 96% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities40
  • Spec-recency check failed: implements MCP spec 2025-03-26; the latest is 2026-07-28. See how to fix → Fail
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · tesseralytics.dev

# add to Claude Code
claude mcp add --transport http dev-tesseralytics-hyperliquid-data https://tesseralytics.dev/mcp
# ~/.codex/config.toml
[mcp_servers.dev-tesseralytics-hyperliquid-data]
url = "https://tesseralytics.dev/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dev-tesseralytics-hyperliquid-data": {
      "type": "remote",
      "url": "https://tesseralytics.dev/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add dev-tesseralytics-hyperliquid-data --url https://tesseralytics.dev/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  dev-tesseralytics-hyperliquid-data:
    url: "https://tesseralytics.dev/mcp"
// mcp.json
{
  "mcpServers": {
    "dev-tesseralytics-hyperliquid-data": {
      "type": "http",
      "url": "https://tesseralytics.dev/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1
    • Schema quality: good → excellent functional
  • 2 Aug 26 0
    • Schema quality: excellent → good functional
  • 31 Jul 26 +2
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 59

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://tesseralytics.dev/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=tesseralytics.dev CN=Amazon RSA 2048 M04,O=Amazon,C=US 9 Jun 2026 23 Dec 2026 RSA 2048 SHA256-RSA 52f3915bb4d7c3d12d6c4dd3fb729e2
SANs: tesseralytics.dev, www.tesseralytics.dev
CN=Amazon RSA 2048 M04,O=Amazon,C=US (CA) CN=Amazon Root CA 1,O=Amazon,C=US 23 Aug 2022 23 Aug 2030 RSA 2048 SHA256-RSA 773124f2a952e3ed18a58bdb85d1bc0ce5f27
CN=Amazon Root CA 1,O=Amazon,C=US (CA) CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US 25 May 2015 31 Dec 2037 RSA 2048 SHA256-RSA 67f944a2a27cdf3fac2ae2b01f908eeb9c4c6
DNSSEC insecure

Validation of tesseralytics.dev. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
dev. present 60074 8 Verified
tesseralytics.dev. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload
content-security-policy default-src 'none'; frame-ancestors 'none'
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://tesseralytics.dev/mcp Verified 200
http (plaintext) http://tesseralytics.dev/mcp HTTPS enforced 301 https://tesseralytics.dev/mcp
MCP tools — 6 exposed · ~1,040 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
describe_dataset ~63

Get the full data dictionary for one dataset: prose plus every column's type, nullability and plain-English meaning. Use before read_dataset to choose columns.

NameTypeReqDescription
assetstringyesDataset name, e.g. `gold_positioning_funding_factors_1d`.
NameTypeReqDescription
cadencestringyesGranularity + partitioning, e.g. "1-minute bars, partitioned per (coin, month)".
categorystringyesPresentation category, e.g. `raw-tiles` or `forecast-layer`.
column_countintegeryesNumber of documented columns.
column_groupsarrayyesColumns, grouped for presentation, in schema order.
descriptionstringyesLonger prose — the dictionary page header.
direct_answerstring40-60 word keyword-first lead answer — the definitional "what is this" blurb, and the strongest AI-citation extraction target. Defaulted for forward/backward compatibility with snapshots predating th…
keywordsarrayPer-dataset discovery keywords (schema.org keywords on the web).
namestringyesDataset name / asset key, e.g. `gold_ohlcv_1m`.
notestringOptional "how to use this" callout.
seo_titlestringKeyword-first SEO title tag (web `<title>`). Defaulted so older snapshots without the field still deserialize.
summarystringyesOne-line intuitive summary — the catalog card.
temporalMachine-readable timestamp/interval contract: what the label marks and how to join without leaking the future. Defaulted so snapshots predating the field still deserialize.
tierstringyesDisplay tier: `free` or `pro`. Re-derived from `policy.rs` on read, so it always matches actual entitlement regardless of the on-disk value.
titlestringyesHuman-friendly title, e.g. "Order-flow OHLCV (1-minute)".
use_casestringOne-line "what you'd use it for" (buyer-intent) copy.

No examples provided.

get_download_url ~91

Return a short-lived presigned URL to download the full parquet for one (asset, coin, month) partition. Use for bulk access beyond read_dataset's row cap.

NameTypeReqDescription
assetstringyes
coinstringCoin symbol, e.g. `BTC`. Omit for market-wide datasets that have no coin dimension.
monthstringyesPartition month, `YYYY-MM`.
NameTypeReqDescription
expires_atstringyesRFC3339 expiry.
urlstringyesPresigned Tigris URL for the full parquet partition.

No examples provided.

list_datasets ~36

List the available Tessera Analytics gold datasets with summaries and the plan (free/pro) each requires. Call first to discover what's available.

Input schema present but exposes no named parameters.

NameTypeReqDescription
datasetsarrayyes
generated_atstringyes
your_tierstringyesThe caller's own plan (`free` or `pro`). Datasets whose `tier` is `pro` while this is `free` are visible for discovery but require an upgrade to read.

No examples provided.

list_partitions ~275

List a dataset's (coin, month) partitions the caller's plan can read. Defaults to a compact SUMMARY (coin/month counts, month range, totals) — pass summary=false to enumerate (paginated via limit/offset). Filter with `coin` and/or `month`. Use to choose a valid coin/month for read_dataset.

NameTypeReqDescription
assetstringyesDataset name, e.g. `gold_funding_1h`.
coinstringOptional: only partitions for this coin, e.g. `BTC`.
limitintegerFull mode only (`summary=false`): max partitions to return (clamped to 1000). Defaults to 200.
monthstringOptional: only partitions for this month, `YYYY-MM`.
offsetintegerFull mode only (`summary=false`): partitions to skip, for pagination. Defaults to 0; pass the previous response's `next_offset` for the next page.
summarybooleanReturn compact coverage stats (coin/month counts, range, totals) instead of every `(coin, month)` row. Defaults to **true** — the full cross-product is hundreds of rows for some datasets. Set `false`…
NameTypeReqDescription
assetstringyes
generated_atstringyes
next_offsetintegerFull mode only: pass as `offset` to fetch the next page, or null when the listing is exhausted.
notestringSet when the dataset exists but requires a plan the caller doesn't have.
partitionsarrayyesPresent in full mode (`summary=false`): this page of partitions. Empty in summary mode.
summaryPresent in summary mode (the default): compact coverage stats.
total_matchingintegeryesFull mode only: total partitions matching the filter, before pagination.
your_tierstringyes

No examples provided.

query_cross_section ~328

Rank all coins for one day of a daily cross-section dataset (one row per coin per day, e.g. gold_positioning_funding_factors_1d) in a single call. Pass `order_by` (a numeric column), `day` (YYYY-MM-DD or "latest"), optional `top_n` (default 20), `descending` (default true), `columns`, and `coins`. Replaces fanning out read_dataset per coin. For a single coin's series use read_dataset.

NameTypeReqDescription
assetstringyesDataset name. Must be a daily coin cross-section (one row per coin per `day`), e.g. `gold_positioning_funding_factors_1d`.
coinsarrayOptional: restrict to these coins. Coins outside the caller's plan are dropped. Omit to rank every coin the plan allows.
columnsarrayExtra columns to include per row (besides `coin`, `day`, and `order_by`). Omit to return every column.
daystringyesUTC day to rank, `YYYY-MM-DD`, or `"latest"` for the newest available day.
descendingbooleanSort direction. Defaults to true — highest `order_by` first.
order_bystringyesNumeric column to rank coins by, e.g. a `factor_*` column. Call `describe_dataset` to see the options.
top_nintegerMax coins to return (clamped to 1000). Defaults to 20.
NameTypeReqDescription
assetstringyes
coin_countintegeryesNumber of coins ranked (rows returned).
columnsarrayyesColumns present in each returned row.
daystringyesThe day actually ranked (resolved when `day="latest"`), `YYYY-MM-DD`.
descendingbooleanyes
notestringAdvisories: latest-day resolution, coins with no row that day (coverage varies by day), coins excluded for a null/non-numeric `order_by`, and any partitions skipped on a read error.
order_bystringyes
rowsarrayyesOne object per coin, ranked; each includes `coin`, `day`, `order_by` and any requested `columns`.

No examples provided.

read_dataset ~247

Read actual data rows from one (asset, coin, month) partition. Defaults to the latest 200 rows. Pass `columns` to limit width and `limit` (max 1000) to limit rows — a partition can be tens of thousands of rows. For a whole partition use get_download_url.

NameTypeReqDescription
assetstringyesDataset name, e.g. `gold_positioning_funding_factors_1d`.
coinstringCoin symbol, e.g. `BTC`. Omit for market-wide datasets (e.g. `gold_wallet_flow_1mo`) that have no coin dimension.
columnsarrayColumns to return. Strongly recommended — omitting returns every column, which is wide for some datasets. Use `describe_dataset` to see columns.
limitintegerMax rows to return (clamped to 1000). Defaults to the latest 200.
monthstringyesPartition month, `YYYY-MM`.
orderWhich end of the partition to read. `latest` (default) returns the most recent rows — usually what you want for a "what's the current…" question.
NameTypeReqDescription
assetstringyes
coinstringCoin symbol; absent for market-wide datasets.
columnsarrayyesThe columns actually returned, in order.
monthstringyes
notestringGuidance when the result was capped, or other advisories.
row_countintegeryes
rowsarrayyesOne JSON object per row.
total_rows_in_partitionintegeryesTotal rows in the partition (before the row cap / limit).
truncatedbooleanyesTrue when `total_rows_in_partition` exceeds the rows returned.

No examples provided.