Skip to main content
Glama

Sleeper Fantasy MCP

LeagueTool.ts•2.17 kB
import { config, getLeagueConfig } from "../config.js"; import type { SleeperLeague, SleeperUser } from "../types/sleeper.js"; export class LeagueTool { name = "get_league_info"; description = "Get league information and settings"; inputSchema = { type: "object", properties: { league: { type: "string", description: "League name (ROAD_TO_GLORY or DYNASTY), defaults to configured default", enum: ["ROAD_TO_GLORY", "DYNASTY"] } } }; async execute(args: any) { const leagueConfig = getLeagueConfig(args.league); if (!leagueConfig) { throw new Error(`League configuration not found for: ${args.league}`); } try { const [leagueResponse, usersResponse] = await Promise.all([ fetch(`${config.api.baseUrl}/league/${leagueConfig.id}`), fetch(`${config.api.baseUrl}/league/${leagueConfig.id}/users`) ]); if (!leagueResponse.ok || !usersResponse.ok) { throw new Error('Failed to fetch league data'); } const league: SleeperLeague = await leagueResponse.json(); const users: SleeperUser[] = await usersResponse.json(); const result = { league: { name: league.name, season: league.season, sport: league.sport, status: league.status, totalRosters: league.total_rosters, playoffWeekStart: league.settings.playoff_week_start, playoffTeams: league.settings.playoff_teams, waiverBudget: league.settings.waiver_budget }, users: users.map(user => ({ userId: user.user_id, username: user.username, displayName: user.display_name })), yourTeam: leagueConfig.teamName, leagueId: leagueConfig.id }; return { content: [ { type: "text", text: JSON.stringify(result, null, 2), }, ], }; } catch (error) { throw new Error(`Failed to get league info: ${error instanceof Error ? error.message : String(error)}`); } } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/justfeltlikerunning/sleeper-fantasy-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server