StatsDeck ← Home

StatsDeck

Documentation

StatsDeck is an MCP connector that gives Claude context on your fantasy football leagues. By syncing your roster, current stats, and exact league scoring, it allows you and Claude to collaborate seamlessly on the best strategies to manage your team.

StatsDeck also brings NFL-wide data including usage, injuries, and matchups — plus its own models and rankings to supplement your decision-making. StatsDeck never supports betting, spreads, or Daily Fantasy Sports (DFS) content.

What StatsDeck does

StatsDeck supplies the exact facts and league scoring models, giving Claude a precise foundation to reason over and optimize your team.

  • Full League Sync: Tracks your roster, your opponent's lineup, and every other team across your league.
  • Exact Scoring Calibration: Computes every points figure under your specific rules, supporting standard, PPR, half-PPR, or deep custom settings.
  • Current Data: Feeds Claude player production, snap shares, injury reports, defensive matchups, kickers, and schedules.
  • Strategic Decisions: Generates optimized start/sit recommendations, waiver wire targets, two-sided trade evaluations, and custom-tiered draft boards.

Getting started

1. Add the connector

Add StatsDeck as a custom connector in Claude, using the server URL:

https://app.statsdeck.ai/mcp

You'll be asked to sign in. Authentication uses OAuth 2.0.

2. Connect your league

Ask Claude to connect your league. StatsDeck supports:

PlatformWhat you need
SleeperYour Sleeper username
ESPN — public leaguesYour league ID
ESPN — private leaguesYour league ID, plus your ESPN session cookies (see below)

You can connect one league at a time, and switch leagues whenever you like.

3. Example prompts

Visit statsdeck.ai for example flows and screenshots.

Here are some good ones to start with:

  1. "Can you pull my roster?"
    A full team rundown, not a bare list: starters and bench scored under your league's exact scoring, your biggest strength, your biggest hole, and how the roster is built. If a bench player is outscoring a starter at the same position, that leads the response — before you ask.
  2. "How's my Week 1 matchup looking?"
    Both fantasy lineups side by side, with starters, bench, your league record, and your platform's own projection where it publishes one. Each skill-position player carries an opponent adjustment: their season average tempered by what that week's defense actually allows to their position.
  3. "Who should I start, and why?"
    A ranked call with the reasoning attached: each player's rank from StatsDeck's recency-weighted form signal, their actual recent per-game points, and the real NFL opponent they face that week. Rank and points are deliberately two separate numbers — the ranking is a strength signal, the points are what the player actually scored. Ask how it's computed and Claude walks you through the weighting.

Others that work well to go deeper:

  • "I want to go deeper." Several tools have an advanced mode that widens every player row with the underlying efficiency and opportunity drivers — EPA, CPOE, air yards, target and air-yards share, WOPR, RACR/PACR, first downs — with a glossary the first time you see them.
  • "Make me a visualization." StatsDeck returns structured data, so Claude can chart it, build a table, or lay out your week however you find it easiest to read.

ESPN private leagues

Public ESPN leagues need only a league ID. Private leagues are visible only to signed-in members, so StatsDeck needs to read them as you.

To do that, StatsDeck needs two values from your own ESPN session: SWID and espn_s2. These are the cookies your browser already holds when you're signed in to ESPN. Step-by-step instructions, including a bookmarklet that reads the values from your browser, are at statsdeck.ai/espn.

Why cookies? ESPN offers no public login for third-party tools — no OAuth, no API key, no developer program. So every tool that reads a private ESPN league uses the same two values from your own session: SWID and espn_s2. It's a long-established practice, not a flow StatsDeck invented — the open-source ESPN libraries have documented these cookies for years, including ffscrapr (same ffverse family as nflverse, StatsDeck's stats source) and espn-api.

Overview:

  • StatsDeck sees exactly what you see on ESPN when signed in — nothing more, and nothing belonging to anyone else.
  • Stored encrypted (AES-256-GCM), used only to read your league on your behalf.
  • They persist by design, so you can switch leagues without re-running the bookmarklet.
  • Never used to write anything to ESPN.
  • Deleted at any time on request — see Your data, below.

Sleeper leagues need none of this; Sleeper publishes a public read API.

What StatsDeck will not do

  • It never writes to your league. StatsDeck does not set lineups, submit waiver claims, accept or propose trades, drop players, or change anything on your team. There are no write calls to any fantasy platform anywhere in it.
  • No betting, odds, or Daily Fantasy Sports (DFS). StatsDeck does not produce spreads, win probabilities, odds, or daily-fantasy advice. Projections are expressed as expected fantasy points and nothing else.
  • It does not read your conversations. StatsDeck receives only the tool calls Claude makes to it. It does not access your chat history, memory, or files.

Four StatsDeck tools do change state, and it's worth being precise about which: connecting a league, disconnecting a league, saving ESPN credentials, and setting your scoring. All four write to StatsDeck's own stored settings for your account. None of them touch your league.

Tools

