npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@jayjex/dataset-mcp

v1.1.3

Published

MCP server over the jayjex Data Vault catalog: full query access to released datasets (NFL games, HUD rents FY2026/FY2027 ZIP-county-metro, Airbnb listings, bounty listings) plus free samples, fetched on demand.

Readme

dataset-mcp

MCP server over the jayjex Data Vault. Sample data is free, and since v1.1.0 the full released files are queryable too: filter, paginate, and summarize every row without downloading anything yourself.

Full data lives in a public GitHub release (data-v1, 28 MB across 32 files). The server downloads a file once into ~/.cache/dataset-mcp/, pins the cache to the manifest SHA-256, and then answers queries from memory.

Run it with npx -y @jayjex/dataset-mcp (npm) or npx -y github:jayjex/dataset-mcp (repo). See Config below.

Datasets

Browse the full catalog at jayjex.github.io/data-vault: 51,895 HUD rent rows, 7,548 NFL games, 90,169 Airbnb listings. Samples are free, and this server queries the full files at no cost.

| slug | what it is | rows | license | |---|---|---|---| | nfl-games | NFL games with scores, closing spreads, totals, moneylines, 1999-2026 | 7,548 + 2 derived tables | CC BY 4.0 (nflverse) | | hud-fmr-2026 | HUD Fair Market Rents FY2026, rent by ZIP, county, and state | 51,895 + 2 tables | Public domain (US government data) | | hud-fmr-2027 | HUD Fair Market Rents FY2027, effective October 1, 2026, same three tables | 51,871 + 2 tables | Public domain (US government data) | | hud-fmr-metro-2027 | HUD Fair Market Rents FY2027 for the top-50 metro areas by ZIP coverage, plus the 50 priciest 2BR metros | 2 × 50 | Public domain (US government data) | | hud-fmr-by-zip-2027 | HUD Fair Market Rents FY2027 by ZIP code, one row per ZIP-HUD-area pair (10,093 ZIPs span more than one area) | 51,871 | Public domain (US government data) | | airbnb-six-cities | Airbnb listings in Austin, Nashville, Denver, NYC, Las Vegas, San Diego | 90,169 across 6 files | CC BY 4.0 (Inside Airbnb) | | earn-bounties | Superteam Earn listings: cards, full descriptions, 186+ API routes | 51 cards / 28 descriptions | Public API aggregate | | scraper-pack | Playwright scraping scripts (samples only) | n/a | See data-vault page |

Tools

  • list_datasets(): every dataset in the catalog plus full-query availability and release sizes.
  • get_dataset_info(slug): catalog entry merged with the release manifest: file list with row counts, byte sizes, SHA-256, attribution, and query tips.
  • get_sample(slug, format): free preview rows, about 22 per dataset.
  • query_dataset(slug, {file?, columns?, where?, limit?, offset?, format?}): filter and paginate the full file. where clauses support =, contains (case-insensitive), gt, lt; numeric compare when both sides are numeric, lexicographic fallback for dates and strings. 100 rows per call, next_offset pages through the rest.
  • get_stats(slug, {file?, column?, top?}): row count, non-empty and unique counts, numeric min/max/mean, top-N value frequencies.

Query examples

New York, NY rents from the FY2027 ZIP table (51,871 rows, rates effective October 1, 2026):

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

Returns total_matched: 2397 with rows like:

{
  "zip": "10001",
  "area_name": "New York, NY HUD Metro FMR Area",
  "state": "NY",
  "fmr_2br": "4460"
}

Texas rents from the FY2026 ZIP table:

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

Returns total_matched: 3247 with rows like:

{
  "zip": "76437",
  "area_name": "Abilene, TX MSA",
  "state": "TX",
  "fmr_2br": "1090"
}

The 10 priciest 2BR metro areas across all 649 FY2027 areas (hud-fmr-metro-2027):

query_dataset("hud-fmr-metro-2027", {
  file: "most-expensive-2br.csv",
  limit: 10
})

Returns total_matched: 50 with rows like:

{
  "metro_code": "METRO42100M42100",
  "metro_name": "Santa Cruz-Watsonville, CA MSA",
  "state": "CA",
  "fmr_2br_median": "4250"
}

Every row for ZIP 95060 from the FY2027 ZIP-level table (hud-fmr-by-zip-2027, 51,871 rows — the full source table behind both metro files):

query_dataset("hud-fmr-by-zip-2027", {
  where: [{ column: "zip", op: "=", value: "95060" }]
})

Returns total_matched: 1 with rows like:

{
  "zip": "95060",
  "hud_area_code": "METRO42100M42100",
  "metro": "metro",
  "area_name": "Santa Cruz-Watsonville, CA MSA",
  "state": "CA",
  "fmr_2br": "5260"
}

Texas rents by ZIP, all bedroom counts:

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

Returns total_matched: 3244.

Every 2025 NFL game (285 matched):

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

NYC Airbnb price stats:

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

Returns rows: 30234, min: 4.58, max: 31210.79, mean: 267.35 plus the most common prices.

Filter JSON without converting to CSV:

query_dataset("earn-bounties", {
  where: [{ column: "rewardAmount", op: "gt", value: 5000 }],
  columns: ["title", "rewardAmount", "token"]
})

format: "csv" returns the page as CSV text if your pipeline prefers raw rows.

Config

From npm (works everywhere, no git access needed):

{
  "mcpServers": {
    "dataset-mcp": {
      "command": "npx",
      "args": ["-y", "@jayjex/dataset-mcp"]
    }
  }
}

pi, Codex, or other TOML-based agents:

[mcp_servers.dataset-mcp]
command = "npx"
args = ["-y", "@jayjex/dataset-mcp"]

From GitHub (same server, pulls the repo instead of the npm tarball):

Claude Desktop (claude_desktop_config.json):

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

npm 12 refuses git-based installs by default (EALLOWGIT). Pass the flag through npx:

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

or set allow-git=github.com once in your ~/.npmrc. npm 10 and 11 need no flag.

How it works

Three HTTPS sources, no API key, no auth, no tracking:

  • https://jayjex.github.io/data-vault/catalog.json: dataset index (cached 10 minutes).
  • https://raw.githubusercontent.com/jayjex/dataset-mcp/main/data/manifest.json: release manifest with per-file SHA-256, rows, bytes, and download URLs (cached 10 minutes).
  • https://github.com/jayjex/dataset-mcp/releases/download/data-v1/<file>: the full files themselves, streamed into the local cache on first query.

A cached file is re-verified against the manifest hash on every load, so a stale or corrupted cache triggers one fresh download instead of serving wrong data. If a tool returns a network error, check that your agent can reach github.com and raw.githubusercontent.com.

Environment overrides:

  • DATA_VAULT_CATALOG_URL: catalog URL (default above).
  • DATA_VAULT_SAMPLE_BASE: sample base URL (default https://jayjex.github.io/data-vault/data).
  • DATASET_MCP_MANIFEST_URL: manifest URL (default above).
  • DATASET_MCP_CACHE_DIR: cache directory (default ~/.cache/dataset-mcp).

Licenses

MIT for the server code. Per-dataset licenses ship in the manifest and in get_dataset_info: public domain for US government data, CC BY 4.0 where the sources require attribution (nflverse, Inside Airbnb). Keep the attribution lines when you republish the data.

Roadmap

Query access is free and unlimited. A paid per-call tier over x402 is planned for high-volume commercial scraping of the same files; the free query path stays.