ESPN Fantasy Football MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ESPN_S2 | No | Your ESPN_S2 cookie value. Required for private leagues; omit for public leagues. Keep private — it authenticates as your ESPN account. | |
| ESPN_SWID | No | Your ESPN SWID cookie value (including braces, e.g., {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}). Required for private leagues; omit for public leagues. Keep private. | |
| ESPN_YEAR | No | Optional. The fantasy football season year. Defaults to the current calendar year. | |
| ESPN_LEAGUE_ID | Yes | Your ESPN league ID, found in the league URL (e.g., https://fantasy.espn.com/football/league?leagueId=123456 → 123456). Required for both public and private leagues. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_trade_candidatesA | Identify potential trade targets for a team. Args: team_name: Team name or owner name (fuzzy). Finds the team's weakest starting position group, then scans every other team for players at that position who sit on the bench or represent surplus depth. Returns candidates grouped by position need, with the owning team so the user knows whom to approach. |
| get_start_sitA | Recommend start/sit moves for a team's lineup for a given week. Args: team_name: Team name or owner name (fuzzy, case-insensitive substring). week: Week number. Defaults to the upcoming (actionable) week — if the current week's games are already final, this is next week. Flags starters who are injured or on bye, then compares bench players to the current starters at slots they are eligible to fill and suggests any swap where a bench player out-projects a starter. Purely projection-driven — treat it as a starting point, not gospel (matchups and game scripts still matter). |
| refresh_leagueA | Force a re-fetch of all league data from ESPN. Use this when scores, rosters, or transactions may have changed since the server started. All other tools use cached data until this is called. |
| get_league_overviewB | Get a high-level overview of the league. Returns the league name, season year, current week, number of teams, and key settings (scoring type, playoff team count). |
| get_standingsA | Get league standings ranked by record and points for. Includes each team's wins-losses(-ties), points for/against, and current win/loss streak. |
| get_teamsA | List every team in the league with its team name and owner. Use this first so you know the exact names to pass to other tools. Team lookups elsewhere accept either the team name or the owner name. |
| get_matchupsB | Get all matchups for a given week with scores and projections. Args: week: Week number. Defaults to the current week. |
| get_scoreboardA | Get the current week's live scores across all matchups. |
| get_power_rankingsB | Get power rankings for a week, if the library can compute them. Args: week: Week number. Defaults to the current week. |
| get_trade_activityB | List recent completed trades in the league. |
| get_playoff_pictureA | Show the projected playoff picture. Ranks teams by record and points for, marks the current playoff seeds, and gives a rough clinched / in-contention read based on games remaining. |
| get_league_settingsA | Get the league's scoring format and roster/structure settings. Essential context for evaluating player value: scoring type (PPR / half / standard), roster slot requirements, playoff structure, trade deadline, and waiver/FAAB type. |
| get_free_agentsA | List the top available free agents. Args: position: Optional position filter (QB, RB, WR, TE, K, DST). Omit for all. limit: Maximum number of players to return (default 10). Sorted by projected points (falling back to average points). |
| get_player_statsB | Look up a specific player's season stats and current status. Args: player_name: Full or partial player name. Returns season totals/averages, projected points, injury status, and available weekly scores. |
| get_player_scheduleA | Show a player's NFL bye week and remaining NFL matchups. Args: player_name: Full or partial player name. Useful for spotting bye-week conflicts and upcoming tough/easy stretches. |
| get_team_rosterB | Get the full roster for any team in the league. Args: team_name: Team name or owner name (fuzzy, case-insensitive substring). week: Week to project for. Defaults to the upcoming (actionable) week — if the current week's games are already final, this is next week. Shows each player's name, position, projected points, injury status, and whether they are in a starting slot or on the bench. |
| get_head_to_headB | Get the season head-to-head history between two teams. Args: team_name_1: First team (name or owner, fuzzy). team_name_2: Second team (name or owner, fuzzy). Scans each team's weekly schedule for games against the other and reports the results and point totals. |
| get_team_scheduleA | Show a team's remaining schedule with opponent strength. Args: team_name: Team name or owner name (fuzzy). Lists each remaining week's opponent along with that opponent's record and points for, so you can gauge schedule difficulty. |
| compare_teamsB | Compare two teams' starting lineups side by side, position by position. Args: team_name_1: First team (name or owner, fuzzy). team_name_2: Second team (name or owner, fuzzy). Groups starters by position and shows projected points for each slot, plus a projected-points total for each team. |
| get_team_analysisA | Aggregated snapshot of a team for trade / improvement advice. Args: team_name: Team name or owner name (fuzzy). Returns:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 20 tools
Several tools overlap in purpose: get_matchups and get_scoreboard both return weekly scores, and get_standings, get_power_rankings, and get_playoff_picture all rank teams. Descriptions help differentiate, but an agent may still hesitate between the scoreboard and matchups tools.
All tools use snake_case with a consistent verb_noun pattern (get_*, refresh_league, compare_teams). The convention is predictable and readable throughout.
With 20 tools, the server is on the heavy side for the domain, but each tool covers a distinct facet of fantasy football management. Some redundancy exists (e.g., scoreboard vs. matchups), but overall the count is reasonable.
The toolset covers most in-season fantasy football needs: league info, standings, matchups, player stats, rosters, trades, waivers, and start/sit advice. Minor gaps include a full transaction log and waiver bid suggestions, but core workflows are supported.