Source: https://tesseralytics.dev/playground

MCP playground

# Ask the intelligence layer a real question

These are not screenshots. Each question is one real tool call to the shipped MCP server at tesseralytics.dev/mcp — the same endpoint your agent connects to.

## 7 questions, each a real call to /mcp

tessera.mcp · playground anonymous trial

No key, no signup — these run on the anonymous trial

Every market at the daily grain over the trailing 7 days, ranked lists up to 25 rows, 12 calls an hour and 20 a day from this address. Each answer names its own limits; a free key raises the lists to 100 rows and Pro adds the hourly grain and full history.

[Get a free key](https://tesseralytics.dev/signup) [See plans](https://tesseralytics.dev/pricing)

1.  query\_cross\_section

    ### Which markets are paying the most to hold a long?

    Markets trading at least $5M a day, ranked by mean hourly funding on the last complete day and shown as an annualised rate. Funding is a step function, not a smooth score: the venue's neutral print is about 11%/yr and a large block of markets prints exactly that, so the list ties from the fifth row down. Only the head is actually crowded — which is the finding, not a gap in the data.

    Run it yourself

    ```
    curl -sS https://tesseralytics.dev/mcp \
      -H "Content-Type: application/json" \
      --data '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/call",
      "params": {
        "name": "query_cross_section",
        "arguments": {
          "order_by": "funding_rate_mean",
          "descending": true,
          "top_n": 10,
          "min_usd_volume_7d_avg": 5000000,
          "columns": [
            "coin",
            "funding_rate_mean",
            "usd_volume_7d_avg",
            "oi_usd"
          ]
        }
      }
    }'
    ```

2.  query\_cross\_section

    ### Which HIP-3 markets are trading the most?

    Markets that track an underlying trading elsewhere — equities, commodities, oil, semis — ranked by average daily notional over the last week, with their return and what longs are paying. They are 39% of the universe and invisible to a crypto-only view.

    Run it yourself

    ```
    curl -sS https://tesseralytics.dev/mcp \
      -H "Content-Type: application/json" \
      --data '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/call",
      "params": {
        "name": "query_cross_section",
        "arguments": {
          "scope": "hip3",
          "order_by": "usd_volume_7d_avg",
          "descending": true,
          "top_n": 10,
          "columns": [
            "coin",
            "usd_volume_7d_avg",
            "ret_1d",
            "funding_rate_mean"
          ]
        }
      }
    }'
    ```

3.  query\_cross\_section

    ### Where is open interest moving out of character?

    Ranked by how many standard deviations each market's open-interest change sits from its own last 30 days — a tell that a position is being built or unwound, not just a big book. The percentile column places that move against the other markets above $5M/day, which is what stat: percentile computes.

    Run it yourself

    ```
    curl -sS https://tesseralytics.dev/mcp \
      -H "Content-Type: application/json" \
      --data '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/call",
      "params": {
        "name": "query_cross_section",
        "arguments": {
          "order_by": "oi_change_z_30d",
          "descending": true,
          "top_n": 10,
          "stat": "percentile",
          "min_usd_volume_7d_avg": 5000000,
          "columns": [
            "coin",
            "oi_change_z_30d",
            "oi_usd",
            "usd_volume_7d_avg"
          ]
        }
      }
    }'
    ```

4.  screen\_universe

    ### Where are longs paying up while open interest drains?

    Two conditions, both required: funding in the top decile of the floored slice AND open-interest change per unit of traded notional in the bottom half. Longs paying up while the book empties is a squeeze forming — and the conditions are measured over the $5M/day population, not over the dust.

    Run it yourself

    ```
    curl -sS https://tesseralytics.dev/mcp \
      -H "Content-Type: application/json" \
      --data '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/call",
      "params": {
        "name": "screen_universe",
        "arguments": {
          "min_usd_volume_7d_avg": 5000000,
          "conditions": [
            {
              "column": "funding_rate_7d_avg",
              "op": "top_pct",
              "value": 10
            },
            {
              "column": "oi_change_over_volume_7d",
              "op": "bottom_pct",
              "value": 50
            }
          ],
          "columns": [
            "coin",
            "funding_rate_7d_avg",
            "oi_change_over_volume_7d",
            "usd_volume_7d_avg"
          ],
          "order_by": "funding_rate_7d_avg",
          "descending": true,
          "max_results": 10
        }
      }
    }'
    ```

5.  funding\_divergence

    ### Which markets' funding is furthest from ETH's?

    Each market's mean hourly funding over the trailing week minus ETH's, both directions, within the $5M/day population — with the liquidity beside it, because the widest spread in the cross-section is usually one quiet day pulling a seven-day mean in a market nobody can size.

    Run it yourself

    ```
    curl -sS https://tesseralytics.dev/mcp \
      -H "Content-Type: application/json" \
      --data '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/call",
      "params": {
        "name": "funding_divergence",
        "arguments": {
          "benchmark": "ETH",
          "metric": "rate",
          "window_days": 7,
          "top_n": 5,
          "min_usd_volume_7d_avg": 5000000
        }
      }
    }'
    ```

6.  query\_series

    ### Is BTC's recent move backed by real flow?

    BTC's last seven complete days: close, return, traded notional, taker-side open interest and the change in open interest.

    Run it yourself

    ```
    curl -sS https://tesseralytics.dev/mcp \
      -H "Content-Type: application/json" \
      --data '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/call",
      "params": {
        "name": "query_series",
        "arguments": {
          "coins": [
            "BTC"
          ],
          "window_days": 7,
          "columns": [
            "close",
            "ret_1d",
            "usd_volume",
            "net_taker_open",
            "d_open_interest"
          ]
        }
      }
    }'
    ```

7.  query\_series

    ### The last 24 completed hours of BTC flow Pro

    The same question at the hourly grain, which needs a Pro key because the hourly plane is Pro-only: return, volume, taker flow and open-interest change per completed hour.

    The hourly grain is Pro-only, so this one is not sent keyless. [See plans](https://tesseralytics.dev/pricing)

    Run it yourself

    ```
    curl -sS https://tesseralytics.dev/mcp \
      -H "Authorization: Bearer $TESSERA_API_KEY" \
      -H "Content-Type: application/json" \
      --data '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/call",
      "params": {
        "name": "query_series",
        "arguments": {
          "bar": "1h",
          "coins": [
            "BTC"
          ],
          "window_days": 1,
          "columns": [
            "ret_1h",
            "usd_volume",
            "net_taker_open",
            "d_open_interest"
          ]
        }
      }
    }'
    ```

The counts under each answer are the server's own populations: `eligible` is what survives your filters, and every rank, percentile and decile is computed inside it — so raising a floor changes the ranking rather than trimming its tail.

## Take the same call to your agent

Each card carries the exact request it makes, so the one you care about moves to your own terminal unchanged — and once a card has run, its request is pinned to the day the answer described (`day`), which is what makes a read reproducible. The playground is a convenience over the same API, not a wrapper around it.

```
curl -sS https://tesseralytics.dev/mcp \
  -H "Content-Type: application/json" \
  --data '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "query_cross_section",
    "arguments": {
      "order_by": "funding_rate_mean",
      "descending": true,
      "top_n": 10,
      "min_usd_volume_7d_avg": 5000000,
      "columns": [
        "coin",
        "funding_rate_mean",
        "usd_volume_7d_avg",
        "oi_usd"
      ]
    }
  }
}'
```

[Client configs for Claude, Cursor and mcp-remote](https://tesseralytics.dev/mcp-server)

## What a key adds

The trial above ran without one. A free key is the same data on a stable identity and a longer leash: ranked lists up to 100 rows instead of 25, 20 calls a day per key rather than per address. Pro is a different question set — full history, the hourly grain, no call cap. All three cover the whole universe, crypto and HIP-3.

[Get a free key](https://tesseralytics.dev/signup) [See plans](https://tesseralytics.dev/pricing)
