nfl-mcp
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.
README
nfl-mcp
MCP server for NFL play-by-play data (2013–2025), powered by nflreadpy and DuckDB. Query 13 seasons of NFL play-by-play data using natural language in Claude Code, VS Code, or Claude Desktop.
Ask Claude questions like:
- "Who had the best EPA per play in 2024?"
- "Show me Patrick Mahomes' completion % over expected by season"
- "Compare 4th quarter red zone efficiency for KC vs PHI in 2023"
- "Which defenses had the highest sack rate in 3rd & long situations?"
Quickstart
pip install nfl-mcp # or: uvx nfl-mcp
nfl-mcp init # defaults to all 13 seasons (2013–2025) + IDE setup
No database server to install. No credentials to manage. Data is stored locally in DuckDB.
Prerequisites
- Python 3.10+
- uv (recommended) or pip
Setup
1. Initialize
nfl-mcp init
The wizard will:
- Configure the local DuckDB database path
- Download NFL play-by-play data for all 13 seasons by default (2013–2025)
- Auto-configure your IDE (Claude Desktop and/or VS Code)
Options:
--start 2020 First season (default: 2013)
--end 2024 Last season (default: 2025)
--skip-ingest Configure without loading data
--start must be less than or equal to --end.
With no flags, nfl-mcp init loads all seasons from 2013 through 2025.
2. Verify
nfl-mcp doctor
Checks database connectivity, loaded data, and IDE configuration.
3. Manual client configuration (optional)
If you skipped IDE setup during init, or need to reconfigure:
nfl-mcp setup-client # auto-detect clients
nfl-mcp setup-client --client vscode # VS Code only
nfl-mcp setup-client --client claude-desktop
Or configure manually — add to .vscode/mcp.json:
{
"servers": {
"nfl": {
"command": "uvx",
"args": ["nfl-mcp", "serve"]
}
}
}
CLI Reference
nfl-mcp init Interactive setup wizard
nfl-mcp serve Start the MCP server (stdio)
nfl-mcp ingest Load/reload play-by-play data (default: 2013–2025)
nfl-mcp setup-client Configure IDE MCP clients
nfl-mcp doctor Health check
Ingestion options
nfl-mcp ingest Load all 13 seasons (default)
nfl-mcp ingest --start 2020 --end 2024 Load specific seasons
nfl-mcp ingest --fresh Drop and reload all data
nfl-mcp ingest --skip-views Skip aggregate table creation
Tools
| Tool | Description |
|---|---|
nfl_schema |
Database schema reference — compact summary by default, pass category for detail |
nfl_status |
Database health: total plays, loaded seasons, available tables |
nfl_query |
Raw SQL SELECT for custom queries (500 row cap, 10s timeout) |
nfl_search_plays |
Find plays by player, team, season, season type, situation, touchdowns, etc. |
nfl_team_stats |
Pre-aggregated team offense, defense, and situational stats |
nfl_player_stats |
Player stats by season and season type — passing, rushing, or receiving |
nfl_compare |
Side-by-side comparison of two teams or two players |
Database Schema
Hundreds of thousands of plays across 2013–2025, with 370+ nflreadpy columns preserved as-is.
Key tables:
plays— every play, all columnsteam_offense_stats— pre-aggregated by team/seasonteam_defense_stats— pre-aggregated by team/seasonsituational_stats— by team/season/situation (Red Zone, 3rd & Long, etc.)formation_effectiveness— by team/season/formation
Key columns:
epa— expected points added (the best single-play quality metric)wpa— win probability addedposteam/defteam— offensive/defensive team abbreviationspasser_player_name/rusher_player_name/receiver_player_nameplay_type— 'pass' | 'run' | 'field_goal' | 'punt' | 'kickoff' | ...desc— raw play description (use ILIKE for text search)
Local Development
git clone https://github.com/ebhattad/nfl-mcp
cd nfl-mcp
pip install -e ".[dev]"
nfl-mcp init --start 2024 --end 2024
pytest
Troubleshooting
nfl-mcp doctoris the fastest way to verify config, database, and client setup.- If tools return database errors, run
nfl-mcp ingest(or rerunnfl-mcp init) to ensureplaysis loaded. - You can override the DB location with
NFL_MCP_DB_PATH=/path/to/nflread.duckdb.
Branch + PR Enforcement (GitHub)
To force branch-based contributions and test-gated merges on main, set these in GitHub → Settings → Rules/Branches:
- Require a pull request before merging
- Require approvals (at least 1)
- Require conversation resolution before merging
- Require status checks to pass before merging: select
CI / test - Require branches to be up to date before merging
- Restrict who can push to matching branches (or block direct pushes to
mainentirely)
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.