- Tessera Analytics
Tessera Analytics
<!-- Favicons -->
<link rel="icon" href="./favicon.ico" sizes="32x32" />
<link rel="icon" href="./favicon.svg" type="image/svg+xml" />
<link rel="apple-touch-icon" href="./apple-touch-icon.png" />
<!-- title, description + canonical are per-page (svelte:head). Open Graph /
Twitter tags are emitted once by <Seo> in the root +layout.svelte,
driven by page.data.meta with site defaults — see $lib/seo.ts. Keeping
them out of here guarantees exactly one of each property so per-page
overrides are honoured. -->
<link href="./_app/immutable/entry/start.BBGsO4lV.js" rel="modulepreload">
<link href="./_app/immutable/chunks/Cu4Sq0y7.js" rel="modulepreload">
<link href="./_app/immutable/chunks/C--if0Cq.js" rel="modulepreload">
<link href="./_app/immutable/chunks/DDcdGUOQ.js" rel="modulepreload">
<link href="./_app/immutable/chunks/OA8UcISh.js" rel="modulepreload">
<link href="./_app/immutable/chunks/9jCRIOPm.js" rel="modulepreload">
<link href="./_app/immutable/entry/app.BbZgdUBZ.js" rel="modulepreload">
<link href="./_app/immutable/chunks/C1FmrZbK.js" rel="modulepreload">
<link href="./_app/immutable/chunks/DkRQccgZ.js" rel="modulepreload">
<link href="./_app/immutable/chunks/DoQXDt6e.js" rel="modulepreload">
<link href="./_app/immutable/chunks/C20WhMb8.js" rel="modulepreload">
<link href="./_app/immutable/chunks/CDs3mRF_.js" rel="modulepreload">
<link href="./_app/immutable/chunks/DbYzANqX.js" rel="modulepreload">
<link href="./_app/immutable/chunks/BHV2v6Uf.js" rel="modulepreload">
<link href="./_app/immutable/chunks/DNAPQNej.js" rel="modulepreload">
<link href="./_app/immutable/chunks/CD_Tr_Jq.js" rel="modulepreload">
<link href="./_app/immutable/nodes/0.D9buckMM.js" rel="modulepreload">
<link href="./_app/immutable/chunks/RnF8O7qn.js" rel="modulepreload">
<link href="./_app/immutable/chunks/Bz-Hk2KL.js" rel="modulepreload">
<link href="./_app/immutable/chunks/DDmuCwZD.js" rel="modulepreload">
<link href="./_app/immutable/chunks/FTMsDSRq.js" rel="modulepreload">
<link href="./_app/immutable/chunks/6CHuagz6.js" rel="modulepreload">
<link href="./_app/immutable/chunks/84_Gf4tm.js" rel="modulepreload">
<link href="./_app/immutable/chunks/By5_t60L.js" rel="modulepreload">
<link href="./_app/immutable/chunks/CT2tKW37.js" rel="modulepreload">
<link href="./_app/immutable/chunks/DhaDs5YL.js" rel="modulepreload">
<link href="./_app/immutable/chunks/CO2Itu5d.js" rel="modulepreload">
<link href="./_app/immutable/chunks/BTV-Kwzx.js" rel="modulepreload">
<link href="./_app/immutable/chunks/Z-G-lnDE.js" rel="modulepreload">
<link href="./_app/immutable/chunks/Dwjep2xL.js" rel="modulepreload">
<link href="./_app/immutable/chunks/kKGMRTh4.js" rel="modulepreload">
<link href="./_app/immutable/chunks/D-I75ZP0.js" rel="modulepreload">
<link href="./_app/immutable/nodes/14.BBeg1BNP.js" rel="modulepreload">
<link href="./_app/immutable/chunks/Yepf5Tyz.js" rel="modulepreload">
<link href="./_app/immutable/chunks/Bo64Esu1.js" rel="modulepreload">
<link href="./_app/immutable/chunks/BEH7LFWW.js" rel="modulepreload">
<link href="./_app/immutable/chunks/CPv6mVyv.js" rel="modulepreload">
<link href="./_app/immutable/chunks/DKCC8gPu.js" rel="modulepreload">
<link href="./_app/immutable/chunks/CqfozFHK.js" rel="modulepreload">
<link href="./_app/immutable/chunks/Bp45ypXP.js" rel="modulepreload">
<link href="./_app/immutable/chunks/CNVCects.js" rel="modulepreload">
<!--gsrl61--><meta property="og:type" content="website"/> <meta property="og:url" content="https://tesseralytics.dev/mcp-server"/> <meta property="og:title" content="Tessera Analytics — Hyperliquid DEX data, as an API"/> <meta property="og:description" content="Clean, query-ready OHLCV, funding and positioning datasets built from raw Hyperliquid trade data — downloadable as Parquet over a REST API."/> <meta property="og:image" content="https://tesseralytics.dev/og.png"/> <meta property="og:image:width" content="1200"/> <meta property="og:image:height" content="630"/> <!--[-1--><!--]--> <meta name="twitter:card" content="summary_large_image"/> <meta name="twitter:title" content="Tessera Analytics — Hyperliquid DEX data, as an API"/> <meta name="twitter:description" content="Clean, query-ready OHLCV, funding and positioning datasets built from raw Hyperliquid trade data — downloadable as Parquet over a REST API."/> <meta name="twitter:image" content="https://tesseralytics.dev/og.png"/><!----><!--1e7ozup--><meta name="description" content="Connect Tessera Analytics' Hyperliquid derivatives data to Claude and other MCP clients. Explore the catalog and read funding, positioning, and funding/RV + wallet forecasts conversationally — authed with your API key."/> <link rel="canonical" href="https://tesseralytics.dev/mcp-server"/><!----><title>Tessera Analytics — MCP Server</title>
<link href="./_app/immutable/assets/0.DGp9VNJW.css" rel="stylesheet">
</head>
<body data-sveltekit-preload-data="hover">
<div style="display: contents"><!--[--><!--[0--><!--[--><!----> <div class="flex min-h-screen flex-col"><header class="border-border bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 border-b backdrop-blur"><div class="mx-auto flex h-14 max-w-[1100px] items-center justify-between gap-4 px-6"><a class="flex items-center gap-2 no-underline" href="/"><svg class="h-6 w-6" viewBox="0 0 187.7 215.74" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><g fill="#6084c3"><polygon points="87.26 212.47 .89 162.59 29.69 112.71 32.45 107.9 53.58 71.31 82.22 79.72 82.22 79.75 83.35 80.08 71.42 118.91 67.74 130.83 67.74 130.86 67.72 130.86 58.15 161.99 58.68 162.9 59.21 163.79 87.26 212.47"></polygon><polygon points="26.92 107.9 0 154.51 0 61.28 26.92 107.9"></polygon><polygon points="187.7 61.28 187.7 154.51 161.5 109.1 160.8 107.9 187.7 61.28"></polygon><polygon points="186.81 162.59 94.74 215.74 63.34 161.41 72.31 132.25 72.67 131.1 97.19 138.6 100.68 139.65 104.12 140.66 136.38 150.16 158.01 112.71 158.71 113.91 186.81 162.59"></polygon><polygon points=".87 53.15 92.94 0 124.33 54.33 115.37 83.49 115.01 84.64 90.49 77.14 87 76.09 83.56 75.08 51.3 65.58 29.66 103.03 28.97 101.83 .87 53.15"></polygon></g><polygon fill="currentColor" points="100.44 3.32 186.81 53.21 158.01 103.09 155.25 107.9 134.12 144.49 105.49 136.07 105.49 136.05 104.36 135.71 116.28 96.89 119.96 84.96 119.96 84.94 119.98 84.94 129.55 53.81 129.02 52.89 128.49 52.01 100.44 3.32"></polygon></svg><!----> <span class="text-lg font-bold tracking-tight">Tessera Analytics</span></a> <nav class="hidden items-center gap-1 md:flex"><!--[--><a href="/datasets" class="rounded-md px-3 py-1.5 text-sm transition-colors text-muted-foreground hover:text-foreground">Datasets</a><a href="/mcp-server" class="rounded-md px-3 py-1.5 text-sm transition-colors text-foreground font-medium">MCP</a><a href="/pricing" class="rounded-md px-3 py-1.5 text-sm transition-colors text-muted-foreground hover:text-foreground">Pricing</a><a href="/api-docs" class="rounded-md px-3 py-1.5 text-sm transition-colors text-muted-foreground hover:text-foreground">API Docs</a><a href="/sdks" class="rounded-md px-3 py-1.5 text-sm transition-colors text-muted-foreground hover:text-foreground">SDKs</a><a href="/blog" class="rounded-md px-3 py-1.5 text-sm transition-colors text-muted-foreground hover:text-foreground">Blog</a><a href="/faq" class="rounded-md px-3 py-1.5 text-sm transition-colors text-muted-foreground hover:text-foreground">FAQ</a><!--]--></nav> <div class="flex items-center gap-2"><div class="hidden items-center gap-2 md:flex"><!--[-1--><!--[0--><a data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-lg border border-transparent bg-clip-padding text-sm font-medium focus-visible:ring-3 active:not-aria-[haspopup]:translate-y-px aria-invalid:ring-3 [&_svg:not([class*='size-'])]:size-4 group/button inline-flex shrink-0 items-center justify-center whitespace-nowrap transition-all outline-none select-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 hover:bg-muted hover:text-foreground dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2" href="/login"><!---->Sign in<!----></a><!--]--><!----> <!--[0--><a data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-lg border border-transparent bg-clip-padding text-sm font-medium focus-visible:ring-3 active:not-aria-[haspopup]:translate-y-px aria-invalid:ring-3 [&_svg:not([class*='size-'])]:size-4 group/button inline-flex shrink-0 items-center justify-center whitespace-nowrap transition-all outline-none select-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 bg-primary text-primary-foreground [a]:hover:bg-primary/80 h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2" href="/signup"><!---->Get API key<!----></a><!--]--><!----><!--]--></div> <div class="md:hidden"><!--[--><!--[--><!--[--><!--[--><!--$s1--><!--[0--><!--[-1--><button data-slot="sheet-trigger" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-lg border border-transparent bg-clip-padding text-sm font-medium focus-visible:ring-3 active:not-aria-[haspopup]:translate-y-px aria-invalid:ring-3 [&_svg:not([class*='size-'])]:size-4 group/button inline-flex shrink-0 items-center justify-center whitespace-nowrap transition-all outline-none select-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 hover:bg-muted hover:text-foreground dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground size-8" type="button" aria-label="Open menu" id="bits-s1" aria-haspopup="dialog" aria-expanded="false" data-dialog-trigger="" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="lucide-icon lucide lucide-menu"><!--[--><!----><path d="M4 5h16"><!----></path><!----><!----><path d="M4 12h16"><!----></path><!----><!----><path d="M4 19h16"><!----></path><!----><!--]--><!----></svg><!----></button><!--]--><!----><!--]--><!--]--><!--]--> <!--[--><!--[--><!--[-1--><!--]--><!--]--><!--]--><!----><!--]--><!--]--></div></div></div></header><!----> <div class="flex-1"><!--[-1--><!--[--><main><section class="px-6 pt-16 pb-8 text-center"><!----><span data-slot="badge" class="h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive group/badge inline-flex w-fit shrink-0 items-center justify-center overflow-hidden whitespace-nowrap transition-colors focus-visible:ring-[3px] [&>svg]:pointer-events-none bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80 mb-4"><!---->Model Context Protocol<!----><!----></span><!----><!----> <h1 class="text-4xl font-bold tracking-tight sm:text-5xl">Tessera Analytics MCP server</h1> <p class="text-muted-foreground mx-auto mt-4 max-w-2xl text-lg">Point Claude — or any MCP client — at Tessera Analytics' Hyperliquid datasets and explore them
in plain language. Discover the catalog, read the data dictionary, and pull actual rows of
funding, positioning, and the funding/RV and wallet forecasts, all authed with your API key.</p> <div class="mt-6 flex flex-wrap justify-center gap-3"><!--[0--><a data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-lg border border-transparent bg-clip-padding text-sm font-medium focus-visible:ring-3 active:not-aria-[haspopup]:translate-y-px aria-invalid:ring-3 [&_svg:not([class*='size-'])]:size-4 group/button inline-flex shrink-0 items-center justify-center whitespace-nowrap transition-all outline-none select-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 bg-primary text-primary-foreground [a]:hover:bg-primary/80 h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2" href="/account"><!---->Get an API key<!----></a><!--]--><!----> <!--[0--><a data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-lg border bg-clip-padding text-sm font-medium focus-visible:ring-3 active:not-aria-[haspopup]:translate-y-px aria-invalid:ring-3 [&_svg:not([class*='size-'])]:size-4 group/button inline-flex shrink-0 items-center justify-center whitespace-nowrap transition-all outline-none select-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 border-border bg-background hover:bg-muted hover:text-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 aria-expanded:bg-muted aria-expanded:text-foreground h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2" href="/datasets"><!---->Browse the catalog<!----></a><!--]--><!----></div></section> <div class="mx-auto flex max-w-[860px] flex-col gap-10 px-6 py-8"><section><h2 class="mb-3 text-xl font-semibold tracking-tight">What it is</h2> <p class="text-muted-foreground">The <a class="text-primary underline-offset-4 hover:underline" href="https://modelcontextprotocol.io" rel="noopener noreferrer">Model Context Protocol</a> lets an AI assistant call external tools. Our hosted MCP server exposes Tessera Analytics' gold
datasets as a small set of tools, so instead of writing download scripts you can just ask — <em>"what's the latest funding-innovation forecast for BTC?"</em> — and the model calls <code class="font-mono text-xs">read_dataset</code> and reasons over the rows. It's a single
hosted endpoint (<code class="font-mono text-xs">https://tesseralytics.dev/mcp</code>), authed with the same API
key you use for the REST API.</p></section> <section><h2 class="mb-3 text-xl font-semibold tracking-tight">Installation</h2> <p class="text-muted-foreground mb-4">First, <a class="text-primary underline-offset-4 hover:underline" href="/account">create an API key</a> on your account page. Then wire it into your client — replace <code class="font-mono text-xs">YOUR_TESSERA_API_KEY</code> with your key.</p> <div class="flex flex-col gap-6"><div data-slot="card" data-size="default" class="ring-foreground/10 bg-card text-card-foreground group/card flex flex-col gap-4 overflow-hidden rounded-xl py-4 text-sm ring-1 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl"><div data-slot="card-header" class="group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3"><div data-slot="card-title" class="text-base leading-snug font-medium group-data-[size=sm]/card:text-sm"><!---->Claude Code<!----></div><!----> <p data-slot="card-description" class="text-muted-foreground text-sm"><!---->One command — native streamable-HTTP transport with a header.<!----></p><!----><!----></div><!----> <div data-slot="card-content" class="px-4 group-data-[size=sm]/card:px-3"><div class="group bg-card border-border relative rounded-lg border"><button type="button" class="text-muted-foreground hover:text-foreground hover:bg-accent absolute top-2 right-2 rounded-md p-1.5 opacity-0 transition group-hover:opacity-100 focus-visible:opacity-100" aria-label="Copy code"><!--[-1--><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="lucide-icon lucide lucide-copy size-4"><!--[--><!----><rect width="14" height="14" x="8" y="8" rx="2" ry="2"><!----></rect><!----><!----><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"><!----></path><!----><!--]--><!----></svg><!--]--></button> <pre class="tessera-code overflow-x-auto p-4 text-left text-sm"><code class="hljs language-bash"><!---->claude mcp add --transport http tessera https://tesseralytics.dev/mcp \
--header "Authorization: Bearer $TESSERA_API_KEY"
Tools
Example prompts
Once connected, drive it in natural language. A few things to try:
The model calls list_datasets then describe_dataset gold_positioning_funding_factors_1d, and summarises the columns — including the funding- and RV-innovation forecast
factors and their percentiles.
It calls read_dataset for gold_positioning_funding_factors_1d, coin BTC, latest month, and reads off the most
recent factor_funding_innov_1d / factor_funding_innov_7d values and percentiles.
This works on a free key for BTC/ETH/SOL/HYPE.
It reads gold_wallet_factors_1mo for the coin
and month and ranks by the forecast factors. Wallet factors, raw funding/positioning,
and every coin (incl. HIP-3) require the Pro plan.
Because MCP tools compose, you can plug in a second MCP server or skill — say one that reads a venue like Boros or Derive — and ask things like "given Tessera Analytics' BTC funding-innovation forecast for next week, which Boros funding markets look mispriced?" The model pulls the forecast from Tessera Analytics and cross-references the other tool.
This is a usage example only — the venue connector is yours to bring; Tessera Analytics doesn't ship or endorse one, and none of this is trading advice.
<script>
{
__sveltekit_13qqchq = {
base: new URL(".", location).pathname.slice(0, -1)
};
const element = document.currentScript.parentElement;
Promise.all([
import("./_app/immutable/entry/start.BBGsO4lV.js"),
import("./_app/immutable/entry/app.BbZgdUBZ.js")
]).then(([kit, app]) => {
kit.start(app, element, {
node_ids: [0, 14],
data: [null,null],
form: null,
error: null
});
});
}
</script>
</div>
</body>
Server Config
{
"mcpServers": {
"tessera": {
"type": "http",
"url": "https://tesseralytics.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_TESSERA_API_KEY"
}
}
}
}Recommend Servers
View Allsummarize chat message
test
高德地图官方 MCP Server