data·vault_
← Catalog

model context protocol data access

MCP server for datasets

dataset-mcp is an MCP server for datasets. Five tools, five data packs, 149,673 rows. Your Model Context Protocol client asks for rows, the server streams the full files from a public GitHub release, caches them locally, and answers. No API key, no auth, no CSV exports to babysit.

5 tools 149,673 rows queryable 19 MB full release server free

What the server exposes

ToolWhat it returns
list_datasets()every pack in the catalog with row counts, full-query availability, and release sizes
get_dataset_info(slug)file list with rows, bytes, SHA-256, attribution, license, and query tips
get_sample(slug, format)free preview rows, about 22 per pack, JSON or CSV
query_dataset(slug, {...})filter and paginate the full file: where clauses with =, contains, gt, lt, column picking, 100 rows per call, next_offset paging
get_stats(slug, {...})row count, non-empty and unique counts, numeric min/max/mean, top-N frequencies

Where clauses compare numerically when both sides are numeric and fall back to lexicographic order for dates and strings. format: "csv" returns a page as raw CSV text if your pipeline prefers it.

Install

# run it once to sanity-check (npm 12+ needs the allow-git flag)
npx --allow-git=all -y github:jayjex/dataset-mcp

npm 12 refuses git-based installs by default (EALLOWGIT). npm 10 and 11 run the plain form: npx -y github:jayjex/dataset-mcp. Or set allow-git=github.com in ~/.npmrc once. A Claude Desktop walkthrough with verified session output is in the MCP server for Claude Desktop guide. For the full 12-tool index across dataset-mcp, earn-bounty-scanner, and solana-research-library, see the MCP tools list.

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "dataset-mcp": {
      "command": "npx",
      "args": ["--allow-git=all", "-y", "github:jayjex/dataset-mcp"]
    }
  }
}

pi and other TOML-based agents

[mcp_servers.dataset-mcp]
command = "npx"
args = ["--allow-git=all", "-y", "github:jayjex/dataset-mcp"]

The server reads two URLs: catalog.json for the dataset index and the data-v1 release manifest for file hashes. First query of a file downloads it into ~/.cache/dataset-mcp/; every later load re-verifies the SHA-256, so a stale cache triggers one fresh download instead of serving wrong rows. Warm calls run in 180 to 400 ms.

Real output, end to end

These blocks come from a live JSON-RPC session against server v1.1.0, not from docs.

Texas rents from the 51,895-row ZIP table

query_dataset("hud-fmr-2026", { where: [{ column: "state", op: "=", value: "TX" }], limit: 5 })

total_matched: 3247 | next_offset: 5 | sha: 04ffb4597f37
  76437  Abilene, TX MSA   2br=1090
  76443  Abilene, TX MSA   2br=1090
  76464  Abilene, TX MSA   2br=1090
  76469  Abilene, TX MSA   2br=1090
  79501  Abilene, TX MSA   2br=1140

Every 2025 NFL game with closing lines

query_dataset("nfl-games", { where: [{ column: "season", op: "=", value: 2025 }], limit: 5 })

total_matched: 285 | next_offset: 5
  2025_01_DAL_PHI  2025-09-04  DAL@PHI  20-24  spread=8.5  total=47.5
  2025_01_KC_LAC   2025-09-05  KC@LAC   21-27  spread=-3   total=47.5

NYC Airbnb price distribution

get_stats("airbnb-six-cities", { file: "airbnb-new-york-city.csv", column: "price" })

rows: 30234 | non_empty: 20331 | unique: 12114
numeric: min=4.58 max=31210.79 mean=267.35
top: 59.11 x62, 61.01 x45, 209.00 x32, 279.00 x30, 165.93 x28

Cold download of the 3.6 MB NYC file plus parse takes about 1.5 s; the same query from cache took 371 ms. Bad slugs and bad operators come back as proper tool errors with the valid values listed.

The Superteam Earn dataset takes the same calls: filter the cards file by reward, or count HUMAN_ONLY vs AGENT_ALLOWED with get_stats. Worked examples are in the Superteam Earn data guide and the web3 bounty listings data guide.

Registry entry

Listed in the official MCP registry as io.github.jayjex/dataset-mcp, version 1.1.0. Source and issues: github.com/jayjex/dataset-mcp. The server code is MIT.

Licenses and attribution

Licenses attach per dataset, not per server. They ship in the release manifest and in every get_dataset_info response. Keep the attribution lines when you republish.

DatasetLicenseSource credit
nfl-gamesCC BY 4.0nflverse
hud-fmr-2026Public domainUS Department of Housing and Urban Development
airbnb-six-citiesCC BY 4.0Inside Airbnb
earn-bountiesPublic API aggregate, personal and commercial use, no resale of files as-isSuperteam Earn public API
scraper-packPersonal and commercial use, no redistribution, samples only over MCPData Vault

Get the full packs

The server queries the full released files for free. If your project needs the raw CSVs in your own pipeline, the complete packs are sold per dataset:

PackRowsPrice
NFL games and betting lines 1999-20267,548on product page
HUD Fair Market Rents FY202651,895on product page
Airbnb listings, 6 US cities90,169on product page
Superteam Earn listings and API routes51 cardson product page
Playwright scraping script pack10 scriptson product page

Every pack also previews free over plain HTTP: see free datasets for AI agents and the agent endpoint docs.