Skip to main content
Glama
christianclaudio

io.github.christianclaudio/espn

Teams Get Player Stats

teams_get_player_stats
Read-onlyIdempotent

Extract individual player boxscores and performance metrics for a specific game using sport, league, and event ID.

Instructions

Extract detailed individual player boxscores and performance metrics for a game (e.g., Strikeouts and Innings Pitched for MLB pitchers; Points, Rebounds, Assists for NBA/WNBA; Passing, Rushing, Receiving for NFL/NCAAF; Goals and Assists for Soccer/NHL).

Input Schema

NameRequiredDescriptionDefault
sportYese.g. basketball
leagueYese.g. nba, eng.1
event_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv2.0.0
    • addedInput schema / properties / league / description
      Added value: +"e.g. nba, eng.1"
    • addedInput schema / properties / sport / description
      Added value: +"e.g. basketball"
  2. First observedv1.2.9

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the description need not restate that. It adds useful context about what data is returned per sport, but says nothing about pagination, response shape, or authentication, which would round out the picture.

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 states the core action before the long parenthetical. The per-sport examples are verbose but each earns its place by clarifying scope across sports.

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

Completeness4/5

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

For a read-only, non-destructive stats tool with annotations covering safety and no output schema, the description adequately conveys what is returned via per-sport metric examples. Missing return format and event_id semantics are minor gaps but not blockers.

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?

Schema coverage is 67%: sport and league carry example descriptions while event_id has none. The description indirectly helps by naming leagues/sports (MLB, NBA, WNBA, NFL, NCAAF, Soccer, NHL) that inform the sport/league values, but it adds no syntax or format detail and leaves event_id undefined.

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?

States a specific verb (extract) and resource (individual player boxscores and performance metrics) scoped to a single game, with concrete per-sport metric examples. This distinguishes it reasonably from career-oriented siblings like teams_get_athlete_stats, but it never names those siblings or explicitly contrasts per-game vs. season scope.

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

Usage Guidelines3/5

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

Usage is only implied by the 'for a game' scope and the metric examples; there is no explicit when-to-use guidance, no statement of when to prefer this over teams_get_athlete_gamelog or teams_get_athlete_stats, and no prerequisites called out.

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