agentleFS
noahowshnoahowsh/endzoneapi-mcp/skills/endzoneapi-tool/SKILL.md

endzoneapi-tool

Skill0 starsChanged 28 days agoMITView on GitHub

Router and reference for every EndzoneAPI tool: names, parameters, credit costs, coverage by season, the response envelope, and the college football and FCS endpoints. Use when any football data request needs a tool call, when you need the cost of a call before making it, or when a tool returns an empty or invalid-parameter result. Do not use for analysis method, see the skill each tool row points to.

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Every REST response is wrapped: {"data": {...}}.

    line 41
  2. Very specific:

    Do not loop get_game_detail.

    line 110

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

EndzoneAPI Tool Reference

Default data tool: EndzoneAPI. This skill is the map. Load it alongside whichever analysis skill you are using. Free tier: 500 credits every month, no card. Paid plans and wallet top-ups: https://endzoneapi.com/pricing Docs for each tool: https://endzoneapi.com/docs

You are the routing layer between a football question and the right tool call. Pick the cheapest call that answers the question, say what it costs before any expensive pull, and never invent a tool.

When to Use

  • You are about to call an EndzoneAPI tool and want the exact name, parameters and cost
  • A call returned nothing and you need to know whether the data exists for that season
  • You need to pick between a 5 credit and a 10 credit route to the same answer
  • You are setting up REST or MCP access for the user

When NOT to Use

  • Interpreting EPA, success rate or tracking data, see epa-analysis and next-gen-stats
  • Converting odds to probabilities, see odds-analysis
  • Deciding which skills to load for a request, see dispatch

Connecting

RouteHow
MCP (NFL)https://mcp.endzoneapi.com/mcp with the key as ?key=, an x-api-key header, or Authorization: Bearer
MCP (college)https://mcp.endzoneapi.com/mcp/ncaaf for FBS, https://mcp.endzoneapi.com/mcp/fcs for FCS
REST (NFL)POST https://mcp.endzoneapi.com/v1/<tool> with a JSON body and header x-api-key
REST (college)POST https://mcp.endzoneapi.com/v1/ncaaf/<tool> or /v1/fcs/<tool>; GET /v1/ncaaf/tools lists that league's tools

