Skip to main content
Glama

nba_player_stats

Read-only

Get the league-wide NBA player statistics table and return one normalized table with column headers and one row per player. Use season in YYYY-YY form, season_type Regular Season or Playoffs, measure_type Base or Advanced and per_mode PerGame or Totals; only league_id 00 (NBA) is verified. The upstream requires the complete parameter set and answers a trimmed query with HTTP 500, so the service always sends the full set; an unverified enum value stays an upstream error rather than being guessed.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "nba_player_stats"
  }
}

Input Schema

NameRequiredDescriptionDefault
seasonNoOptional season in YYYY-YY form, for example 2026-27. Defaults to the current NBA season.
per_modeNoOptional aggregation; PerGame or Totals. Defaults to PerGame.
league_idNoOptional league id; only 00 (NBA) is verified.
season_typeNoOptional season type; Regular Season or Playoffs. Defaults to Regular Season.
measure_typeNoOptional statistic family; Base or Advanced. Defaults to Base.

Output Schema

NameRequiredDescriptionDefault
dataYesThe tool result payload (shape varies per tool; see each tool's docs resource).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the description correctly spends its words elsewhere: it discloses that the upstream demands the complete parameter set, that a trimmed query yields HTTP 500, and that the service therefore always transmits all five parameters. It also discloses that an unverified enum value propagates as an upstream error rather than being silently coerced, which is genuinely useful failure-mode context not present in the annotations or schema.

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?

Structure is strong: purpose first, then the accepted parameter vocabulary, then upstream failure behavior last. The parameter sentence is dense but earns its place; the closing two clauses overlap somewhat ('requires the complete parameter set' vs 'always sends the full set'), a small redundancy in an otherwise tight description.

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?

With an output schema available to describe the returned table, the description need not explain return values, and it correctly focuses on input formats, defaults, and the HTTP 500 failure mode. For a five-parameter read-only stats tool this is close to complete, with only the multi-tool selection context left unstated.

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 description coverage is 100% and the schema already enumerates PerGame/Totals, Regular Season/Playoffs, Base/Advanced and the 00-only note, so most of the description's parameter text restates structured data. The added value is marginal — the YYYY-YY example and the statement that the full set is always sent — which fits the baseline 3 when the schema carries the burden.

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 ('Get the league-wide NBA player statistics table') and states the output shape ('one normalized table with column headers and one row per player'), which implicitly separates it from the many per-player siblings such as nba_player_bio_stats or nba_player_career_stats. It never names a sibling outright, so the differentiation is inferred from 'league-wide' rather than explicit.

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?

It gives concrete parameter guidance (season in YYYY-YY, allowed values for season_type, measure_type, and per_mode, and that only league_id 00 is verified), which tells the agent how to call it correctly. It offers no explicit when-to-use versus when-to-avoid guidance relative to the sibling stats tools, leaving alternative selection to inference.

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.