Connect the MCP server
Any assistant that supports the Model Context Protocol can use this server. It is read-only and needs no account.
Server URL
https://chunkplaystats.com/mcp
Transport: Streamable HTTP. Authentication: none.
ChatGPT (developer mode)
- Developer mode is available on Plus, Pro, Business, Enterprise and Education plans, on the web.
- Open ChatGPT Plugins, select +, and enter the server URL above with authentication set to No authentication.
- In a new chat, choose the app from the composer's Developer mode tool and ask a question, for example "Which offenses were best on 3rd and 7 or longer in 2025, and did it show in their overall third-down rate?"
- After the server is updated, use Refresh on the app's settings page to pull the new tool list.
OpenAI changes these menus often. If a step does not match, follow the official guide: ChatGPT developer mode and building MCP servers.
Running locally
ChatGPT connects from OpenAI's servers, so a local server needs a public HTTPS address:
cloudflared tunnel --url http://localhost:8000
Then set PUBLIC_BASE_URL to the tunnel address (or add its host to MCP_ALLOWED_HOSTS) and restart, and use https://<tunnel host>/mcp as the server URL.
Other MCP clients
Claude, and any other client that supports remote MCP servers over Streamable HTTP, can use the same URL.
Tools
Every tool is read-only and returns the data together with the season, filters, formulas and source.
| Tool | What it answers |
|---|---|
compare_players | Side-by-side comparison of 2-5 players in one season. Omit `metrics` to get a position-appropriate default set. Metrics that do not apply to a player's position are null and listed in not_applicable. best_by_metric names the leader for each metric (respecting lower-is-better metrics like interceptions). |
fetch | Fetch the latest-season statistics document for an id returned by `search` (player:<gsis_id> or team:<abbr>). |
get_data_coverage | Which seasons, weeks and datasets are loaded, and when the data was last updated. Call this first when the user does not give a season, says "this season", "last week" or "latest", or asks how current the data is. |
get_game_stats | One game: final score, team box scores, offensive EPA per play and success rate, each team's drive summary (drives, points, red-zone trips and TDs, three-and-outs), and the top passers, rushers and receivers. Identify it by game_id (format 2025_01_BAL_BUF = season_week_away_home) |
get_league_leaders | Player leaderboard for one metric in one season (e.g. top QBs by EPA per dropback, receiving yards leaders, target share leaders). Rate metrics apply a minimum on their qualifier (dropbacks, attempts, carries, targets, receptions): pass min_qualifier for the user's threshold (e.g. "at least 400 dropbacks" |
get_metric_definitions | Formula, unit, source and qualifier for metrics. Use when the user asks how a metric is defined or which metrics exist. Omit `metrics` to list all. |
get_player_game_log | A player's game-by-game log for one season: date, opponent, home/away, result and score, carry and target share of the team, and passing/rushing/receiving lines (only the groups the player recorded stats in). |
get_player_stats | One player's statistics for one season: box-score totals plus every advanced metric that applies to the player's position (EPA, success rate, target share, passer rating, ...), games played and the qualifying counts (attempts, dropbacks, carries, targets). |
get_record | Win-loss record of a team, a starting quarterback or a head coach over loaded seasons, optionally against one opponent and/or home/away, with regular-season and playoff splits, a per-season breakdown and the games (most recent first). Use for "Mahomes' record vs the Bills", "Andy Reid's playoff |
get_standings | Regular-season standings for one season: W-L-T, win %, points for/against, home, away, division and conference records and streak, grouped by division (default), conference or the whole league. Ordered by win % then point differential; the NFL's official tiebreakers are NOT applied (say so if |
get_team_rankings | Rank all teams by one team metric in one season, e.g. "which teams had the highest offensive EPA", "best defenses by EPA allowed", "most pass-heavy offenses (PROE)". By default rank 1 is the best (defense metrics: lowest allowed; turnovers and sacks_allowed: fewest). For "most turnovers" or |
get_team_stats | One team's season: record, every team metric below with its league rank, and its game-by-game results with the team's drive line per game (drives, points, red-zone trips and TDs, three-and-outs) for "by week" questions. split restricts record, metrics and ranks to matching games ("Bills at home", |
get_top_games | Best (or worst) single-game performances by one metric: "most passing yards in a game in 2025", "Josh Allen's career-high rushing yards", "most sacks in a game", "highest-scoring team games", "fewest points per drive allowed in a game". With min_value it also counts games at or above a |
query_plays | Situational play-by-play analysis with structured filters, e.g. "Bills on 3rd and 5+", "Chiefs in the red zone", "Lamar Jackson passes 20+ air yards", "4th quarter, trailing by 1-8". Trends across seasons: filters.season_to + group_by=season (only when the question spans seasons; ranges are slower). |
search | Generic lookup of NFL players and teams by name, returning ids for `fetch`. Used by ChatGPT deep research. For normal questions prefer the specific tools (search_players, get_player_stats, ...). |
search_players | Find players by name (fuzzy), optionally filtered by position, team and season. Use it to get a player_id when a name is misspelled, partial, or shared by several players (e.g. there are several "Josh Allen"s). Results include position, teams, active seasons, status and has_stats |