Skip to main content
Glama

Flaim Fantasy

League Context

get_league_info
Read-onlyIdempotent

With session context established, call this once per league the first time this chat works with that league, before the requested standings, matchup, roster, free-agent, player, transaction, or draft tool, then reuse it for later questions about that league. A usable successful get_user_session result from earlier in this chat satisfies that prerequisite; do not repeat it just to satisfy this ordering. Skip it only when answering from session data alone or branching to get_ancient_history. This provides the baseline league context for analysis: league name, settings, scoring type, roster configuration, and team/owner context, plus schedule or season-window metadata when the platform provides it. Keeper and draft-format fields are additive and platform-dependent; never assume one provider's fields exist on another. ESPN adds keeperSettings (keeperCount, keeperCountFuture, keeperOrderType, keeperDeadlineDate) and isKeeperLeague when ESPN reports a keeper count, plus per-team keeperPlayerIds and futureKeeperPlayerIds as raw ESPN player IDs with no name resolution. Sleeper adds leagueFormat, whose typeRaw is an undocumented Sleeper convention that must not be read on its own as a redraft, keeper, dynasty, or guillotine signal, plus per-team keepers as raw Sleeper player IDs. When its settings request succeeds, Yahoo may add draftType, isAuctionDraft, canTradeDraftPicks, waiverType, waiverRule, waiverTime (days), postDraftPlayers, cantCutList, and maxWeeklyAdds; it also adds weeklyDeadline from league metadata. Yahoo statModifiers returns configured per-stat scoring values and may add bonuses as Yahoo's configured target/points rule pairs. These are league rules, not calculated player awards; do not infer whether a target is inclusive or whether multiple tiers stack. Yahoo's rule and deadline codes are raw provider values with no complete published code list: do not decode them, call weeklyDeadline a lock time, or infer that a particular move is legal. The settings fields are omitted, with a warning, when Yahoo's settings request fails. Yahoo exposes no keeper-cost rule. Sleeper futureDraftRounds describes the configured round count for future drafts; use get_draft.draft.rounds for the selected draft's actual round count. When fanning out across multiple leagues, call this once per league. The exact team fields vary by platform but all include ownerName. Use values from get_user_session. Read-only.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "platform": "<platform>",
      "sport": "<sport>",
      "league_id": "<league_id>",
      "season_year": "<season_year>"
    },
    "name": "get_league_info"
  }
}

Input Schema

NameRequiredDescriptionDefault
sportYesSport type (e.g., "football", "baseball")
platformYesFantasy platform (e.g., "espn", "yahoo", "sleeper")
league_idYesLeague ID (get from get_user_session)
season_yearYesSeason start year — use the season_year returned by get_user_session for this league; only pass an older year when the user explicitly asks about a past season. Basketball and hockey use the start year of a cross-year season (2024 = the 2024-25 season); football and baseball use the single season year (2025 = the 2025 season).

Output Schema

