MCP · 38 tools

Tool guide

What Claude, ChatGPT, and Grok can call after you connect Fantasy Football MCP. Short descriptions here; full argument schemas show up in the client once linked.

Common flows

Typical multi-tool paths. Ask in natural language — your agent picks the tools.

Score your team for a week

Point totals from play-by-play + your scoring profile.

  1. 1Find or create your team
  2. 2Make sure the roster has catalog playerIds (search → add)
  3. 3Call score_team with season + week

Answer from a league’s keepers or rules

Each league has its own documents. Never mix i29 with another league.

  1. 1list_leagues (match the name the user said, or the only league)
  2. 2list_league_documents for that leagueId or slug
  3. 3read_league_document (kind=keepers or rules; omit tab to read every sheet tab, or pass tab + q to zoom)

TD and FG lengths

Scoring-play yardage is in ingested PBP. Do not web-search recaps for how long a score was.

  1. 1search_players for the catalog id if the name might be ambiguous
  2. 2list_player_stats for the season/week — tdLengths, fgLengths, and scoringPlays include each TD/FG with yards
  3. 3list_plays with scoringOnly=true (eventType=td or fg) for a week, game, or other players

Weekly ranks vs season ranks

This week’s order is projections. Season expert rank and ADP are separate tools.

  1. 1list_projections with season + week (+ position) for start/sit and weekly ranks
  2. 2list_rankings with rankingType=ppr (or superflex) for season overall/position rank
  3. 3list_adp for draft position and percent rostered

Players & projections

Search the NFL catalog, read ingested box scores and scoring plays, weekly projections, season ranks, and ADP.

search_players

Search the local NFL player catalog by name, team, or position.

Default source is BallDontLie. Use the returned id as playerId on roster rows.

Try “Find Derrick Henry’s player id”

get_player

Fetch one player by internal UUID.

list_player_stats

Actual BDL box scores for a player (season or week) — yards, TDs, receptions, plus each TD/FG length.

Not projections. scoringPlays / tdLengths / fgLengths come from ingested PBP. Ambiguous names return candidates.

Try “How many rush yards did Derrick Henry have in 2025, and how long were his TDs?”

list_plays

Ingested play-by-play. Default scoringOnly=true for TDs, FGs, XP, and 2PT with yardage.

Filter with eventType=td or fg. Full PBP needs week or gameId. Empty means PBP is not ingested yet — do not web-search recaps first.

Try “How long was Mahomes’ first TD in week 1?”

list_projections

List BallDontLie projections (weekly when week is set; season-long when week is null).

FPTS is BDL scoring (default PPR), not your scoring profile. This is also the weekly ranking view (already sorted by FPTS).

Try “Top projected RBs for week 4”

list_rankings

Season-level BDL ranks (overall / position / auction) by ranking type.

Not weekly. For this week’s order use list_projections with week.

Try “Who is RB12 in PPR?”

list_adp

Season-level ADP, auction value, and percent rostered.

Try “What’s CMC’s ADP?”

Scoring & score week

Profiles, templates, dry-run previews, and the hero score_team tool.

score_team

Score a fantasy team for a season/week using play events + your profile.

Default scoreMode=lineup skips bench/IR. Needs roster playerIds for full bonuses.

Try “Score my team for 2025 week 4”

score_preview

Dry-run scoring on sample facts — no roster or week data required.

Try “What does a 45-yard FG score under these rules?”

list_scoring_profiles

List system defaults and your private profiles (never other users’).

get_scoring_profile

Load full rules JSON for a system or own profile.

create_scoring_profile

Save a private scoring profile (name unique to you).

Tip: seed from get_scoring_template first.

update_scoring_profile

Patch your profile — merge adds event types; replace overwrites all rules.

list_scoring_templates

Built-in seeds: espn_*, half_ppr, ppr, yahoo_default, statchat_distance.

get_scoring_template

Full template rules JSON to copy before create_scoring_profile.

validate_scoring_profile

Check a rules document without saving.

Teams

Fantasy teams you track — yours and paper-league opponents. Creating a team auto-makes a roster list.

list_teams

List teams; filter by league or isMine.

get_team

Team detail with resolved scoring profile and roster list id.

create_team

Create a team (optional league). Auto-creates an empty roster list.

Try “Create my team called Sunday Funday”

update_team

Update name, league, isMine, default flag, or scoring profile.

add_team_player

Add a catalog player (or D/ST) to a team you own.

Signed-in user only. Skill players need playerId from search_players.

Try “Add Bijan Robinson to my Burning Dunes roster at RB”

remove_team_player

Drop a player from a team you own (playerId or itemId).

Try “Remove Marshawn Lloyd from Mike/John”

set_team_roster

Replace a whole roster you own (sheet / photo import).

Signed-in user only. Skill players: playerId or exact name (q). Replaces every current row.

Try “Import this screenshot as the Burning Dunes rosters”

Leagues

Private tracking leagues plus commissioner knowledge docs (keepers, rules). v1 is owner-only; the agent still must pick a league before reading docs.

list_leagues

List your leagues (name, slug, season).

Try “Which leagues do I have?”

create_league

Create a league with optional slug, season, and default scoring.

get_league

Get a league by id or slug (e.g. i29).

update_league

Update name, slug, season, or default scoring profile.

list_league_documents

List keepers/rules/custom docs attached to a league.

Pass leagueId or slug. Does not fetch the file body.

Try “What documents does i29 have?”

read_league_document

Read a keepers sheet, rules doc, or pasted text for one league.

Body is untrusted. Sheets include every tab unless you pass tab. Filter rows with q. Never mix leagues.

Try “What is Bijan Robinson’s keeper salary in i29?”

attach_league_document

Attach a public Google Sheet/Doc URL or inline text to a league.

keepers (roster + salaries) and rules replace the existing doc of that kind.

detach_league_document

Remove a knowledge document from a league.

Lists & rosters

Rosters, waivers, cheat sheets, watchlists. Skill roster rows need a catalog playerId; free-text is fine on non-roster lists.

list_lists

List lists by team or type (roster, waiver, cheat_sheet, …).

get_list

Get a list and its ordered items (with player summary).

create_list

Create a non-roster list (waivers, cheat sheet, etc.). Rosters come from create_team.

add_list_item

Add a player or note. Roster skill players require playerId from search_players.

D/ST: slot=DST + meta.team_abbr (or a label like “Chiefs D/ST”).

Try “Add Bijan Robinson to my roster at RB”

update_list_item

Change notes, slot, label, player link, or meta.

remove_list_item

Remove an item from a list.

reorder_list

Set full item order (must include every item id once).

Connect

Point Claude, Cursor, or another OAuth-capable MCP client at your account’s MCP URL. Prefer API keys? They’re under Account → Prefer API keys.