Fantasy-Football-Draft-MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ESPN_S2 | No | ESPN S2 cookie for private leagues | |
| ESPN_SWID | No | ESPN SWID cookie for private leagues | |
| FFDRAFT_SEASON | No | Season year for the draft (e.g., 2026) | 2026 |
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 |
|---|---|
| configure_leagueB | Create or update a league, and make it the active one. Give each league a name and you can keep as many as you like side by side — a 10-team full PPR and a 13-team half PPR hold separate boards, separate replacement levels and separate in-progress drafts. scoring: ppr, half_ppr, or standard. Use superflex=1 for a second QB-eligible slot, and te_premium_bonus for extra points per tight end reception. consistency_weight trades expected points against week-to-week reliability (0 = pure upside, 1 = pure floor). |
| list_leaguesA | Every league you've set up, and which one is active. |
| switch_leagueA | Make a different league active. Its board and draft resume where you left them. |
| remove_leagueA | Delete a league and its draft history. The board cache is left alone, since other leagues with the same format may share it. |
| refresh_dataB | Rebuild the player board from source data. Run once before draft day. |
| best_availableA | The next best players still on the board. sort_by: draft_score (balanced), vor (raw value), consistency (floor), proj_points, or value (biggest gap between ADP and model rank). |
| who_should_i_pickA | The live draft-analyst call: who to take right now, and why. Weighs projected value, week-to-week consistency, your roster's open starting slots, and the odds each player survives to your next pick. |
| record_pickA | Log a pick that just happened. Use after every pick if you aren't auto-syncing. |
| sync_draftA | Pull the current draft board from your platform. platform="sleeper" with draft_id -- fully automatic, public API. platform="espn" with league_id -- works for public leagues; private ones need ESPN_SWID and ESPN_S2 environment variables from a logged-in browser session. platform="paste" with pasted_board -- paste the drafted list from any site. |
| draft_statusB | Where the draft stands and what your roster looks like. |
| undo_pickA | Remove the most recent pick — for when someone mis-enters the board. |
| reset_draftA | Clear all recorded picks and start fresh. |
| separation_reportA | Separation and route efficiency — the open-data version of a PFF SEP/YPRR table. avg_separation is NFL Next Gen Stats tracking data: yards of daylight between receiver and nearest defender when the ball arrives. YPRR and TPRR use routes estimated from snap share times team dropbacks. Only players who cleared 250 routes and 50 targets in a season are included, so these are real workloads rather than flattering part-time rates. Man-versus-zone splits are not reproducible from open data — that needs per-play coverage charting. |
| value_picksA | Where the model disagrees with the draft market, on draftable players only. Positive gap means the model ranks a player higher than the room does — the players you can wait on and still get. Negative means the market is paying more than the model thinks they're worth. |
| draft_value_historyC | Backtest: how preseason consensus rank compared to where players actually finished. Value is measured in points against what that draft slot actually returned, so "did RB5 capital buy RB5 production?" Rank movement would be unfair to early picks and would label whole rounds as busts, because undrafted breakouts push every drafted player down the final standings. |
| persistent_value_playersC | Players who beat their draft cost repeatedly, not once. One outperformance is a season; three is a trait. This is the closest the data comes to naming players the market persistently misprices. |
| rookie_reportA | Projected rookies for this season, from draft capital and landing spot. Rookies have no NFL history, so they're projected off a curve fitted to how draft pick converted to first-year production across the last ten classes, then adjusted for the offence they landed in. Consistency is deliberately low for all of them: rookie roles move mid-season and the floor is a healthy scratch. Treat these as the widest error bars on the board. |
| resolve_namesA | Check how names resolve against the board — useful before trusting a paste sync. Reports the match type for each name so silent mismatches surface. A name that fails to resolve looks like a player who scored zero, which is the single most damaging failure mode in this whole pipeline. |
| prewarmA | Build every cache before draft day so nothing computes while you're on the clock. The first query of a session pays for downloading and modelling five seasons. Every query after it is served from memory. Run this an hour before your draft, not during it. |
| player_reportA | Full breakdown of one player: production, role, environment, injury, consistency. |
| compare_playersA | Compare 2-4 players head to head. Pass a comma-separated list. |
| team_contextC | Offensive environment for an NFL team: O-line, pace, run/pass split, schedule. |
| defense_reportA | Defensive rankings against a position — fantasy points allowed, 5-year view. Rank 1 = toughest matchup. This is what drives the schedule adjustment. |
| plan_my_draftA | Simulate your whole draft from your slot and return the projected lineup. Runs the board forward pick by pick, using ADP to model who realistically falls to you at each turn, and applies the same recommendation logic at every stop. strategy: balanced, zero_rb, hero_rb, or robust_rb. |
| model_settingsC | Tune how much each factor moves a player. Rebuilds the board. |
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 25 tools
Most tools have clearly distinct scopes (league management, draft syncing, player reports, historical analysis). However, best_available, who_should_i_pick, and value_picks all serve draft recommendation purposes, creating mild ambiguity despite detailed descriptions.
All names use lowercase snake_case and are readable, but they mix verb_noun patterns (configure_league, record_pick) with noun phrases (best_available, value_picks, separation_report). This is mostly consistent but not perfectly uniform.
At 25 tools, the count is borderline heavy but suits the broad domain of fantasy football drafting, covering league setup, live draft management, player research, backtesting, and simulation. Each tool serves a distinct purpose, so the size feels justified rather than bloated.
The tool set offers comprehensive lifecycle coverage: league CRUD, draft tracking (record/sync/undo/reset), multiple analysis perspectives (player, team, defense, rookies), historical value tools, and full-draft simulation. No major gaps are apparent for the stated draft-focused purpose.