Every tool below is available to Claude once StatsDeck is connected. You never call them directly — you ask in plain language and Claude picks the right one.

Connection

connect_league

Links your Sleeper or ESPN league so every answer uses your real roster and exact scoring

disconnect_league

Unlinks your league. Asks you to confirm first, and always names the league before anything changes

save_espn_credentials

Stores your encrypted ESPN session cookies so StatsDeck can read your private league

get_scoring

Shows the scoring StatsDeck is currently using for you, and what else is available

set_scoring

Sets the scoring StatsDeck uses, so every points number matches your league

Your league

get_my_roster

Your team rundown — starters and bench scored, strengths, holes, roster construction, and any bench player outscoring a starter

get_league_team

The same rundown for any other team in your league

get_fantasy_matchup

Your fantasy head-to-head for a week: both lineups, league record, and each player's opponent adjustment

get_fantasy_schedule

Your full season schedule: every week's opponent in one call, with the team's record and scores once games are played. Works for any team in the league.

get_standings

Your league's standings: every team ordered best to worst, with each team's record.

get_available_players

Your waiver/free-agent board — the best players actually unrostered in your league, with each one's add state and your FAAB or waiver priority

get_trades

Pending offers and completed league trades, both sides scored under your scoring

Decisions

start_sit

A ranked start/sit call between two or more of your players, with each one's real NFL opponent

draft_help

A draft board tiered under your exact scoring, so you can see the value cliffs. Goes live during a connected draft

NFL data

get_player_stats

A player's production, with fantasy points computed under your scoring

get_rankings

League-wide leaderboards by position and metric — who's actually producing, recently or across seasons

get_snap_counts

Snap counts and snap share for several players at once — the usage signal behind the box score

get_team_defense

Team defense/DST scoring with its components, and how generous a given opponent has been to defenses

get_kicker_stats

A kicker's game lines and distance splits, scored under your bands

get_team_roster

An NFL team's real roster and depth chart

get_injuries

The official weekly injury report

get_schedule

The NFL game slate — a team's schedule, or a full week

Technical details

  • Server URL: https://app.statsdeck.ai/mcp
  • Transport: Streamable HTTP
  • Authentication: OAuth 2.0
  • Platforms: Sleeper; ESPN (public and private leagues)
  • Data sources: nflverse (CC-BY 4.0) for NFL statistics; your connected platform for league, roster, and matchup data
  • Access: Read-only. StatsDeck makes no write calls to any fantasy platform.
  • Coverage: NFL — QB, RB, WR, TE, K, and team defenses
  • Freshness: NFL statistics are refreshed nightly; roster and team data daily. Time-sensitive answers carry a freshness stamp, so you can always see how current the numbers are.

Where the data comes from

StatsDeck is transparent about what it reads and on whose authority:

SourceWhat it providesBasis
nflverse NFL player and team statistics, snap counts, official injury reports, schedules Open data, CC-BY licensed, used with attribution
Sleeper Your league, roster, matchups, and transactions Sleeper's public, documented read API
ESPN Your league, roster, matchups, and transactions Read on your behalf, using your own signed-in session, for leagues you are a member of

StatsDeck computes its own projections and rankings from nflverse data. It does not resell, redistribute, or republish any third-party subscription data, and it does not use any data source that prohibits this use.

All fantasy-platform access is read-only and user-authorized: StatsDeck reads your league because you asked it to and because you are a member of that league. It retrieves nothing you could not see yourself.

Your data

The full detail is in the privacy policy.

Overview:

  • StatsDeck stores your connected league profile and your scoring settings.
  • For ESPN private leagues, it stores your encrypted session cookies.
  • It records which tools you use, to keep the service working. It does not store your conversations.

Two levers, both yours:

  • Disconnect a league — removes that league's saved profile.
  • Email support@statsdeck.ai — deletes all stored data for your account, including any encrypted ESPN credentials.

Troubleshooting

"StatsDeck can't see my league."
For ESPN, check the league ID first — it's the leagueId= value in your ESPN URL. If it's a private league, your saved session may no longer work. Re-run the bookmarklet at statsdeck.ai/espn and paste the fresh values. StatsDeck tells you plainly when it believes your credentials have been rejected rather than failing silently.

"The points don't match my league app."
Ask Claude what scoring StatsDeck is using for you. Every response is labeled with the scoring it used, and if you haven't connected a league yet, that label will say it's an assumed default rather than your league. If your league is connected and the numbers still disagree, that's worth reporting — scoring accuracy is the product.

"It says I have no league connected."
StatsDeck won't error out at you here; it'll offer your options — connect a league, paste a roster into the chat, or use the tools that don't need a league (player stats, rankings, snap counts, schedules).

"A player is missing, or has no projection."
Players with no NFL production yet — incoming rookies especially — can't be scored on production that doesn't exist, and StatsDeck says so rather than inventing a number. A veteran with recent games missing entirely is a bug worth reporting.

"The connector won't connect."
Remove and re-add the connector in Claude. If it persists, email support with the approximate time it happened.

Support and security