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:
| Platform | What you need |
|---|---|
| Sleeper | Your Sleeper username |
| ESPN — public leagues | Your league ID |
| ESPN — private leagues | Your 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:
- "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. - "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. - "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:
| Source | What it provides | Basis |
|---|---|---|
| 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
- Support: support@statsdeck.ai
- Security: Report suspected vulnerabilities to support@statsdeck.ai with "Security" in the subject line. Reports are investigated and acknowledged.