General Tools
flaim.app
Provides access to fantasy sports league data including user sessions, standings, matchups, and historical information.
ENDPOINT 1
https://api.flaim.app/mcp
MCP server metadata
- Name
- fantasy-mcp
- Version
- 1.0.0
Flaim reads fantasy league data. refresh_leagues is its only bounded write: it updates Flaim's connected-league records and discovery metadata, never ESPN, Yahoo, or Sleeper state. Flaim cannot change lineups or rosters, add or drop players, submit waiver claims or trades, or modify league settings, even with permission. Answer capability, permission, or generic setup how-to questions such as "Can Flaim change my lineup?" directly and tool-free; do not call get_user_session or another tool. Use Flaim tools only for questions that need the user's connected fantasy league data or an explicit league refresh. Do not call Flaim tools for generic sports news, coding, scraping, weather, travel, betting, or unrelated requests. Tool paths: 1. Capability, permission, or generic setup how-to question: answer tool-free using the boundary above or the available setup guidance. 2. User-specific connection, league, or account status: call get_user_session only. 3. Explicit refresh request or widget refresh: call refresh_leagues, then call get_user_session after success to show the updated leagues. Do not use refresh_leagues for provider changes. 4. Selected-league analysis: call get_user_session only when no usable successful session result is available in this chat. Reuse its league IDs, teams, seasons, and defaults on ordinary follow-ups, including switching to another league already in allLeagues; do not repeat get_user_session merely because a new user message arrived. With session context established, call get_league_info, then the requested league-specific data tool. Skip get_league_info only when answering from session data alone or branching to get_ancient_history. After a later successful refresh, call get_user_session again to reload the league list. Also reload when the user confirms account, connection, league-list, or default changes, or when the needed session context is missing. A new chat needs its own session lookup. Reuse session context, not stale roster, score, or player data; fetch current data when the question needs it. These reuse rules also apply to session prerequisites in other tool descriptions. Scope rules: - For a vague singular prompt, use defaultLeague when present, otherwise the relevant entry in defaultLeagues. If neither applies, ask which league by name without exposing internal IDs. - For an explicit plural or comparative prompt, enumerate every matching league in allLeagues and run the needed league-specific chain once per league before synthesizing. - Use get_draft for completed draft results and draft-pick ownership. Never derive an exact round slot from get_league_info, a roster ID, or snake order alone. selectionInRound is the round slot used in values such as 12.15; draftColumn is the stable board column. A completed selectionTeamId is the team that made the historical pick, not the current owner. Use only ownership.currentOwnerTeamId for current pick ownership. Label provider_order_derived placements as projected. If placement is unavailable or no_provider_order, do not invent an exact round slot. changed_picks_only is not a complete pick inventory. - In get_free_agents, "available" means available in the selected fantasy league. Pass a requested count exactly from 1 through 100; for more than 100, state the limit and ask the user to narrow the request or accept 100. Prefer the normalized fields when present: capabilities and ownershipScope state what the provider reports (rates are platform-wide, never league-scoped), ordering names the sort, and per-entry acquisitionState, waiverClearsAt, id, and team supersede the legacy provider fields, which stay visible. ESPN percentOwned/percentStarted are the percentages of all ESPN leagues where the player is rostered/started, not a share of rostered teams; Yahoo percentOwned is Yahoo-wide. An ESPN-wide started rate is never conditional on the player being rostered. Label every reported percentage as an ESPN-wide roster/start rate or Yahoo-wide market rate. Translate ownership scope silently into that provider-wide wording; never print the ownershipScope key, platform_global enum, or get_free_agents tool name. If a rate is missing, write "[Provider] market ownership rate: not provided"; do not print a missing response field name or null value, call get_players, or offer a lookup. Only ESPN reports acquisition state here (normalized acquisitionState free_agent/waivers/null plus waiverClearsAt); call Yahoo/Sleeper rows "available players," never specifically free agents or waivers. Translate acquisition state into plain language ("a free agent", "on waivers") silently; never print raw codes — neither provider codes such as FREEAGENT or WAIVERS nor canonical values like free_agent verbatim. Use get_roster only when the current request separately asks who owns a player; never offer it after an available-player result. Do not include injuryStatus or any injury detail unless the user asks for it; when asked, verify current web evidence and translate provider codes into plain language. Hard stop: after satisfying a returned-list or field-explanation request, end the answer immediately after the requested facts. Remove every closing question or offer to do more work, including roster checks, lineup-fit checks, comparisons, rankings, recommendations, role or health analysis, trends, or outlooks; never append "if you want", "tell me which player", or a similar invitation unless the user's current request explicitly asks for that additional work. - For a past roster, pass exactly one selector: week for football on every platform and Sleeper basketball, or as_of_date (YYYY-MM-DD) for ESPN/Yahoo daily sports. For a matchup-week roster in a daily sport, ask for a date instead of guessing. Omit both selectors for the current roster. - Handle errors by type. Correct invalid-request parameters before trying again. For a Flaim authorization error, follow the MCP client's connect or reauthorization flow. For a missing or invalid provider connection, provider credentials, or league record, direct the user to https://flaim.app/leagues and do not offer another attempt until the user confirms the problem is corrected. For a network timeout or explicitly temporary provider/Flaim service failure, one retry with the same inputs is reasonable unless retry_after says to wait. If it fails again, stop and suggest trying later; do not loop. season_year is always the start year of the season.
Known tools 11
get_user_sessionUse this alone for user-specific connection, league, or account-status questions.
Inferred read-onlyrefresh_leaguesRefresh connected fantasy leagues by asking Flaim to rediscover leagues through connected ESPN, Yahoo, and Sleeper accounts.
Inferred read-onlyget_ancient_historyUse established session context (call get_user_session only if needed), and use this only when the user is clearly asking about a non-current season or an inactive league.
Inferred read-onlyget_league_infoWith session context established, call this for the selected active league before the requested standings, matchup, roster, free-agent, player, transaction, or draft tool.
Inferred read-onlyget_draftUse this when the user asks about completed draft results, exact draft-board positions, or current draft-pick ownership for a selected league.
Inferred read-onlyget_standingsGet season standings and outcome snapshot; includes verified season-outcome fields when available.
Inferred read-onlyget_rosterGet roster details for a specific team, current by default and historical on request.
Inferred read-onlyget_free_agentsGet players available to acquire in the specified fantasy league, optionally filtered by position.
Inferred read-onlyget_transactionsGet recent league transactions including adds, drops, waivers, and completed trades.
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.fantasy-mcp]
url = "https://api.flaim.app/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"fantasy-mcp": {
"type": "http",
"url": "https://api.flaim.app/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: fantasy-mcp
Remote MCP URL: https://api.flaim.app/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"fantasy-mcp": {
"url": "https://api.flaim.app/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"fantasy-mcp": {
"type": "http",
"url": "https://api.flaim.app/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "fantasy-mcp",
"transport": "streamable-http",
"url": "https://api.flaim.app/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Trust Data Available
BuiltWith Trust API v2 evidence for flaim.app was fetched 2026-08-23T19:45:09.261Z and is being refreshed.
flaim.app is assessed as Trusted: Domain has an established technology history spanning over a year.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.