NameRequiredDescriptionDefault
dataYesPlatform envelope. Field availability varies by platform (ESPN, Yahoo, Sleeper); absent fields are not provided by that platform.
successYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / data / properties / statModifiers
      Added value: +{
      +  "description": "Yahoo configured per-stat scoring values, with optional configured bonus threshold and point rules when Yahoo reports a fully usable bonus list",
      +  "items": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "bonuses": {
      +        "description": "Yahoo configured bonus threshold and point pairs for this stat; league rules, not calculated awards",
      +        "items": {
      +          "additionalProperties": true,
      +          "properties": {
      +            "points": {
      +              "type": "number"
      +            },
      +            "target": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "target",
      +            "points"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "displayName": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "name": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "statId": {
      +        "type": "string"
      +      },
      +      "value": {
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "statId",
      +      "value",
      +      "name",
      +      "displayName"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  2. Changed7 schema fields changed
    • addedOutput schema / properties / data / properties / cantCutList
      Added value: +{
      +  "description": "Yahoo raw undroppable-list setting code; it does not itself identify every player that cannot be dropped",
      +  "type": "string"
      +}
    • addedOutput schema / properties / data / properties / maxWeeklyAdds
      Added value: +{
      +  "description": "Yahoo maximum weekly adds when Yahoo reports a non-negative integer; absent does not establish no limit",
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / data / properties / postDraftPlayers
      Added value: +{
      +  "description": "Yahoo raw post-draft player-acquisition code; do not decode it without Yahoo evidence",
      +  "type": "string"
      +}
    • addedOutput schema / properties / data / properties / waiverRule
      Added value: +{
      +  "description": "Yahoo raw waiver-rule code; Yahoo does not publish a complete code list, so do not decode or infer a rule from it alone",
      +  "type": "string"
      +}
    • addedOutput schema / properties / data / properties / waiverTime
      Added value: +{
      +  "description": "Yahoo waiver delay in days when Yahoo reports a usable value",
      +  "type": "number"
      +}
    • addedOutput schema / properties / data / properties / waiverType
      Added value: +{
      +  "description": "Yahoo raw waiver-system code; Yahoo does not publish a complete code list, so do not decode or infer a rule from it alone",
      +  "type": "string"
      +}
    • addedOutput schema / properties / data / properties / weeklyDeadline
      Added value: +{
      +  "description": "Yahoo raw weekly-deadline code. It is not a lineup lock time and does not establish whether a particular move is legal",
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • addedOutput schema / properties / data / properties / scoringFormat
      Added value: +{
      +  "description": "Yahoo: sport-aware reading of scoringType. Yahoo's raw \"head\" means points in football and categories in other sports",
      +  "enum": [
      +    "points",
      +    "categories",
      +    "roto",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • changedInput schema / properties / season_year / description
      Previous value: -"Season start year — use the season_year returned by get_user_session for this league; only pass an older year when the user explicitly asks about a past season"New value: +"Season start year — use the season_year returned by get_user_session for this league; only pass an older year when the user explicitly asks about a past season. Basketball and hockey use the start year of a cross-year season (2024 = the 2024-25 season); football and baseball use the single season year (2025 = the 2025 season)."
  5. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": true,
      +  "properties": {
      +    "data": {
      +      "additionalProperties": true,
      +      "description": "Platform envelope. Field availability varies by platform (ESPN, Yahoo, Sleeper); absent fields are not provided by that platform.",
      +      "properties": {
      +        "currentMatchupPeriod": {
      +          "type": "number"
      +        },
      +        "currentWeek": {
      +          "type": [
      +            "number",
      +            "string"
      +          ]
      +        },
      +        "draftId": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "draftStatus": {
      +          "type": "string"
      +        },
      +        "endWeek": {
      +          "type": [
      +            "number",
      +            "string"
      +          ]
      +        },
      +        "id": {
      +          "type": [
      +            "string",
      +            "number"
      +          ]
      +        },
      +        "isFinished": {
      +          "type": "boolean"
      +        },
      +        "leagueId": {
      +          "type": [
      +            "string",
      +            "number"
      +          ]
      +        },
      +        "leagueKey": {
      +          "type": "string"
      +        },
      +        "name": {
      +          "type": "string"
      +        },
      +        "numTeams": {
      +          "type": [
      +            "number",
      +            "string"
      +          ]
      +        },
      +        "previousLeagueId": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "roster": {
      +          "additionalProperties": true,
      +          "properties": {},
      +          "type": "object"
      +        },
      +        "rosterPositions": {
      +          "items": {},
      +          "type": "array"
      +        },
      +        "schedule": {
      +          "additionalProperties": true,
      +          "properties": {},
      +          "type": "object"
      +        },
      +        "scoringPeriodId": {
      +          "type": "number"
      +        },
      +        "scoringSettings": {
      +          "additionalProperties": true,
      +          "properties": {},
      +          "type": "object"
      +        },
      +        "scoringType": {
      +          "type": "string"
      +        },
      +        "season": {
      +          "type": [
      +            "string",
      +            "number"
      +          ]
      +        },
      +        "seasonId": {
      +          "type": "number"
      +        },
      +        "segmentId": {
      +          "type": "number"
      +        },
      +        "size": {
      +          "type": "number"
      +        },
      +        "sport": {
      +          "type": "string"
      +        },
      +        "startWeek": {
      +          "type": [
      +            "number",
      +            "string"
      +          ]
      +        },
      +        "status": {},
      +        "teams": {
      +          "description": "Team/owner context; exact team fields vary by platform but all include ownerName",
      +          "items": {
      +            "additionalProperties": true,
      +            "properties": {
      +              "ownerName": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "totalRosters": {
      +          "type": "number"
      +        },
      +        "url": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "success": {
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "success",
      +    "data"
      +  ],
      +  "type": "object"
      +}
  6. Changed1 schema field changed
    • changedInput schema / properties / season_year / description
      Previous value: -"Season start year (e.g., 2025 for MLB 2025, 2024 for NBA 2024-25)"New value: +"Season start year — use the season_year returned by get_user_session for this league; only pass an older year when the user explicitly asks about a past season"
  7. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover read-only, idempotent, open-world, non-destructive, but the description adds substantial behavior beyond them: platform-specific field availability, a warning-and-omit fallback when Yahoo's settings request fails, an explicit warning that Sleeper's leagueFormat.typeRaw is undocumented and must not be read as a league-type signal, and that Yahoo rule/deadline codes are raw and must not be decoded or treated as lock times. These are exactly the caveats an agent needs to avoid misinterpreting 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?

The ordering and skip rules are correctly front-loaded, but the middle of the description becomes a long platform-by-platform enumeration of return fields (keeperSettings, leagueFormat, draftType, waiverTime, statModifiers, etc.) despite an output schema being present. Those sentences do not earn their place in a selection-time description and make the one-paragraph block hard to scan.

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

Completeness5/5

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

Given an output schema and full annotation coverage, nothing an agent needs in order to call this correctly is missing: prerequisites, ordering, reuse, exclusions, and per-platform semantic traps are all stated. Completeness is not a gap here; if anything the definition is over-provisioned.

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%, including the non-obvious cross-year season convention and enum values, so the schema already carries the parameter burden. The description's only added instruction, 'Use values from get_user_session,' restates what the league_id schema description already says. Baseline 3 is appropriate since the schema does the work.

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 names a specific verb and resource: it 'provides the baseline league context for analysis: league name, settings, scoring type, roster configuration, and team/owner context.' It also explicitly distinguishes itself from the tools it must precede (standings, matchup, roster, free-agent, player, transaction, draft) and from get_ancient_history, so an agent can place it without opening any schema.

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

Usage Guidelines5/5

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

Ordering is spelled out precisely: call once per league on first use, before the dependent tool, then reuse. It also names two explicit exclusions ('skip it only when answering from session data alone or branching to get_ancient_history') and clarifies that an earlier get_user_session success satisfies the prerequisite, so the agent will not make a redundant 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.