Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

EndzoneAPI

REMOTE · MCP.ENDZONEAPI.COM · SCANNED OCT 7

Pro football play-by-play, stats, injuries, and odds. REST API and MCP server. Free to start.

+4 this week 78 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security83
Transport & Reachability100
Schema Quality & AI Usability66
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4244 tokens (~235/item across 18 items; 18 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management33
  • Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 18 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 19 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the EndzoneAPI MCP server?

EndzoneAPI is a hosted endpoint at https://mcp.endzoneapi.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.endzoneapi.com

# add to Claude Code
claude mcp add --transport http noahowsh-endzoneapi 'https://mcp.endzoneapi.com/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "noahowsh-endzoneapi": {
      "url": "https://mcp.endzoneapi.com/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "noahowsh-endzoneapi": {
      "type": "http",
      "url": "https://mcp.endzoneapi.com/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.noahowsh-endzoneapi]
url = "https://mcp.endzoneapi.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "noahowsh-endzoneapi": {
      "type": "remote",
      "url": "https://mcp.endzoneapi.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add noahowsh-endzoneapi --url 'https://mcp.endzoneapi.com/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  noahowsh-endzoneapi:
    url: "https://mcp.endzoneapi.com/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "noahowsh-endzoneapi": {
      "Transport": "http",
      "Url": "https://mcp.endzoneapi.com/mcp"
    }
  }
}
# add to Vellum
assistant mcp add noahowsh-endzoneapi -t streamable-http -u 'https://mcp.endzoneapi.com/mcp'
// mcp.json
{
  "mcpServers": {
    "noahowsh-endzoneapi": {
      "type": "http",
      "url": "https://mcp.endzoneapi.com/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 7 Oct 26 +1
    • Tool “get_player_props” rewrote its description, which is the text the model reads security
  • 5 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 3 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Sept 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Sept 26 73

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 7 Oct 2026 · Probed https://mcp.endzoneapi.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.endzoneapi.com CN=YE2,O=Let's Encrypt,C=US 27 Sept 2026 26 Dec 2026 ECDSA 256 ECDSA-SHA384 6d2c3f612ad0965b1c949bc72c59ef18eb2
SANs: mcp.endzoneapi.com
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.endzoneapi.com. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
endzoneapi.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Challenged, unverified

The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.

Result Challenged, unverified
Enforced On tool calls
HTTP status 200

Protected resource metadata

Retrieved No
Problem no_resource_metadata

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.endzoneapi.com/mcp Verified 200
http (plaintext) http://mcp.endzoneapi.com/mcp HTTPS enforced 301 https://mcp.endzoneapi.com/mcp
MCP tools · 18 exposed · ~3,362 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
get_advanced_stats ~251

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.

NameTypeReqDescription
limitinteger–Max rows (default 50)
player_idstring–GSIS id for an ngs_* source, PFR id for a pfr_* source; both are on search_players
seasonstring|number–Season year. Defaults to current. NGS from 2016, PFR from 2018.
sourcestringyesWhich dataset: ngs_passing, ngs_rushing, ngs_receiving, pfr_passing, pfr_rushing, pfr_receiving, pfr_defense
teamstring–Team code
weekinteger–Week. NGS also publishes week 0 as the season aggregate.
NameTypeReqDescription
countnumberyes–
metric_keysarrayyes–
notestring––
player_id_kindstringyes–
seasonnumberyes–
sourcestringyes–
statsarrayyes–

No examples provided.

get_depth_chart ~97

Use for a team's depth chart by week: formation, position, depth rank, player. Defaults to the latest week available. Costs 2 credits.

NameTypeReqDescription
formationstring–Filter by formation/unit, e.g. Offense, Defense, Special Teams
seasonstring|number–Season year. Defaults to current.
teamstringyesTeam code
weekinteger–Week. Defaults to latest.
NameTypeReqDescription
countnumberyes–
depth_chartarrayyes–
seasonnumberyes–
teamstringyes–
weeknumberyes–

No examples provided.

get_game_detail ~91

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.

NameTypeReqDescription
game_idstringyesGame id, e.g. 2025_01_KC_BUF
NameTypeReqDescription
away_team–yes–
consensus_closingobjectyes–
gameobjectyes–
home_team–yes–
oddsobjectyes–
officialsarrayyes–
team_statsobjectyes–

No examples provided.

get_games ~203

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.

NameTypeReqDescription
date_fromstring–Start date YYYY-MM-DD
date_tostring–End date YYYY-MM-DD
game_typestring–REG, WC, DIV, CON, SB, or POST for any playoff game
limitinteger–Max results (default 100)
seasonstring|number–Season year (e.g. 2025)
statusstring–Game status
teamstring–Team code (home or away)
weekinteger–Week number (1-18 regular season; 19+ postseason)
NameTypeReqDescription
countnumberyes–
filtersobjectyes–
gamesarrayyes–

No examples provided.

get_head_to_head ~100

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.

NameTypeReqDescription
limitinteger–Max games (default 20)
seasonstring|number–Season year. Omit for all-time.
team1stringyesFirst team code
team2stringyesSecond team code
NameTypeReqDescription
avg_margin_team1number|nullyes–
countnumberyes–
gamesarrayyes–
recordobjectyes–
team1stringyes–
team2stringyes–
total_gamesnumberyes–

No examples provided.

get_injuries ~119

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.

NameTypeReqDescription
seasonstring|number–Season year. Defaults to current.
statusstring–Filter by game status: Out, Doubtful, Questionable
teamstring–Team code
weekinteger–Week. Defaults to the latest week with a report.
NameTypeReqDescription
countnumberyes–
injuriesarrayyes–
seasonnumberyes–
weeknumberyes–

No examples provided.

get_line_movement ~78

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.

NameTypeReqDescription
bookmakerstring–Bookmaker key filter
game_idstringyesGame id
NameTypeReqDescription
away_teamstringyes–
game_idstringyes–
home_teamstringyes–
kickoffstring|nullyes–
movementobjectyes–
snapshotsnumberyes–

No examples provided.

get_odds ~370

Use for betting lines. Pass game_id for one game (10 credits): the consensus closing spread/total/moneyline (every game since 1999) plus per-bookmaker opening, closing and latest lines from the 2020 season (up to 8 books, including Pinnacle). Or pass season (optionally team) for a season of per-book closing lines in one call, with final scores and the consensus close, at 10 credits per game returned, 100 games a page by default (up to 500); each book's line is an array in the order given by columns. For consensus closing lines only, get_games returns a whole season for 5 credits. Set estimate_only to get the price without being charged.

NameTypeReqDescription
bookmakerstring–Bookmaker key (draftkings, fanduel, betmgm, espnbet, pinnacle, bovada, betonlineag, mybookieag)
estimate_onlyboolean–Return what this call would cost, without charging or running it.
game_idstring–Game id, e.g. 2026_01_KC_BUF. Omit and pass season for a whole season.
limitinteger–With season: games per page (default 100, max 500).
offsetinteger–With season: page offset; use next_offset from the previous page.
seasonstring|number–Season year for a whole season of per-book lines, e.g. 2026. Used when game_id is not set.
snapshot_typestring–Single game: one snapshot type (default all). Season: opening or closing (default closing).
teamstring–With season: only this team's games (e.g. KC).
NameTypeReqDescription
away_teamstring––
bookmaker_countnumber––
booksarray––
columnsarray––
consensus_closingobject––
countnumber––
creditsnumber––
credits_per_gamenumber––
estimate_onlyboolean––
game_idstring––
gamesarray––
home_teamstring––
kickoffstring|null––
next_offsetnumber|null––
notestring––
seasonstring––
snapshot_typestring––
toolstring––
total_gamesnumber––

No examples provided.

get_player_leaders ~214

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.

NameTypeReqDescription
limitinteger–Max results (default 20)
min_gamesinteger–Minimum games with a stat line (default 1)
positionstring–Position filter, e.g. QB, RB, WR, TE
seasonstring|number–Season year. Defaults to current.
season_typestring–Regular season (default) or postseason
statstringyesWeekly stat column to rank by (e.g. passing_yards, receiving_epa, def_sacks)
teamstring–Team code filter
NameTypeReqDescription
aggregationstringyes–
countnumberyes–
leadersarrayyes–
seasonnumberyes–
season_typestringyes–
statstringyes–

No examples provided.

get_player_props ~336

Use for player prop lines by sportsbook: over/under on passing yards, passing TDs, rushing yards, receiving yards and receptions, plus anytime TD, from the 2023 season (7 books: DraftKings, FanDuel, BetMGM, ESPN BET, Pinnacle, Bovada, BetOnline). Pass game_id for every player's props in one game (10 credits), or player_id with season for one player across a season (10 credits per game returned). Returns the closing line by default (the last before kickoff) or the opening line. Set estimate_only to get the price without being charged.

NameTypeReqDescription
bookmakerstring–Bookmaker key, e.g. draftkings, fanduel, pinnacle.
estimate_onlyboolean–Return what this call would cost, without charging or running it.
game_idstring–Game id, e.g. 2025_01_KC_LAC.
marketstring–One market: player_pass_yds (passing yards), player_pass_tds (passing touchdowns), player_rush_yds (rushing yards), player_reception_yds (receiving yards), player_receptions (receptions), player_anyt…
player_idstring–GSIS player id (00-00XXXXX) from search_players. With season: that player's props across the season.
seasonstring|number–Season year, with player_id.
snapshot_typestring–closing (default): the last line before kickoff. opening: the first one captured.
NameTypeReqDescription
countnumber––
creditsnumber––
credits_per_gamenumber––
estimate_onlyboolean––
gamesnumber––
notestring––
propsarray––
snapshot_typestring––
toolstring––

No examples provided.

get_player_stats ~137

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.

NameTypeReqDescription
player_idstringyesGSIS player id from search_players (e.g. 00-0033873)
seasonstring|number–Season year. Defaults to the player's latest season.
season_typestring–Regular season (default) or postseason
NameTypeReqDescription
countnumberyes–
playerobjectyes–
seasonnumberyes–
season_totalsobjectyes–
season_typestringyes–
seasonsarrayyes–
weeksarrayyes–

No examples provided.

get_plays ~619

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.

NameTypeReqDescription
defteamstring–Defense team code
downinteger–Down
game_idstring–Game id, e.g. 2025_01_KC_BUF
include_chartingboolean–Attach FTN manual charting to each play (2022+): alignment, motion, play action, screens, RPO, blitzers, drops
is_dropboolean–Charting filter: charted drop (2022+)
is_motionboolean–Charting filter: pre-snap motion (2022+)
is_no_huddleboolean–Charting filter: no huddle (2022+)
is_play_actionboolean–Charting filter: play action (2022+)
is_qb_out_of_pocketboolean–Charting filter: quarterback out of the pocket (2022+)
is_rpoboolean–Charting filter: run-pass option (2022+)
is_screen_passboolean–Charting filter: screen pass (2022+)
is_trick_playboolean–Charting filter: trick play (2022+)
limitinteger–Max plays (default 200)
max_wpnumber–Maximum pre-play win probability
min_blitzersinteger–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.
min_wpnumber–Minimum pre-play win probability for the offense
offsetinteger–Pagination offset
passer_idstring–GSIS id of the passer
play_typestring–Play type
posteamstring–Offense team code
quarterinteger–Quarter (5+ = overtime)
receiver_idstring–GSIS id of the receiver
red_zoneboolean–Only plays inside the 20
rusher_idstring–GSIS id of the rusher
seasonstring|number–Season year (required when game_id is not set)
third_downboolean–Only third downs
weekinteger–Week
NameTypeReqDescription
charted_playsnumber––
countnumberyes–
next_offsetnumber|nullyes–
notestring––
playsarrayyes–
summaryobjectyes–

No examples provided.

get_schedule ~104

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.

NameTypeReqDescription
daysinteger–Days ahead to look when week is not set (default 7)
teamstring–Team code to filter
weekinteger–A specific week of the current season (returns all games that week, played or not)
NameTypeReqDescription
countnumberyes–
daysnumber|nullyes–
seasonnumberyes–
upcoming_gamesarrayyes–
weeknumber|nullyes–

No examples provided.

get_snap_counts ~136

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.

NameTypeReqDescription
game_idstring–Game id, e.g. 2025_01_KC_BUF
limitinteger–Max rows (default 200)
player_idstring–PFR player id (from search_players pfr_id)
seasonstring|number–Season year (with team or player)
teamstring–Team code
weekinteger–Week filter
NameTypeReqDescription
countnumberyes–
filtersobjectyes–
notestring––
snap_countsarrayyes–

No examples provided.

get_standings ~137

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.

NameTypeReqDescription
conferencestring–Filter by conference
divisionstring–Filter by division, e.g. 'NFC North'
seasonstring|number–Season year the regular season starts (e.g. 2025). Defaults to current.
NameTypeReqDescription
countnumberyes–
notestring––
seasonnumberyes–
standingsarrayyes–

No examples provided.

get_team_stats ~110

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.

NameTypeReqDescription
seasonstring|number–Season year (e.g. 2025). Defaults to current.
season_typestring–Regular season (default) or postseason
teamstringyesTeam code (e.g. KC, BUF, PHI)
NameTypeReqDescription
countnumberyes–
record–yes–
seasonnumberyes–
season_typestringyes–
team–yes–
totalsobjectyes–
weeksarrayyes–

No examples provided.

list_teams ~90

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.

NameTypeReqDescription
conferencestring–Filter by conference
divisionstring–Filter by division, e.g. 'AFC East' or 'NFC West'
NameTypeReqDescription
countnumberyes–
teamsarrayyes–

No examples provided.

search_players ~170

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.

NameTypeReqDescription
activeboolean–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.
limitinteger–Max results (default 10)
positionstring–Filter by position (e.g. QB, RB, WR, TE, OL, DL, LB, DB)
querystringyesPlayer name or part of it
teamstring–Filter by current team code
NameTypeReqDescription
countnumberyes–
included_inactivebooleanyes–
notestring––
playersarrayyes–

No examples provided.

Common questions

What is the EndzoneAPI MCP server?

EndzoneAPI is an MCP server listed in the public MCP registry as io.github.noahowsh/endzoneapi. Pro football play-by-play, stats, injuries, and odds. REST API and MCP server. Free to start. This page covers its hosted endpoint (https://mcp.endzoneapi.com/mcp).

Is the EndzoneAPI MCP server safe to use?

EndzoneAPI scores 78 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the EndzoneAPI MCP server expose?

EndzoneAPI exposes 18 tools: list_teams, get_standings, get_team_stats, get_games, get_schedule, and 13 more. Their descriptions and schemas cost roughly 3,362 tokens of context every time the server is loaded.

Does the EndzoneAPI MCP server require authentication?

Yes. EndzoneAPI asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the EndzoneAPI MCP server still maintained?

EndzoneAPI is still listed as active in the MCP registry. We last reached this channel on 7 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.