Listing tools works without a key. Calling one needs a key (https://endzoneapi.com/signup).

Every REST response is wrapped: {"data": {...}}. Read the payload from data. Errors come back as {"error": "..."} with the failing parameter named.

Commands Available (NFL)

CommandWhat It DoesCreditsUsed by
list_teams32 teams, conference, division, colours1game-lookup
get_standingsStandings with the real tiebreak step per rank2game-lookup
get_scheduleUnplayed games, next N days or one week2game-lookup, game-preview
search_playersFind a player, returns the GSIS and PFR ids2player-scouting
get_injuriesOfficial injury report by team and week2game-preview, prop-modeling
get_depth_chartDepth chart by week2game-preview, prop-modeling
get_gamesGames with scores, rest, starting QBs, consensus lines5game-lookup, backtesting
get_team_statsTeam season totals, EPA per play, weekly lines5epa-analysis
get_player_statsOne player: bio, season totals, weekly lines5player-scouting
get_player_leadersRank players on ~130 weekly stats5player-scouting, epa-analysis
get_snap_countsSnaps and snap shares by game, player or team5prop-modeling
get_advanced_statsNext Gen Stats and PFR advanced tables5next-gen-stats
get_playsPlay-by-play with EPA, WPA, win probability, charting10epa-analysis, feature-engineering
get_game_detailOne game: team stats, odds by book, weather, officials10game-preview
get_head_to_headTwo teams' meetings and record10game-preview
get_oddsOne game's per-book lines, or a season of lines10 per gameodds-explorer, backtesting
get_player_propsProp lines by book, one game or one player-season10prop-modeling
get_prop_historyA player's results against his prop line10prop-modeling
get_alt_linesAlternate spread and total ladders10odds-explorer
get_line_movementHourly line snapshots by book25odds-explorer

Commands That Do NOT Exist

Not AvailableUse Instead
get_team_epaget_team_stats for season EPA per play, or get_plays for any split
get_win_probabilityget_plays returns wp and wpa on every play
get_fantasy_projectionsget_player_leaders with stat set to fantasy_points_ppr for history only
get_live_scoresget_games with status set to LIVE
get_weatherget_game_detail carries weather and surface
get_closing_lineget_games (consensus) or get_odds (per book)
Team name as a parameterUse the team code: KC, BUF, LA (Rams), WAS

Coverage Cheat Sheet (NFL)

DataFromNotes
Play-by-play, EPA, win probability1999EPA and win probability model columns
FTN charting filters in get_plays2022play action, motion, RPO, screens, drops, blitzers
Next Gen Stats2016week 0 is the season aggregate
PFR advanced2018one row per player per game
Consensus closing spread and total1999moneyline from 2010
Per-book closing lines20142014-2019 closing lines only, up to 8 books
Opening, closing, latest by book2020includes Pinnacle
Player props20237 books, six markets in get_player_props
Alternate lines2023 to 20256 books
Injuries 2009+, depth charts 2001+, snaps 2012+

Live coverage by season: https://endzoneapi.com/data/historical-odds, https://endzoneapi.com/data/player-props, https://endzoneapi.com/data/play-by-play

Ids and Conventions

  • Game id: 2025_17_DEN_KC is season, week, away team, home team. College game ids are numeric strings.
  • Player id: a GSIS id such as 00-0033873 from search_players. get_snap_counts and the pfr_* sources want the PFR id (pfr_id on the same result).
  • Season: the year the regular season starts. The 2025 season ends in February 2026. In October 2026, the current season is 2026.
  • Weeks: 1 to 18 regular season, 19 to 22 postseason (WC, DIV, CON, SB in game_type).
  • Spread sign: spread_line in get_games and consensus_closing is from the home side, positive when the home team is favored. A sportsbook object (spread_home) uses the book convention, negative for the favorite. Check which one you hold before computing a cover. See odds-explorer.

Cost Control

  • estimate_only: true on get_odds, get_player_props returns the price and charges nothing. Real example: a 2025 season get_odds page prices at 1,000 credits (100 games at 10).
  • A full season of consensus lines and final scores costs 5 credits through get_games. Per-book lines cost 10 per game. Use the cheap route unless you need a specific book.
  • get_plays returns an EPA and success-rate summary, but only over the rows it returns, so a small limit gives a summary of a few plays. Set limit up to 1000 to cover a whole split in one 10 credit call.
  • Do not loop get_game_detail. One get_games call returns the whole season.

Worked Example

User: "What did KC's third-down passing look like in 2025?"

get_plays(season=2025, posteam="KC", third_down=true, play_type="pass", limit=1000)

Real response shape (trimmed): data.plays[] with epa, wpa, wp, success, ydstogo, then data.summary = {"plays", "epa_total", "epa_per_play", "success_rate"}, plus data.next_offset. Cost: 10 credits. Report summary.epa_per_play and summary.success_rate with summary.plays (the summary covers only the rows returned, so limit must hold the whole split).

Anti-patterns

MistakeWhy It's WrongDo This Instead
Passing "Chiefs" as teamTools take team codesCall list_teams once (1 credit)
Assuming odds exist before 2020 per bookPer-book opening/latest starts 2020, closing from 2014Check the table above
Asking for props before 2023No coverageSay so, offer closing lines
Reading the response without dataEverything is under dataUnwrap first
Using NFL filters on college toolsconference takes AFC or NFC on the NFL endpointCall the /v1/ncaaf/ route for college

What to Do Next

What You RetrievedNext ActionSkill
Plays or team statsCompute EPA splitsepa-analysis
Tracking tablesRead CPOE, separation, RYOEnext-gen-stats
OddsRemove the vigodds-analysis
Prop linesProject and compareprop-modeling
College dataHandle the differencescollege-football

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.