data·vault_
← Catalog

For agents and scripts

This catalog is plain files on a static host. No API keys, no auth, no JavaScript required. Fetch catalog.json, read a sample to learn the schema, done. The free datasets for AI agents page lists all five packs with row counts and full-pack prices. Worked query examples live in the Superteam Earn data guide and the other guides. Wondering what llms.txt is for? Our guide covers the structure with a live example. For a wider list of what costs nothing here and outside, see the free tools for AI agents roundup.

Start here

# the whole catalog, machine-readable
curl -s https://jayjex.github.io/data-vault/catalog.json | jq '.datasets[] | {slug, niche, rows: .stats.rows}'

# schema + first rows of one pack
curl -s https://jayjex.github.io/data-vault/data/hud-fmr-2026/sample.json | jq '.columns, .records[0]'

Endpoints

PathReturns
/catalog.jsonindex of every dataset: slugs, niches, stats, sample URLs, full-data links
/data/<slug>/sample.json{slug, name, columns[], row_count, records[]}, first 10-25 records
/data/<slug>/sample.csvsame rows as CSV
/data/<slug>/…extra summary tables per dataset (tiny, complete)
/llms.txtplain-text catalog for LLM crawlers (guide)
/sitemap.xmlall pages

Worked example

# python3, stdlib only
import json, urllib.request

cat = json.load(urllib.request.urlopen("https://jayjex.github.io/data-vault/catalog.json"))
for d in cat["datasets"]:
    print(d["slug"], d["stats"]["rows"])

sample = json.load(urllib.request.urlopen(cat["datasets"][0]["sample"]["json"]))
print(sample["columns"])        # schema
print(sample["records"][0])     # first row

Full data

Samples are free. Full packs are sold through Getly; every entry in catalog.json carries the link under full_data. Checkout and delivery run on Getly's side.

Attribution

Samples are CC BY 4.0 unless the dataset page says otherwise. Republish them with credit: "Data Vault (jayjex.github.io/data-vault), CC BY 4.0", plus the upstream source noted per dataset (nflverse, HUD, Inside Airbnb, superteam.fun).

MCP server

An MCP server wraps this catalog, and since v1.1.0 it queries the FULL files, not only samples: query_dataset filters and paginates any released table (100 rows per call, offset to page through, operators =, contains, gt, lt), get_stats returns row counts, unique counts, numeric min/max/mean, and top-N frequencies, plus list_datasets, get_dataset_info, and get_sample for previews. Full files (19 MB, 22 files) live in the public release data-v1; the server caches them locally and verifies SHA-256 on every load. Repo: github.com/jayjex/dataset-mcp, listed in the official registry as io.github.jayjex/dataset-mcp.

One query, no download on your side:

query_dataset("hud-fmr-2026", {
  where: [{ column: "state", op: "=", value: "TX" }],
  limit: 5
})
# 3,247 Texas rows matched, returns zip, area_name, fmr_0br..fmr_4br
# Claude Desktop (claude_desktop_config.json)
{
  "mcpServers": {
    "dataset-mcp": {
      "command": "npx",
      "args": ["--allow-git=all", "-y", "github:jayjex/dataset-mcp"]
    }
  }
}

The --allow-git=all flag is for npm 12+, which refuses git-based installs by default; npm 10/11 run the plain form, and the upcoming npm package drops the flag. Or set allow-git=github.com in ~/.npmrc.

Full install walkthrough, Claude Desktop and pi config, and a captured session: MCP server for datasets. For a full worked session against the bounty data, see the web3 bounty listings data guide. The tools across all three of our servers (dataset-mcp, earn-bounty-scanner, solana-research-library) are indexed with real outputs in the MCP tools list. For a Claude Desktop-focused page with each server's config JSON and registry entry, see MCP tools for Claude.

npm package @jayjex/dataset-mcp is coming; the github: form needs no publish.