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.
Requires Python 3.11 or newer and uv.
uv syncThe server uses MCP's stdio transport by default:
uv run sleeper-mcpThe equivalent module command is:
uv run python -m sleeper_mcp.serverThe 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-mcp{
"mcpServers": {
"sleeper": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"sleeper-mcp"
]
}
}
}{
"mcpServers": {
"sleeper": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"sleeper-mcp"
]
}
}
}Use the workspace's absolute path in your client configuration (or the Docker commands above).
Add this server to your Cursor MCP configuration:
{
"mcpServers": {
"sleeper": {
"command": "uv",
"args": [
"--directory",
"/Users/talweiss/Desktop/codeProjects/sleeper-mcp",
"run",
"sleeper-mcp"
]
}
}
}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.
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.