Skip to main content
Glama
parthakker

NFL Analytics MCP

by parthakker

🏈 NFL Analytics

A personal NFL analytics platform that runs entirely on your machine: a DuckDB warehouse of every NFL play since 1999, a dark-glass web app ("Jarvis"), auto- updating data and news, a prediction-market tracker, and an AI analyst wired in through MCP. Questions get answered by running SQL against real data β€” computed answers, not vibes.

No API keys. No subscriptions for the core experience. One ~2 GB download.

CI

What's inside

Piece

What it does

Warehouse (nfl.duckdb)

1.28M plays 1999–2025, schedules with odds through 2026, player/team stats across the v1/v2 nflverse eras, advanced stats, NGS, snap counts, depth charts, personnel/participation, FTN charting, combine, ESPN QBR β€” plus curated venue coordinates powering true travel distances

Jarvis web app (web/)

FastAPI + React SPA: team HUDs, matchup cards (travel/rest/refs/coach-H2H/weather/market for any game 1999β†’upcoming), all-time H2H explorer, coaches with scheme fingerprints, referee intel, betting board (Vegas-vs-Kalshi dislocations), news, and a 15-chapter football Knowledge book

Derived views

20+ SQL views: team-game workhorse with haversine travel miles, H2H series with relocations merged, referee tendencies 1999+, coach PROE/4th-down aggression, one unified weather answer per game

News engine (news.duckdb)

ESPN + team feeds polled 6-hourly, categorized, player-tagged by gsis_id, full-text searchable

Kalshi tracker (kalshi.duckdb)

Market snapshots 6-hourly + Vegas line history per game

Prediction model

Trained and validated, deliberately paused β€” betting surfaces are market-vs-market only

MCP server

20 tools (query_warehouse, betting_board, coach_profile, referee_stats, news_search…) exposing all of it to Claude

Legacy dashboard (legacy/)

The original Streamlit UI, kept for friends β€” frozen

Related MCP server: Feyod MCP Server

Architecture

nflverse releases ──► scripts/refresh_data.py ──► data/*.csv
                                 β”‚
              Open-Meteo ──► fetch_weather.py
                                 β”‚
        build_warehouse.py ──► nfl.duckdb ◄── build_views.py (views, venues, macros)
                                 β”‚
     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
     β”‚                           β”‚                          β”‚
 MCP server (20 tools)   FastAPI (web/api)        pytest invariants (tests/)
     β”‚                           β”‚
  Claude Code            React SPA (web/ui) ── Playwright e2e
                                 β”‚
              kalshi.duckdb ── news.duckdb (sidecars, 6h pollers)

Five Windows Task Scheduler jobs keep it fresh: weekly data refresh, 6-hourly news + Kalshi pollers, a daily smoke test, and a nightly headless Claude health check that audits the data and runs the test suite.

Quick start

See SETUP.md. Short version:

git clone https://github.com/parthakker/nfl-analytics && cd nfl-analytics
uv sync --extra dev                               # or: pip install -e ".[dev]"
python -m nfl_analytics.cli refresh --bootstrap   # ~2 GB nflverse download
cd web/ui && npm ci && npm run build && cd ../..
python web/run_web.py                             # Jarvis on http://localhost:8000

Testing

Three pytest tiers: tests/unit (no database), tests/warehouse (invariants against the real DB β€” travel distances, H2H symmetry, venue resolution, era continuity), tests/api (contract tests for every endpoint). CI runs the unit tier plus warehouse/api against committed ~24 MB fixture databases (nfl fixture rebuilds them). Playwright e2e (web/ui/e2e/) runs locally against the real server: npm run e2e.

Design principles

  • Compute, don't retrieve β€” every answer is SQL with its filters cited.

  • Hand-curated where sources are wrong β€” data/stadiums.json fixes venues nflverse mislabels (all seven 2025 international games); curated files are version-controlled and never overwritten by refreshes.

  • Verification built in β€” row floors and sanity checks in the build, invariant tests in CI, a smoke test and an AI health loop on the scheduler.

  • Keep it simple β€” one machine, no cloud dependencies, boring tools.

Data credits

nflverse (play-by-play, stats, rosters), nfldata (schedules + odds), Open-Meteo (weather), ESPN (news, QBR), Kalshi (market data). MIT licensed; the data belongs to its sources.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    A
    maintenance
    An MCP server that provides access to over 12 years of NFL play-by-play data through a local DuckDB database. It enables users to query player performance, team statistics, and situational efficiency metrics like EPA and WPA using natural language.
    Last updated
    12
    MIT
  • A
    license
    -
    quality
    A
    maintenance
    Query local CSV, Parquet, JSON and TSV files with real SQL via DuckDB. Gives your AI coding tool ground-truth data access instead of hallucinated answers.
    Last updated
    4
    MIT

View all related MCP servers

Related MCP Connectors

  • Query PostgreSQL databases in plain English β€” LLM-generated, safety-validated SQL.

  • GibsonAI MCP server: manage your databases with natural language

  • The grounded data layer for any LLM: governed SQL, metrics, lineage and catalog over your data.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/parthakker/nfl-analytics'

If you have feedback or need assistance with the MCP directory API, please join our Discord server