Skip to main content
Glama

SportStatsAPI

get_player

Read-only

Player profile with summary: ready paragraphs from our data (club, season numbers, form; English, no lang; summary_as_of; absent when not fresh or for a player under 18); position, nationality, birth date, height, team, career and photo link where known; cricket and tennis also Wikidata values (birth date, height, batting or playing hand, bowling style, role, country; cite the attribution); tennis also the ATP/WTA rank and season_stats: the season record (current year, or season) from our singles main-draw matches since 2026-04-01 (won, lost, per surface and level, retirements counted, walkovers not, finals, titles), or with vs the head-to-head of two players; soccer also bio: known_as, full_name, short_name, birth_date, age, nationality, position, number, club, market_value_eur (null = not in our data; there are no contract dates), and season_stats: the current season (or season) in every competition we hold statistics for, total and per competition (apps, minutes, goals, assists, cards, shots, rating; null = not in our data; matches_with_stats of team_matches_played says how complete it is); with matches, last_matches: the player's last N matches (date, league, opponent, venue, score, result, started, minutes, goals, assists, cards, shots, rating, goalkeepers conceded and clean sheet; null = not in our data; matches without statistics or that he missed are not listed); NBA, MLB and NFL players also season_stats: the season line per team from the data provider's team feeds (stats by category as the feed names them; season null for the NBA, whose feed names none, as_of when read); WNBA, NCAA and hockey (NHL, Liiga, SHL, DEL) players the same, summed from our box scores; with matches, US-sport players (NBA, WNBA, NCAA, MLB, NFL, NHL) last_matches: the last N games from our box scores (date, league, opponent, venue, score, result, stats by category as in season_stats but per game; null = not in the box); handball players (Swedish and Austrian lower leagues) the same season_stats from the federations' player statistics and match reports (null = not in our data).

Input Schema

NameRequiredDescriptionDefault
vsNotennis: another player's id, for the head-to-head of the two instead
langNolanguage of team, league and country names: de, es, it or fr (default English)
sportYessport (see list_sports)
seasonNosoccer: season_stats of this season (2025-26, or 2025) instead of the current one; tennis: a year (2026)
matchesNosoccer, NBA, MLB, NFL, NHL (and WNBA, NCAA): also last_matches, the player's last N matches or games (1-50) with his line in each
player_idYesplayer code (or number) from a squad or lineup

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / season / description
      Previous value: -"soccer: season_stats of this season (2025-26, or 2025) instead of the current one"New value: +"soccer: season_stats of this season (2025-26, or 2025) instead of the current one; tennis: a year (2026)"
  2. Changed1 schema field changed
    • changedInput schema / properties / matches / description
      Previous value: -"soccer: also last_matches, the player's last N matches (1-50) with his line in each"New value: +"soccer, NBA, MLB, NFL, NHL (and WNBA, NCAA): also last_matches, the player's last N matches or games (1-50) with his line in each"
  3. Changed1 schema field changed
    • addedInput schema / properties / matches
      Added value: +{
      +  "description": "soccer: also last_matches, the player's last N matches (1-50) with his line in each",
      +  "type": "integer"
      +}
  4. Changed1 schema field changed
    • changedInput schema / properties / player_id / description
      Previous value: -"player id from a squad or lineup"New value: +"player code (or number) from a squad or lineup"
  5. Changed2 schema fields changed
    • changedInput schema / properties / player_id / type
      Previous value: -"integer"New value: +[
      +  "integer",
      +  "string"
      +]
    • changedInput schema / properties / vs / type
      Previous value: -"integer"New value: +[
      +  "integer",
      +  "string"
      +]
  6. Changed1 schema field changed
    • addedInput schema / properties / season
      Added value: +{
      +  "description": "soccer: season_stats of this season (2025-26, or 2025) instead of the current one",
      +  "type": "string"
      +}
  7. Changed1 schema field changed
    • addedInput schema / properties / vs
      Added value: +{
      +  "description": "tennis: another player's id, for the head-to-head of the two instead",
      +  "type": "integer"
      +}
  8. First observed

TDQS

A3.7/5.0
Behavior5/5

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

With annotations only declaring readOnly/openWorld/idempotent, the description carries real behavioral weight: it discloses freshness semantics ('summary_as_of', 'absent when not fresh'), an under-18 suppression rule, null-means-not-in-data conventions repeated per data source, attribution requirements for Wikidata values, and counting rules ('retirements counted, walkovers not', 'matches without statistics or that he missed are not listed'). These are exactly the kind of caveats an agent needs before interpreting results.

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

Conciseness2/5

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

It is one enormous run-on sentence with semicolon chains, not front-loaded by tier or sport, which makes it hard to scan. The phrase 'null = not in our data' is repeated three times and several clauses restate the same freshness convention, so length is not fully earning its place despite the information density.

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 multi-sport tool with six parameters and no output schema, the description does the heavy lifting of explaining what each sport returns, including season_stats and last_matches shapes. Gaps remain around error behavior for unknown player_id and any rate/attribution limits beyond the Wikidata citation note.

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 100%, so the baseline is 3; the description largely restates the schema's per-sport meanings for 'vs', 'matches' and 'season' rather than adding syntax or edge-case guidance. It adds marginal clarity by tying 'with matches' to the last_matches payload, but nothing the schema does not already convey.

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 opening clause states a specific resource ('Player profile with summary') and enumerates the content delivered per sport, so an agent can tell it returns a player profile rather than a match or team. Sibling differentiation is weak: the description never says why to use get_player over get_golf_player, get_snooker_darts_player or get_boxing_fighter, leaving overlap with those tools unresolved.

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 sport-conditional inventory ('tennis also...', 'soccer also...'), which tells an agent what it will get but not when to select this tool over the player-specific siblings. There are no explicit exclusions or prerequisites such as requiring a player_id from a squad/lineup call.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources