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.
What the server exposes
| Tool | What 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.
| Dataset | License | Source credit |
|---|---|---|
| nfl-games | CC BY 4.0 | nflverse |
| hud-fmr-2026 | Public domain | US Department of Housing and Urban Development |
| airbnb-six-cities | CC BY 4.0 | Inside Airbnb |
| earn-bounties | Public API aggregate, personal and commercial use, no resale of files as-is | Superteam Earn public API |
| scraper-pack | Personal and commercial use, no redistribution, samples only over MCP | Data 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:
| Pack | Rows | Price |
|---|---|---|
| NFL games and betting lines 1999-2026 | 7,548 | on product page |
| HUD Fair Market Rents FY2026 | 51,895 | on product page |
| Airbnb listings, 6 US cities | 90,169 | on product page |
| Superteam Earn listings and API routes | 51 cards | on product page |
| Playwright scraping script pack | 10 scripts | on product page |
Every pack also previews free over plain HTTP: see free datasets for AI agents and the agent endpoint docs.