Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@nfl-mcpWho had the highest EPA per play among quarterbacks in 2024?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
nfl-mcp
MCP server for NFL data (2013–2025), powered by nflreadpy and DuckDB. Query play-by-play, rosters, injuries, stats, and more 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?"
"Who was on IR for the Eagles in Week 10, 2023?"
"Show me snap count trends for the Chiefs receiving corps in 2024"
Quickstart
pip install nfl-mcp # or: uvx nfl-mcp
nfl-mcp init # configure, load data, and start the serverinit walks you through setup and offers to start the server immediately when done. 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 initThe wizard will:
Configure the local DuckDB database path
Download the default NFL datasets (play-by-play, rosters, stats, injuries, and more)
Auto-configure your IDE (Claude Desktop and/or VS Code)
Offer to start the server immediately
Options:
--skip-ingest Configure without loading data2. Start the server
init offers to start the server for you. If you need to start it manually later:
nfl-mcp serve
nfl-mcp serve --port 9000
nfl-mcp serve --host 0.0.0.0The server uses the MCP Streamable HTTP transport. Point any MCP client at http://<host>:<port>/mcp.
Note: The server must be running for your IDE to connect. Run
nfl-mcp servein a terminal and keep it open.
3. Verify
nfl-mcp doctorChecks database connectivity, loaded data, and IDE configuration.
4. 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-desktopOr configure manually. Add to .vscode/mcp.json (VS Code):
{
"servers": {
"nfl": {
"url": "http://localhost:8000/mcp"
}
}
}Add to ~/Library/Application Support/Claude/claude_desktop_config.json (Claude Desktop):
{
"mcpServers": {
"nfl": {
"url": "http://localhost:8000/mcp"
}
}
}CLI Reference
nfl-mcp init Interactive setup wizard
nfl-mcp serve Start the MCP server (Streamable HTTP, default port 8000)
nfl-mcp ingest Load NFL data into the database
nfl-mcp setup-client Configure IDE MCP clients
nfl-mcp doctor Health checkServe options
nfl-mcp serve
nfl-mcp serve --port 9000
nfl-mcp serve --host 0.0.0.0Ingestion options
nfl-mcp ingest # default datasets, all available seasons
nfl-mcp ingest --dataset all # every dataset
nfl-mcp ingest --dataset schedules # one specific dataset
nfl-mcp ingest --dataset pbp --dataset injuries # multiple datasets
nfl-mcp ingest --start 2020 --end 2024 # limit to a season range
nfl-mcp ingest --fresh # re-ingest even if already loaded
nfl-mcp ingest --list # show all available dataset namesIngest is idempotent — re-running skips datasets and seasons already in the database.
Datasets
All data is sourced from nflverse via nflreadpy and stored locally in DuckDB.
Table | Default | Coverage |
| ✓ | 1999–present |
| ✓ | 1999–present |
| ✓ | 1920–present |
| ✓ | 1999–present |
| ✓ | 1999–present |
| ✓ | 2009–present |
| ✓ | 2012–present |
| ✓ | current |
| ✓ | all-time |
| ✓ | historical |
| ✓ | historical |
| 2001–present | |
| 2002–present | |
| 2006–present | |
| 2015–present | |
| 2016–present | |
| 2016–2024 | |
| 2018–present | |
| 2022–present | |
| 1980–present | |
| all-time | |
| current | |
| current | |
| current |
nfl-mcp ingest --dataset all # load everything
nfl-mcp ingest --list # see all dataset namesMCP Tools
Tool | Description |
| Database schema reference — compact summary by default, pass |
| Database health: total plays, loaded seasons, available tables |
| Raw SQL SELECT for custom queries (500 row cap, 10s timeout) |
| Find plays by player, team, season, season type, situation, touchdowns, etc. |
| Pre-aggregated team offense, defense, and situational stats |
| Player stats by season and season type — passing, rushing, or receiving |
| Side-by-side comparison of two teams or two players |
| Game schedule and results — scores, spread, weather, coaches |
| Team roster by season and position |
| Player injury report status by team, week, and designation |
| Offensive, defensive, and special teams snap counts per player |
| Target share, air yards share, carry share per player per week (2006–present, requires |
| List all loaded tables with row counts and last refresh time |
Key columns in plays
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 (useILIKEfor text search)
Local Development
git clone https://github.com/ebhattad/nfl-mcp
cd nfl-mcp
pip install -e ".[dev]"
nfl-mcp ingest --dataset all --start 2024 --end 2024
nfl-mcp serve # server available at http://localhost:8000/mcp
pytest
pytest -m unit # unit tests
pytest -m integration # integration tests (requires loaded DB)Troubleshooting
nfl-mcp doctoris the fastest way to verify config, database, and client setup.If tools return database errors, run
nfl-mcp ingestto ensure data is loaded.You can override the DB location with
NFL_MCP_DB_PATH=/path/to/nflread.duckdb.Re-running
nfl-mcp ingestis safe — it skips anything already loaded.
License
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.