Skip to main content
Glama

Get Schedule, Strength of Schedule, and Playoff Picture

fantasy_get_schedule
Read-onlyIdempotent

Full-season schedule, strength of schedule, and a DETERMINISTIC playoff picture (seeds, clinched/eliminated, magic numbers: exact win/loss math, not simulation, so report clinches as guarantees). For "am I making the playoffs", "who's clinched", "who has the easier schedule", rest-of-season outlook; view picks a section. ESPN/Sleeper: full. Fantrax: H2H schedule and partial SoS, no clinch math; private leagues without a saved session cookie get pairings only.

Input Schema

NameRequiredDescriptionDefault
viewNo'all', or only the game list, strength of schedule, or playoff picture.all
sportNoe.g. 'NFL', 'NBA'. Needed for ESPN/Sleeper and Fantrax name lookups.
seasonNoSeason year, e.g. 2025; ignored by Fantrax.
providerNoFantasy platform. Optional: defaults to your connected platform ('sleeper').
league_idNoOmit when connected. League id (Fantrax also takes the league URL).
team_queryNoYour team's exact id (preferred) or unique name; labels it (your team). Fantrax needs it (no owner data); ESPN/Sleeper auto-detect. Ids: fantasy_get_league_info.
credentialsNoOnly WITHOUT a connected profile: secret_id (Fantrax), espn_s2 + swid (private ESPN), username or user_id (Sleeper discovery). Public ESPN and Sleeper reads need none.
league_queryNoA connected league's name/id; omit to auto-pick (primary first). Never ask for ids.
include_gamesNoInclude the per-week game list.
response_formatNo'markdown' (default, most compact) or 'json' (same normalized data, not the raw payload).markdown

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / credentials / additionalProperties
      Previous value: -trueNew value: +{}
    • changedInput schema / properties / season / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "string"
      +  }
      +]
  2. Changed8 schema fields changed
    • changedInput schema / properties / credentials / description
      Previous value: -"Per-call credentials, only needed WITHOUT a connected profile. Keys: secret_id (Fantrax); espn_s2 + swid (private ESPN leagues); username or user_id (Sleeper discovery); session_cookie / auth_token + write_enabled:true (explicit write opt-in only). Public ESPN leagues and all Sleeper reads need none."New value: +"Only WITHOUT a connected profile: secret_id (Fantrax), espn_s2 + swid (private ESPN), username or user_id (Sleeper discovery). Public ESPN and Sleeper reads need none."
    • changedInput schema / properties / league_id / description
      Previous value: -"The platform's league id (Fantrax also accepts the full league URL)."New value: +"Omit when connected. League id (Fantrax also takes the league URL)."
    • changedInput schema / properties / league_query / description
      Previous value: -"League name/id filter, for when the profile has several leagues on the provider."New value: +"A connected league's name/id; omit to auto-pick (primary first). Never ask for ids."
    • changedInput schema / properties / response_format / description
      Previous value: -"'markdown' (default) or 'json' (raw payload)."New value: +"'markdown' (default, most compact) or 'json' (same normalized data, not the raw payload)."
    • changedInput schema / properties / season / description
      Previous value: -"Season year, e.g. 2025. Required for ESPN/Sleeper league discovery; ignored by Fantrax."New value: +"Season year, e.g. 2025; ignored by Fantrax."
    • changedInput schema / properties / sport / description
      Previous value: -"Sport, e.g. 'NFL', 'NBA', 'MLB', 'NHL'. Required for ESPN/Sleeper and Fantrax name lookups."New value: +"e.g. 'NFL', 'NBA'. Needed for ESPN/Sleeper and Fantrax name lookups."
    • changedInput schema / properties / team_query / description
      Previous value: -"Your team's exact id (preferred) or a unique name fragment; marks it ⭐. Required on Fantrax (no owner data there); ESPN/Sleeper auto-detect. Team ids come from fantasy_get_league_info."New value: +"Your team's exact id (preferred) or unique name; labels it (your team). Fantrax needs it (no owner data); ESPN/Sleeper auto-detect. Ids: fantasy_get_league_info."
    • changedInput schema / properties / view / description
      Previous value: -"Sections to return: 'all', game list only, strength of schedule only, or playoff picture only."New value: +"'all', or only the game list, strength of schedule, or playoff picture."
  3. Changed16 schema fields changed
    • changedInput schema / properties / credentials / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / credentials / description
      Previous value: -"Per-call credentials. Fill only the keys your provider needs (see fantasy_list_providers). Public ESPN leagues and all Sleeper reads need none."New value: +"Per-call credentials, only needed WITHOUT a connected profile. Keys: secret_id (Fantrax); espn_s2 + swid (private ESPN leagues); username or user_id (Sleeper discovery); session_cookie / auth_token + write_enabled:true (explicit write opt-in only). Public ESPN leagues and all Sleeper reads need none."
    • removedInput schema / properties / credentials / properties / espn_s2
      Removed value: -{
      -  "description": "ESPN private-league cookie 'espn_s2' (DevTools → Application → Cookies → espn.com).",
      -  "type": "string"
      -}
    • removedInput schema / properties / credentials / properties / secret_id
      Removed value: -{
      -  "description": "Fantrax Secret ID (User Profile → 'Your Secret ID').",
      -  "type": "string"
      -}
    • removedInput schema / properties / credentials / properties / swid
      Removed value: -{
      -  "description": "ESPN private-league cookie 'SWID': a GUID in curly braces, e.g. {XXXX-...}.",
      -  "type": "string"
      -}
    • removedInput schema / properties / credentials / properties / user_id
      Removed value: -{
      -  "description": "Sleeper numeric user_id (alternative to username).",
      -  "type": "string"
      -}
    • removedInput schema / properties / credentials / properties / username
      Removed value: -{
      -  "description": "Sleeper username (for league discovery).",
      -  "type": "string"
      -}
    • 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."
    • changedInput schema / properties / team_query / description
      Previous value: -"Identifies your team and marks it ⭐. Use the exact team id (preferred because it never breaks on rename) or a unique part of the team name. REQUIRED for Fantrax to identify your team: Fantrax exposes no owner data, so it cannot be auto-detected (ESPN/Sleeper auto-detect from your credentials). Get team ids from fantasy_get_league_info. For rosters this also filters to that team."New value: +"Your team's exact id (preferred) or a unique name fragment; marks it ⭐. Required on Fantrax (no owner data there); ESPN/Sleeper auto-detect. Team ids come from fantasy_get_league_info."
    • changedInput schema / properties / view / description
      Previous value: -"Which sections to return: full ('all'), just the game list, just strength of schedule, or just the playoff picture."New value: +"Sections to return: 'all', game list only, strength of schedule only, or playoff picture only."
    • removedInput schema / required
      Removed value: -[
      -  "provider"
      -]
  4. First observed

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/non-destructive, but the description adds genuinely new behavioral facts: results are exact win/loss math rather than simulation, so clinches should be reported as guarantees. It also discloses per-provider fidelity (ESPN/Sleeper full vs Fantrax H2H-only, partial SoS, no clinch math) and an auth edge case where private leagues without a saved session cookie return pairings only.

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?

The output surface is front-loaded before the usage triggers and provider caveats, and every clause carries information. It is dense with stacked parentheticals and a quote list, which costs some readability but not correctness.

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 10-parameter, no-output-schema tool, the description covers the important variance: what each view returns, how providers differ, and the credential/session caveat. Remaining gaps (response shape, defaults like view=all, required-param guidance) are already documented in the schema.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3; the description goes slightly beyond it by tying view to sections and by stating that Fantrax requires team_query while ESPN/Sleeper auto-detect it. Those cross-parameter dependencies are not spelled out in the schema, though the remaining parameters are left entirely to the schema.

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 names three concrete outputs (full-season schedule, strength of schedule, deterministic playoff picture with seeds/clinch/magic numbers) rather than restating the tool name, and it explicitly contrasts its math with simulation. It never names a sibling such as fantasy_get_standings or fantasy_get_matchups to draw the boundary, so the split is inferable 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?

It supplies real user-intent triggers ('am I making the playoffs', 'who's clinched', 'who has the easier schedule', rest-of-season outlook) and explains that the view parameter narrows the section. It does not say when to prefer a different tool or state exclusions other than provider coverage, so it lands short of a full when/when-not treatment.

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