sleeper-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sleeper-mcp show me the latest transactions in my league"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Sleeper MCP
A read-only Model Context Protocol server for the public Sleeper API. It exposes users, leagues, rosters, matchups, transactions, drafts, players, trending activity, playoff brackets, traded picks, and sport state through async FastMCP tools.
Sleeper requires no API key. Please respect its documented guidance to stay below 1,000 requests per minute. The full players response is several megabytes and should generally be fetched no more than once per day.
Install
Requires Python 3.11 or newer and uv.
uv syncRelated MCP server: sleeper-caffeine MCP
Run
The server uses MCP's stdio transport by default:
uv run sleeper-mcpThe equivalent module command is:
uv run python -m sleeper_mcp.serverDocker
The image is based on alpine:latest and runs the MCP server over stdio. Keep
-i so the client can talk to the process on stdin.
docker build -t sleeper-mcp .
docker run --rm -i sleeper-mcpCursor (Docker)
{
"mcpServers": {
"sleeper": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"sleeper-mcp"
]
}
}
}Claude Desktop (Docker)
{
"mcpServers": {
"sleeper": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"sleeper-mcp"
]
}
}
}Configure an MCP client
Use the workspace's absolute path in your client configuration (or the Docker commands above).
Cursor
Add this server to your Cursor MCP configuration:
{
"mcpServers": {
"sleeper": {
"command": "uv",
"args": [
"--directory",
"/Users/talweiss/Desktop/codeProjects/sleeper-mcp",
"run",
"sleeper-mcp"
]
}
}
}Claude Desktop
Add the same entry under mcpServers in Claude Desktop's configuration:
{
"mcpServers": {
"sleeper": {
"command": "uv",
"args": [
"--directory",
"/Users/talweiss/Desktop/codeProjects/sleeper-mcp",
"run",
"sleeper-mcp"
]
}
}
}Restart the client after changing its configuration.
Development
uv run pytestThe package follows a layered design:
client.pyowns HTTP concerns and the Sleeper base URL.service.pymaps methods to documented API endpoints.tools.pydocuments and exposes service methods as MCP tools.server.pywires the layers together and starts FastMCP.
Available Tools
18 toolsget_draftARead-onlyIdempotent
Fetch settings and metadata for one Sleeper draft.
Returns draft type, status, rounds, timer, slots, draft order, the draft-slot-to-roster mapping, league ID, timing, and metadata. Obtain draft_id from get_league_drafts or get_user_drafts. Use before analyzing the board so pick positions can be assigned to users and rosters.
Inputs: draft_id (required).
get_draft_picksARead-onlyIdempotent
Return all completed picks from a Sleeper draft.
Each pick includes player_id, selecting user, roster, round, draft slot, overall pick number, keeper status, and a player metadata snapshot. Obtain draft_id from get_league_drafts or get_user_drafts. Use for draft recaps, team-by-team results, reaches, values, and board reconstruction.
Inputs: draft_id (required).
get_draft_traded_picksARead-onlyIdempotent
Return traded-pick ownership specifically for one Sleeper draft.
Results identify each pick's season, round, original roster, previous owner, and current owner roster IDs. Obtain draft_id from get_league_drafts. Use with get_draft and get_draft_picks to reconstruct a draft board whose slots changed hands before or during the draft.
Inputs: draft_id (required).
get_leagueARead-onlyIdempotent
Fetch configuration and metadata for one Sleeper league.
Returns status, season, scoring settings, roster positions, draft ID, league name, avatar, and roster count. Obtain league_id from get_user_leagues. Use this before interpreting scores, roster slots, league status, or chaining through previous seasons.
Inputs: league_id (required).
get_league_draftsARead-onlyIdempotent
List every draft associated with a Sleeper league.
Drafts are returned newest first and include draft_id, type, status, settings, season, timing, and draft-order metadata. A dynasty league may have multiple drafts. Obtain league_id from get_user_leagues and use this to choose the correct draft before requesting picks.
Inputs: league_id (required).
get_league_matchupsARead-onlyIdempotent
Return all team matchup entries for one league week.
Each entry includes roster_id, matchup_id, starters, all players, points, and commissioner-overridden points. Teams sharing matchup_id played one another. Obtain league_id from get_user_leagues and current week from get_sport_state. Use for weekly recaps, live score summaries, and lineup analysis.
Inputs: week (required), league_id (required).
get_league_rostersARead-onlyIdempotent
Return every roster and its season record in a Sleeper league.
Each roster includes roster_id, owner_id, players, starters, reserve players, wins, losses, points, waiver position, and related settings. Obtain league_id from get_user_leagues. Combine with get_league_users to map owners to teams and use for standings or roster analysis.
Inputs: league_id (required).
get_league_traded_picksARead-onlyIdempotent
Return all current and future draft picks traded in a league.
Each item includes season, round, original roster, previous owner, and current owner roster IDs. Obtain league_id from get_user_leagues. Use for dynasty asset inventories, future-pick ownership, trade evaluation, or reconstructing who owns each rookie draft selection.
Inputs: league_id (required).
get_league_usersARead-onlyIdempotent
Return all users participating in a Sleeper league.
Results include user_id, username, display name, avatar, commissioner status, and team metadata such as custom team names. Obtain league_id from get_user_leagues. Combine owner user IDs with get_league_rosters when producing standings, team labels, or manager summaries.
Inputs: league_id (required).
get_losers_bracketARead-onlyIdempotent
Fetch the league's consolation or losers playoff bracket.
Returns bracket rounds, roster participants, progression sources, winners, losers, and placement information. Obtain league_id from get_user_leagues. Use for consolation recaps, toilet-bowl analysis, draft-order implications, and remaining postseason matchups.
Inputs: league_id (required).
get_playersARead-onlyIdempotent
Fetch Sleeper's player-ID lookup map, optionally filtered.
The result maps player IDs found in rosters and draft picks to names, teams, positions, status, injuries, and external IDs. The unfiltered response is several megabytes and should generally be cached and called no more than once daily. Prefer position and active filters when a smaller lookup is enough.
Inputs: sport, active, position.
get_sport_stateARead-onlyIdempotent
Return Sleeper's current week and season state for a sport.
For NFL this includes season, season type, week, leg, display week, previous season, league season, and season start date. Use this before week- or season-scoped calls when the current values are unknown, such as matchups, transactions, user leagues, or drafts.
Inputs: sport.
get_transactionsARead-onlyIdempotent
Return a league's free-agent moves, waivers, and trades for a round.
Results identify added and dropped player IDs, involved roster IDs, status, timestamps, FAAB bids or transfers, and traded draft picks. Obtain league_id from get_user_leagues. Use for waiver reports, trade histories, FAAB analysis, and weekly transaction summaries.
Inputs: round (required), league_id (required).
get_trending_playersARead-onlyIdempotent
Rank players trending by adds or drops over a recent time window.
Returns player_id and activity count for each ranked player. Use get_players to translate IDs into names when needed. This tool is useful for waiver-wire discovery, injury-reaction monitoring, and identifying players fantasy managers are rapidly adding or abandoning.
Inputs: limit, sport, trend_type, lookback_hours.
get_userARead-onlyIdempotent
Resolve a Sleeper username or user ID to its public user profile.
Returns the user's user_id, username, display name, and avatar identifier. Use this first when only a username is known, then pass the returned user_id to get_user_leagues or get_user_drafts.
Inputs: username_or_user_id (required).
get_user_draftsARead-onlyIdempotent
List a user's Sleeper drafts for a sport and season.
Returns draft IDs, league IDs, draft type, status, settings, order, timing, and metadata. Resolve a username through get_user to obtain the required user_id; use get_sport_state if the active season is unknown. Use this to discover draft IDs for draft-board and pick analysis.
Inputs: user_id (required), sport, season.
get_user_leaguesARead-onlyIdempotent
List all Sleeper leagues belonging to a user for a sport and season.
Returns league metadata including league_id, draft_id, settings, scoring, roster positions, status, and previous-league linkage. Resolve a username with get_user first. Use this to discover league IDs before standings, matchup, roster, transaction, or playoff analysis.
Inputs: user_id (required), sport, season.
get_winners_bracketARead-onlyIdempotent
Fetch the league's championship playoff bracket.
Returns rounds and bracket matchups with roster IDs, winner/loser IDs, source-match progression, and placement data for supported playoff sizes. Obtain league_id from get_user_leagues. Use after or during playoffs to explain championship paths, seeds, results, and upcoming matchups.
Inputs: league_id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 18 tools
Each tool targets a distinct resource or scope: user profiles, league members/rosters, matchups, winners vs losers brackets, league-level vs draft-level traded picks, and player lookup vs trending. The few names that share terms are clearly differentiated by their scope qualifiers and descriptions.
All tools use a consistent get_ prefix and snake_case noun-based naming, and related resources share clear patterns like get_league_*, get_user_*, and get_draft_*. There are no mixed conventions or unpredictable verb choices.
At 18 tools, this is above the typical 3–15 sweet spot, but the server is scoped to the broad Sleeper fantasy sports API and every tool maps to a meaningful endpoint. The count is on the higher end but still reasonable given the domain.
The surface covers the full read-only Sleeper workflow: user resolution, league discovery, rosters, users, matchups, playoff brackets, transactions, traded picks, sports state, drafts, draft picks, player lookup, and trending players. There are no obvious dead ends because the descriptions include explicit chaining between related tools.
Related MCP Connectors
Read-only access to InfluSense influencer discovery, ratings, watchlists, and reports via MCP.
ESPN MCP — keyless multi-sport live scores, teams, and news via ESPN's public site API.
SportsDataIO MCP — wraps SportsDataIO's Big-Six sports data API (sportsdata.io)
NFL/NBA/MLB/NHL/PGA + DFS and prediction-market data. Browse free; query with a free API key.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides read-only access to the Sleeper Fantasy Sports API for league info, rosters, matchups, drafts, transactions, and player data.18124 npm1MIT
- AlicenseNot gradedqualityDmaintenanceProvides read-only access to Sleeper fantasy football leagues, enabling team snapshots, available players, matchups, trade context, and league history through standardized MCP tools.MIT
- FlicenseNot gradedqualityCmaintenanceRead-only MCP server that provides access to public Sleeper NFL fantasy data, including leagues, rosters, matchups, waivers, drafts, and player information. It enables AI clients to retrieve fantasy football details without requiring authentication or account modifications.-
- AlicenseNot gradedqualityCmaintenanceProvides read-only access to Sleeper fantasy football data including user info, leagues, rosters, matchups, and NFL state through MCP tools.124 npmMIT