Skip to main content
Glama
alexbrogan10

nfl-stats-mcp

by alexbrogan10

situational_stats

Read-only

Compute EPA per play, success rate, and yards per play for any NFL game situation—down and distance, red zone, two-minute drill, or score margin—grouped by player, offense, or defense.

Instructions

Play-by-play efficiency (EPA/play, success rate, yards/play) for any game situation.

Examples: QBs on 3rd-and-long, red-zone rushing by team, defenses in the two-minute drill, one player's EPA when trailing in the 4th quarter.

Input Schema

NameRequiredDescriptionDefault
downsNoe.g. [3] or [3, 4].
limitNo
weeksNo
playerNoOnly plays involving this player (name or player_id).
defenseNoTeam on defense.
offenseNoTeam with the ball.
seasonsNoSeasons to include, e.g. [2024, 2025]. 1999 or later. Defaults to the current season.
shotgunNo
sort_byNoMetric to rank by.epa_per_play
group_byNoRank passers/rushers/receivers/offenses/defenses, or 'none' for one aggregate row.none
quartersNo1-4, 5 = overtime.
ascendingNo
min_playsNoMinimum plays per group to be ranked.
play_kindNopass (incl. sacks), rush (incl. scrambles), or all.all
season_typeNoREG = regular season, POST = playoffs, ALL = both.REG
max_score_diffNo
min_score_diffNoOffense score minus defense score, e.g. -8 for 'down one score or less'.
max_yards_to_goNo
min_yards_to_goNo
max_yards_to_endzoneNo20 = red zone, 10 = inside the 10, 5 = goal line.
max_half_seconds_remainingNo120 = two-minute drill.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds the metric vocabulary but says nothing about defaults that materially change results (current season, min_plays=20 qualifying threshold, limit=15, REG-only), nor about ranking behavior when group_by is used. It also cannot lean on the output schema for these filtering defaults.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence defines the tool, followed by a tight example block that earns its space by demonstrating situational filtering. Slightly inefficient in that the examples restate situations already implied by parameter names, but there is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. However, for a 21-parameter tool with several undocumented filters and non-obvious defaults (min_plays gating, season defaulting, group_by ranking vs. single aggregate row), the description leaves meaningful gaps an agent must discover by trial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

At 67% schema coverage, the schema carries most of the load and the baseline of 3 applies. The description's only parameter-adjacent contribution is naming which metrics appear in output (EPA/play, success rate, yards/play), which loosely matches sort_by values; it adds nothing for the undocumented params such as shotgun, weeks, max_score_diff, min_yards_to_go, ascending, and limit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-and-resource framing: per-play efficiency metrics (EPA/play, success rate, yards/play) sliced by game situation. An agent can tell this is an aggregation/ranking tool rather than a lookup, but it never names or contrasts the siblings (player_stats, list_stats, leaderboard), so differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The four examples ('QBs on 3rd-and-long', 'red-zone rushing by team', 'defenses in the two-minute drill', 'one player's EPA when trailing in the 4th quarter') map directly onto parameters like downs, max_yards_to_endzone, max_half_seconds_remaining, and min_score_diff, giving concrete usage context. What is missing is any negative guidance or explicit routing versus player_stats/leaderboard for similar efficiency questions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.