Skip to main content
Glama

Get League Health (commissioner report)

fantasy_get_league_health
Read-onlyIdempotent

THE COMMISSIONER REPORT for one league: competitive balance (points-for spread), this week's blowouts, and which teams look checked out (inactive-heavy rosters). Use for "is my league healthy/competitive", "who's tanking", or a state-of-the-league summary. Profile-first: league inferred when connected.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sportNoSport, e.g. 'NFL', 'NBA', 'MLB', 'NHL'. Required for ESPN/Sleeper and Fantrax name lookups.
seasonNoSeason year, e.g. 2025. Required for ESPN/Sleeper league discovery; ignored by Fantrax.
providerNoFantasy platform. Optional: defaults to your connected platform ('sleeper').
league_idNoThe platform's league id (Fantrax also accepts the full league URL).
league_queryNoLeague name/id filter, for when the profile has several leagues on the provider.
response_formatNo'markdown' (default) or 'json' (raw payload).markdown

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • changedInput schema / properties / league_id / description
      Previous value: -"The league id from the platform. For Fantrax, a full league URL is also accepted and the server extracts the id."New value: +"The platform's league id (Fantrax also accepts the full league URL)."
    • changedInput schema / properties / league_query / description
      Previous value: -"Optional profile league name/id filter. Use when the profile has multiple leagues for the provider."New value: +"League name/id filter, for when the profile has several leagues on the provider."
    • changedInput schema / properties / provider / description
      Previous value: -"Fantasy platform: 'fantrax', 'espn', or 'sleeper'. Call fantasy_list_providers first to see each provider's capabilities and required credentials."New value: +"Fantasy platform. Optional: defaults to your connected platform ('sleeper')."
    • changedInput schema / properties / response_format / description
      Previous value: -"Output format: 'markdown' (default, human-readable) or 'json' (raw upstream payload)."New value: +"'markdown' (default) or 'json' (raw payload)."
    • changedInput schema / properties / season / description
      Previous value: -"Season year, e.g. 2024. REQUIRED for espn and sleeper league discovery; ignored by fantrax."New value: +"Season year, e.g. 2025. Required for ESPN/Sleeper league discovery; ignored by Fantrax."
    • changedInput schema / properties / sport / description
      Previous value: -"Sport, e.g. 'NFL', 'NBA', 'MLB', 'NHL'. Required for ESPN/Sleeper and for Fantrax player/name lookups."New value: +"Sport, e.g. 'NFL', 'NBA', 'MLB', 'NHL'. Required for ESPN/Sleeper and Fantrax name lookups."
    • removedInput schema / required
      Removed value: -[
      -  "provider"
      -]
  2. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true and destructiveHint=false, so the agent already knows it's a safe read. The description adds that the tool is profile-first (league inferred when connected), which is a key behavioral trait beyond the schema. However, it does not specify what happens when no profile is connected (e.g., does it error or require league_id?), which is a minor gap given the openWorldHint.

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?

Two sentences, tightly packed with value. The main purpose is front-loaded with 'THE COMMISSIONER REPORT' and the key outputs are listed immediately. The 'Profile-first' note is a useful addition. No wasted words, but 'Use for' list could be slightly trimmed, though it adds clarity.

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?

The tool has 6 optional parameters and no output schema. The description explains what the report contains but does not specify the return format (beyond response_format parameter) or how it handles missing profile/connection. Given the complexity of profile inference and multiple providers, an agent might need more guidance on error states or default behavior. The description is adequate but leaves some edge cases uncovered.

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

Parameters2/5

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

Schema coverage is 100% (all 6 parameters have descriptions in the schema), so baseline is 3. The description does not add any parameter-level meaning beyond the schema; it only mentions the tool is profile-first)Skip. There is no information about how league_query interacts with profile inference, or whether sport/season are required when no profile is connected. The description fails to compensate for the schema's minimal parameter details, and the schema descriptions are generic (e.g., 'League name/id filter').

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

Purpose5/5

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

The description clearly states it produces a 'commissioner report' covering competitive balance, blowouts, and inactive teams. It distinguishes itself from siblings by focusing on league health metrics rather than raw standings or matchups, and the verb 'get' plus specific resource 'league health' is unambiguous.

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 description explicitly says when to use it: for questions like 'is my league healthy/competitive', 'who's tanking', or a state-of-the-league summary. It does not name specific alternatives or exclusions, but the use-cases are clear enough to route an agent. Sibling tools like fantasy_get_standings or fantasy_get_rosters are implied alternatives, but no direct comparison is given.

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