{"sport":"nfl","brand":"Football Data API","base_url":"https://football-mcp-production.up.railway.app","mcp_url":"https://football-mcp-production.up.railway.app/mcp","tools":[{"name":"list_teams","description":"Use when you need team codes, or all 32 current teams with conference, division, colours, and logo URLs. Team codes are nflverse spelling (LA for the Rams, WAS for Washington). Cheapest tool at 1 credit.","credits":1,"category":"Static reference","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"conference":{"description":"Filter by conference","type":"string","enum":["AFC","NFC"]},"division":{"description":"Filter by division, e.g. 'AFC East' or 'NFC West'","type":"string"}},"additionalProperties":false}},{"name":"get_standings","description":"Use for regular-season standings and playoff seeding: record, win%, points for/against, home/away/division/conference records, streak, division rank, and conference seed. Ranks apply the real NFL tiebreaking procedure and report which step decided each one. Computed from final scores. Defaults to the current season. Costs 2 credits.","credits":2,"category":"Basic lookup","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"season":{"description":"Season year the regular season starts (e.g. 2025). Defaults to current.","type":["string","number"]},"conference":{"description":"Filter by conference","type":"string","enum":["AFC","NFC"]},"division":{"description":"Filter by division, e.g. 'NFC North'","type":"string"}},"additionalProperties":false}},{"name":"get_team_stats","description":"Use for one team's season: totals (passing, rushing, receiving, defense, kicking, penalties), EPA per play, yards per attempt/carry, the standings row, and every weekly stat line. Costs 5 credits.","credits":5,"category":"Stats + aggregation","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"team":{"type":"string","description":"Team code (e.g. KC, BUF, PHI)"},"season":{"description":"Season year (e.g. 2025). Defaults to current.","type":["string","number"]},"season_type":{"description":"Regular season (default) or postseason","type":"string","enum":["REG","POST"]}},"required":["team"],"additionalProperties":false}},{"name":"get_games","description":"Use when querying past or future games with filters: season, week, team, date range, game type, status. Returns scores, kickoff (UTC), venue, rest days, starting QBs, coaches, referee, and the consensus closing spread, total, and moneylines. For upcoming-only games prefer get_schedule (2 cr). Costs 5 credits.","credits":5,"category":"Stats + aggregation","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"season":{"description":"Season year (e.g. 2025)","type":["string","number"]},"week":{"description":"Week number (1-18 regular season; 19+ postseason)","type":"integer","minimum":1,"maximum":22},"team":{"description":"Team code (home or away)","type":"string"},"date_from":{"description":"Start date YYYY-MM-DD","type":"string"},"date_to":{"description":"End date YYYY-MM-DD","type":"string"},"game_type":{"description":"REG, WC, DIV, CON, SB, or POST for any playoff game","type":"string","enum":["REG","WC","DIV","CON","SB","POST"]},"status":{"description":"Game status","type":"string","enum":["FUT","LIVE","FINAL"]},"limit":{"description":"Max results (default 100)","type":"integer","minimum":1,"maximum":500}},"additionalProperties":false}},{"name":"get_schedule","description":"Use to see what is coming up: unplayed games in the next N days (default 7), or a specific week of the current season. Includes consensus lines where posted. Costs 2 credits.","credits":2,"category":"Basic lookup","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"team":{"description":"Team code to filter","type":"string"},"week":{"description":"A specific week of the current season (returns all games that week, played or not)","type":"integer","minimum":1,"maximum":22},"days":{"description":"Days ahead to look when week is not set (default 7)","type":"integer","minimum":1,"maximum":30}},"additionalProperties":false}},{"name":"get_game_detail","description":"Use when you need everything about one game: both teams, full team box-score stats (EPA, success, drives), consensus closing line, per-bookmaker opening/closing/latest odds, weather, surface, and officials. Requires a game id from get_games or get_schedule. Costs 10 credits.","credits":10,"category":"Multi-table","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"game_id":{"type":"string","description":"Game id, e.g. 2025_01_KC_BUF"}},"required":["game_id"],"additionalProperties":false}},{"name":"get_head_to_head","description":"Use to compare two teams' history: recent meetings with scores, the win/loss record between them, and average margin. Filter by season or get all-time. Costs 10 credits.","credits":10,"category":"Multi-table","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"team1":{"type":"string","description":"First team code"},"team2":{"type":"string","description":"Second team code"},"season":{"description":"Season year. Omit for all-time.","type":["string","number"]},"limit":{"description":"Max games (default 20)","type":"integer","minimum":1,"maximum":100}},"required":["team1","team2"],"additionalProperties":false}},{"name":"search_players","description":"Use to find a player by name (partial match). Searches ~25,000 players back to 1999; returns current-season players by default, falling back to all players back to 1999 when none match. Returns the GSIS player id needed by get_player_stats. Costs 2 credits.","credits":2,"category":"Basic lookup","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"query":{"type":"string","minLength":1,"description":"Player name or part of it"},"team":{"description":"Filter by current team code","type":"string"},"position":{"description":"Filter by position (e.g. QB, RB, WR, TE, OL, DL, LB, DB)","type":"string"},"active":{"description":"Default true, but an active-only search that finds nobody automatically falls back to all players and says so. Set false to search everyone outright.","type":"boolean"},"limit":{"description":"Max results (default 10)","type":"integer","minimum":1,"maximum":50}},"required":["query"],"additionalProperties":false}},{"name":"get_player_stats","description":"Use for one player: bio, draft, physicals, headshot, id crosswalk (PFR, ESPN), summed season totals across passing, rushing, receiving, defense, kicking, returns, and fantasy points, every weekly stat line for the season, and games played per season. Defaults to the player's latest season. Costs 5 credits.","credits":5,"category":"Stats + aggregation","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"player_id":{"type":"string","description":"GSIS player id from search_players (e.g. 00-0033873)"},"season":{"description":"Season year. Defaults to the player's latest season.","type":["string","number"]},"season_type":{"description":"Regular season (default) or postseason","type":"string","enum":["REG","POST"]}},"required":["player_id"],"additionalProperties":false}},{"name":"get_player_leaders","description":"Use to rank players on any weekly stat over a season: passing_yards, passing_tds, rushing_yards, receiving_yards, receptions, targets, def_sacks, def_interceptions, fantasy_points_ppr, passing_epa, rushing_epa, receiving_epa, and ~130 more. Counting stats are summed, rate stats averaged. Filter by position, team, minimum games. Costs 5 credits.","credits":5,"category":"Stats + aggregation","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"stat":{"type":"string","description":"Weekly stat column to rank by (e.g. passing_yards, receiving_epa, def_sacks)"},"season":{"description":"Season year. Defaults to current.","type":["string","number"]},"season_type":{"description":"Regular season (default) or postseason","type":"string","enum":["REG","POST"]},"position":{"description":"Position filter, e.g. QB, RB, WR, TE","type":"string"},"team":{"description":"Team code filter","type":"string"},"min_games":{"description":"Minimum games with a stat line (default 1)","type":"integer","minimum":1,"maximum":9007199254740991},"limit":{"description":"Max results (default 20)","type":"integer","minimum":1,"maximum":100}},"required":["stat"],"additionalProperties":false}},{"name":"get_injuries","description":"Use for the official injury report: game status (Out, Doubtful, Questionable) and practice participation with the injury named, by team and week. Defaults to the latest reported week of the current season. Costs 2 credits.","credits":2,"category":"Basic lookup","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"team":{"description":"Team code","type":"string"},"season":{"description":"Season year. Defaults to current.","type":["string","number"]},"week":{"description":"Week. Defaults to the latest week with a report.","type":"integer","minimum":1,"maximum":22},"status":{"description":"Filter by game status: Out, Doubtful, Questionable","type":"string"}},"additionalProperties":false}},{"name":"get_depth_chart","description":"Use for a team's depth chart by week: formation, position, depth rank, player. Defaults to the latest week available. Costs 2 credits.","credits":2,"category":"Basic lookup","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"team":{"type":"string","description":"Team code"},"season":{"description":"Season year. Defaults to current.","type":["string","number"]},"week":{"description":"Week. Defaults to latest.","type":"integer","minimum":1,"maximum":22},"formation":{"description":"Filter by formation/unit, e.g. Offense, Defense, Special Teams","type":"string"}},"required":["team"],"additionalProperties":false}},{"name":"get_snap_counts","description":"Use for playing time: offensive, defensive, and special-teams snaps and snap shares, for one game, one player (PFR id), or a team's season. Costs 5 credits.","credits":5,"category":"Stats + aggregation","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"game_id":{"description":"Game id, e.g. 2025_01_KC_BUF","type":"string"},"player_id":{"description":"PFR player id (from search_players pfr_id)","type":"string"},"team":{"description":"Team code","type":"string"},"season":{"description":"Season year (with team or player)","type":["string","number"]},"week":{"description":"Week filter","type":"integer","minimum":1,"maximum":22},"limit":{"description":"Max rows (default 200)","type":"integer","minimum":1,"maximum":1000}},"additionalProperties":false}},{"name":"get_plays","description":"Use for play-by-play with nflfastR metrics: EPA, WPA, win probability, success, CPOE, air yards, formation flags, and the players involved. Filter by game, or by season plus week/team/player, plus play type, down, quarter, win-probability band, red zone, third down. Set include_charting for FTN manual charting from 2022 on -- alignment, pre-snap motion, play action, screens, run-pass options, blitzer counts, drops -- or filter directly on those flags. Returns a per-query EPA and success-rate summary. Paginate with offset. Costs 10 credits.","credits":10,"category":"Multi-table","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"game_id":{"description":"Game id, e.g. 2025_01_KC_BUF","type":"string"},"season":{"description":"Season year (required when game_id is not set)","type":["string","number"]},"week":{"description":"Week","type":"integer","minimum":1,"maximum":22},"posteam":{"description":"Offense team code","type":"string"},"defteam":{"description":"Defense team code","type":"string"},"play_type":{"description":"Play type","type":"string","enum":["pass","run","punt","kickoff","field_goal","extra_point","qb_kneel","qb_spike","no_play"]},"down":{"description":"Down","type":"integer","minimum":1,"maximum":4},"quarter":{"description":"Quarter (5+ = overtime)","type":"integer","minimum":1,"maximum":6},"passer_id":{"description":"GSIS id of the passer","type":"string"},"rusher_id":{"description":"GSIS id of the rusher","type":"string"},"receiver_id":{"description":"GSIS id of the receiver","type":"string"},"min_wp":{"description":"Minimum pre-play win probability for the offense","type":"number","minimum":0,"maximum":1},"max_wp":{"description":"Maximum pre-play win probability","type":"number","minimum":0,"maximum":1},"red_zone":{"description":"Only plays inside the 20","type":"boolean"},"third_down":{"description":"Only third downs","type":"boolean"},"include_charting":{"description":"Attach FTN manual charting to each play (2022+): alignment, motion, play action, screens, RPO, blitzers, drops","type":"boolean"},"is_play_action":{"description":"Charting filter: play action (2022+)","type":"boolean"},"is_motion":{"description":"Charting filter: pre-snap motion (2022+)","type":"boolean"},"is_rpo":{"description":"Charting filter: run-pass option (2022+)","type":"boolean"},"is_screen_pass":{"description":"Charting filter: screen pass (2022+)","type":"boolean"},"is_no_huddle":{"description":"Charting filter: no huddle (2022+)","type":"boolean"},"is_trick_play":{"description":"Charting filter: trick play (2022+)","type":"boolean"},"is_qb_out_of_pocket":{"description":"Charting filter: quarterback out of the pocket (2022+)","type":"boolean"},"is_drop":{"description":"Charting filter: charted drop (2022+)","type":"boolean"},"min_blitzers":{"description":"Charting filter: at least this many blitzers (2022+). FTN counts rushers beyond the base rush, so this is typically 0-3; 5+ is almost never charted.","type":"integer","minimum":0,"maximum":11},"limit":{"description":"Max plays (default 200)","type":"integer","minimum":1,"maximum":1000},"offset":{"description":"Pagination offset","type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false}},{"name":"get_advanced_stats","description":"Use for tracking and charting metrics the box score does not carry. Next Gen Stats (2016+): time to throw, air yards, completion percentage above expectation, separation, cushion, rush yards over expected. Pro Football Reference advanced (2018+): pressures, hurries, blitzes, drops, bad throws, missed tackles, coverage yards allowed. Pick a source, then filter by season, week, player or team. Costs 5 credits.","credits":5,"category":"Stats + aggregation","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"source":{"type":"string","enum":["ngs_passing","ngs_rushing","ngs_receiving","pfr_passing","pfr_rushing","pfr_receiving","pfr_defense"],"description":"Which dataset: ngs_passing, ngs_rushing, ngs_receiving, pfr_passing, pfr_rushing, pfr_receiving, pfr_defense"},"season":{"description":"Season year. Defaults to current. NGS from 2016, PFR from 2018.","type":["string","number"]},"week":{"description":"Week. NGS also publishes week 0 as the season aggregate.","type":"integer","minimum":0,"maximum":22},"player_id":{"description":"GSIS id for an ngs_* source, PFR id for a pfr_* source; both are on search_players","type":"string"},"team":{"description":"Team code","type":"string"},"limit":{"description":"Max rows (default 50)","type":"integer","minimum":1,"maximum":200}},"required":["source"],"additionalProperties":false}},{"name":"get_odds","description":"Use for a game's betting lines: consensus closing spread/total/moneylines for every game since 1999, plus per-bookmaker opening, closing, and latest moneyline, spread, and total (DraftKings, FanDuel, BetMGM, Caesars, ESPN BET) for games from the 2026 season. Costs 10 credits.","credits":10,"category":"Multi-table","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"game_id":{"type":"string","description":"Game id, e.g. 2026_01_KC_BUF"},"bookmaker":{"description":"Bookmaker key (draftkings, fanduel, betmgm, caesars, espnbet)","type":"string"},"snapshot_type":{"description":"Return only one snapshot type. Default returns opening, closing, and latest per book.","type":"string","enum":["opening","closing","latest"]}},"required":["game_id"],"additionalProperties":false}},{"name":"get_line_movement","description":"Use to see how a game's lines moved: the full time series of hourly snapshots grouped by bookmaker. Most expensive tool (25 cr); use get_odds (10 cr) if you only need opening, closing, or current lines.","credits":25,"category":"Time-series","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"game_id":{"type":"string","description":"Game id"},"bookmaker":{"description":"Bookmaker key filter","type":"string"}},"required":["game_id"],"additionalProperties":false}}]}