Flaim Fantasy

app.flaim由 flaim.app 发布官方发布者v1.0.3更新于 Nov 2, 2026

Fantasy analysis for your ESPN, Yahoo, and Sleeper leagues. Reads your leagues, never changes them.

已验证Streamable HTTP可网页运行位置与生活数据与分析

概览

AI 生成的概览

只读的远程 MCP 服务器,把 ESPN、Yahoo 和 Sleeper 梦幻体育联盟接入 AI 助手,用于首发/替补、交易和自由球员分析。

可以做什么
  • 查看账户状态与已连接联盟,并从 ESPN、Yahoo 和 Sleeper 刷新联盟发现
  • 读取联盟设置、排名与赛季结果,以及过往赛季和已停用联盟
  • 按周查看对阵与比分板,分类联盟还包含各分类战绩
  • 查看球队阵容、已完成的选秀和选秀权归属
  • 按姓名搜索球员,并列出可获取的自由球员,可按位置筛选
  • 查看最近的添加、弃用、豁免和交易记录
适用场景
当你希望助手基于你实际管理的梦幻联盟回答问题,例如本周该上谁、某笔交易是否公平、豁免名单上有什么人,并且需要覆盖当前和过往赛季时使用。
运行要求
通过 HTTP 访问的远程 MCP 端点,无需本地安装包。需要 Flaim 账户,并在 flaim.app 至少连接一个联盟,首次使用时需在浏览器中登录。ESPN 通过 Flaim Chrome 扩展连接,Yahoo 通过 Yahoo 登录,Sleeper 通过用户名连接。
安装前请注意
登录会把你的梦幻体育账户关联到 Flaim,服务器会读取来自 ESPN、Yahoo 和 Sleeper 的联盟、阵容、交易和球员归属数据。官方称其为只读,无法设置阵容、添加或弃用球员、进行交易或更改设置。服务免费,且与这些平台无关联;请勿在公开问题中透露账户信息。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Flaim Fantasy,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/app.flaim%2Fmcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "flaim-fantasy": {
      "type": "http",
      "url": "https://api.flaim.app/mcp"
    }
  }
}

README

Flaim Fantasy

Flaim Fantasy connects your ESPN, Yahoo and Sleeper fantasy leagues to ChatGPT and Claude, so you can ask about your actual team. "Who should I start this week?" "Is this trade fair?" "What's on the waiver wire?" The AI answers with your real league in front of it.

Flaim reads your leagues but never changes them. It can't set lineups, add or drop players, make trades or change settings. It's free, and it isn't affiliated with ESPN, Yahoo or Sleeper.

This application uses fantasy data provided by Yahoo Fantasy.

[Flaim showing connected ESPN, Yahoo, and Sleeper fantasy football leagues in ChatGPT.]

Get started

  1. Connect your leagues at flaim.app. ESPN connects through the Flaim Chrome extension, Yahoo through Yahoo sign-in, and Sleeper by username.
  2. Open Flaim Fantasy in ChatGPT or Claude and ask about your team.

That's it.

See it in action

Need help?

To connect or manage leagues, go to flaim.app/leagues. For anything else, email [email protected]. Please keep account details out of public issues.

Help make Flaim smarter

How well Flaim works comes down to how its skills and tool descriptions are written, and small wording changes can make a real difference. If you've watched the AI misread something or give advice you'd change, we'd love to hear about it.

  • Suggest a wording change. Open an issue with the Tool or skill wording suggestion form. Tell us what the AI got wrong and quote the text you'd change.
  • Share a skill of your own. Built something that works well with Flaim, like a weekly league recap or a trade deadline checklist? Add it under community/. The weekly league recap is a working example to start from. Have an idea but not a skill yet? Use the Skill idea form.

Pull requests to the official skills are welcome too. These files are mirrored from Flaim's main codebase, so instead of merging here we'll bring your change in with co-author credit, and it syncs back automatically. See CONTRIBUTING.md for details.

For tinkerers

What's in this repo

  • .agents/skills/: the official Flaim skills. They're the analyst playbook an AI follows for start/sit calls, waivers, trades, keepers, matchups and more.
  • tools/: a daily snapshot of the live tool descriptions (tools.json) and server instructions (instructions.md), taken straight from the server. Suggest changes to these with the issue form rather than a pull request, since they're rewritten every day.
  • community/: skills shared by other Flaim users.
  • .claude-plugin/, .codex-plugin/, .mcp.json and server.json: plugin packaging and MCP server details for Claude Code, Codex and other developer tools.

The official files are copied here from Flaim's main codebase whenever they change, so this repo matches Flaim's main branch.

Use Flaim in developer tools

Flaim is a standard remote MCP server, so it works in any tool that supports remote MCP servers with sign-in, such as Claude Code, Codex and Cursor. The server URL is:

https://api.flaim.app/mcp

The first time you use it, you'll sign in with your Flaim account in the browser. You'll need at least one league connected at flaim.app.

ToolSetup
Claude Codeclaude mcp add --transport http flaim https://api.flaim.app/mcp, then run /mcp to sign in
Codexcodex mcp add flaim --url https://api.flaim.app/mcp (run codex mcp login flaim if it doesn't prompt you to sign in)
CursorAdd "flaim": { "url": "https://api.flaim.app/mcp" } under mcpServers in ~/.cursor/mcp.json

Claude Code users can also install the plugin, which adds the skills along with the server:

bash
claude plugin marketplace add jdguggs10/flaim-fantasyclaude plugin install flaim-fantasy@flaim

Use the skills

Tools that support Agent Skills look for them in your project's .agents/skills/ folder, or in ~/.agents/skills/ for every project:

bash
git clone https://github.com/jdguggs10/flaim-fantasy.gitcp -r flaim-fantasy/.agents/skills/flaim-fantasy ~/.agents/skills/flaim-fantasy

License

MIT. See LICENSE.

来源:README.md,提交 6b03457

工具

11

get_user_session

User Session

Use this alone for user-specific connection, league, or account-status questions. For analysis, reuse successful session context already available in this chat instead of calling again. Do not call for Flaim capability, permission, or generic setup how-to questions, and do not call for generic coding, scraping, weather, travel, betting, sports news, or other requests that do not need connected league data. For selected-league analysis, call this 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 this call merely because a new user message arrived. Reload when the user confirms account, connection, league-list, or default changes, when the earlier session call failed, or when its result is no longer visible in the conversation. A new chat needs its own session lookup. Follow the error guidance if a call fails. Session reuse does not replace fresh roster, score, or player reads when needed. For an explicit refresh request, call refresh_leagues first and then call this tool after success; call it again even if it ran earlier in the chat. Returns the user's full league landscape: allLeagues (all active leagues), defaultLeagues (per-sport defaults), and defaultLeague (populated only when a single league exists or defaultSport matches). For vague singular prompts, use defaultLeague when present; otherwise use the relevant sport entry in defaultLeagues. If neither applies, ask which league by name without exposing internal IDs. For explicit plural or comparative prompts (each, all, compare, across leagues/platforms), enumerate every matching league in allLeagues and call the target tool once per league. With session context established, call get_league_info for the selected active league before the requested league-specific data tool, once per league per chat, then reuse it for later questions about that

无需输入参数。

refresh_leagues

Refresh Leagues

Refresh connected fantasy leagues by asking Flaim to rediscover leagues through connected ESPN, Yahoo, and Sleeper accounts. Use only when the user explicitly asks to refresh, or from the refresh control on the league widget where the client supports it. This is non-destructive, but repeated refreshes can update Flaim registry timestamps and provider metadata; it does not change provider lineups or rosters, add or drop players, submit waiver claims or trades, or modify league settings. If this call succeeds, call get_user_session again to show the updated league list. If it fails, follow the error retry guidance and any retry_after value; do not retry in a loop.

输入参数platforms

get_ancient_history

Ancient History

Use 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. This is the historical branch: it returns past seasons and historical leagues outside the current season view. Use for last season, older seasons, inactive leagues, or historical performance. All-time answers are scoped to seasons present in the response; an absent season may be unavailable even if provider history extends further. Sleeper coverage floor: Flaim follows the previous_league_id chain of each Sleeper league back at most 15 seasons including the current one and saves every season Sleeper still serves on it; Sleeper has run since 2017, so today that is the entire history of any Sleeper league. Sleeper seasons are discovered on connect and on refresh_leagues, so a league last synced under the earlier five-season limit needs one refresh before its older seasons appear here, and a season still missing after a refresh means Sleeper did not serve it on that walk, not that Flaim capped the history. thresholdYear is display bucketing, not a retrieval floor. Read-only.

输入参数platform

get_league_info

League Context

With session context established, call this once per league the first time this chat works with that league, before the requested standings, matchup, roster, free-agent, player, transaction, or draft tool, then reuse it for later questions about that league. A usable successful get_user_session result from earlier in this chat satisfies that prerequisite; do not repeat it just to satisfy this ordering. Skip it only when answering from session data alone or branching to get_ancient_history. This provides the baseline league context for analysis: league name, settings, scoring type, roster configuration, and team/owner context, plus schedule or season-window metadata when the platform provides it. Keeper and draft-format fields are additive and platform-dependent; never assume one provider's fields exist on another. ESPN adds keeperSettings (keeperCount, keeperCountFuture, keeperOrderType, keeperDeadlineDate) and isKeeperLeague when ESPN reports a keeper count, plus per-team keeperPlayerIds and futureKeeperPlayerIds as raw ESPN player IDs with no name resolution. Sleeper adds leagueFormat, whose typeRaw is an undocumented Sleeper convention that must not be read on its own as a redraft, keeper, dynasty, or guillotine signal, plus per-team keepers as raw Sleeper player IDs. Yahoo adds draftType, isAuctionDraft, and canTradeDraftPicks when Yahoo's settings fetch succeeds (omitted, with a warning, when it fails), but exposes no keeper-cost rule. Sleeper futureDraftRounds describes the configured round count for future drafts; use get_draft.draft.rounds for the selected draft's actual round count. When fanning out across multiple leagues, call this once per league. The exact team fields vary by platform but all include ownerName. Use values from get_user_session. Read-only. Current date is 2026-10-23.

输入参数sport必填platform必填league_id必填season_year必填

get_draft

Draft Results and Pick Ownership

Use this when the user asks about completed draft results, exact draft-board positions, or current draft-pick ownership for a selected league. Returns a common draft summary and ordered picks with explicit confirmed, projected, or unavailable placement provenance. A historical selecting team is not a current pick owner; current ownership comes only from ownership.picks[].currentOwnerTeamId. ESPN and Yahoo expose confirmed draft results but no current pick-ownership ledger, so their responses carry no ownership block at all; only Sleeper can report current or future pick ownership, and an exact board placement only when Sleeper supplies enough draft-order evidence. An ownership.scope of changed_picks_only lists only picks known to have changed hands and is not a complete pick inventory. selectionInRound is the round slot rendered in a value such as 12.15, while draftColumn is the stable draft-board column; they are not interchangeable. For a completed Sleeper draft, an omitted ownership block means no draft picks changed hands. Use round to return one draft round. Use team_id to return completed selections made by that historical team and ownership rows currently owned by that team. Omit draft_id to use the league's associated draft; draft_id is Sleeper-only and should be passed only when Flaim previously returned a provider draft ID. Omit season_year for the current sport season, or pass the season_year returned by get_user_session for a specific league or past draft. Use established session context (call get_user_session only if needed), then get_league_info for the specified league if this chat has not already loaded it. For multi-league comparisons, call once per league. Read-only. Current date is 2026-10-23.

输入参数roundsport必填team_iddraft_idplatform必填league_id必填season_year

get_standings

League Standings

Get season standings and outcome snapshot; includes verified season-outcome fields when available. Returns team records, rankings, and points summaries. The rank field is a standings sort position (1 = best): on ESPN it follows ESPN's playoffSeed order when every team has a unique valid seed; otherwise Flaim computes it from win percentage (a tie counts as half a win), with wins as the tie-breaker. On Sleeper it is computed by Flaim from wins, with points for as the tie-breaker; on Yahoo it is passed through from Yahoo's own standings API. It is NOT a verified postseason finish. For verified postseason outcome, use finalRank and championshipWon instead. Also returns seasonPhase (regular_season/playoffs_in_progress/season_complete), seasonComplete, and per-team outcome fields: finalRank, championshipWon, playoffOutcome, outcomeConfidence, madePlayoffs, playoffSeed. Outcome fields are null when not verifiable — do not infer championship from rank or team name. outcomeConfidence is 'explicit' when the platform reports final ranks, or 'derived' when the champion and runner-up were determined from the final winners-bracket matchup (ESPN historical seasons may omit final ranks); 'derived' only ever appears on ESPN — Yahoo always returns null here, and Sleeper returns 'explicit' for any completed season whose winners bracket names a champion, including when the finish came from the bracket rather than from reported placements; a tied championship game is resolved using the league's playoff tie rule (ESPN's default advances the higher seed). Note: playoffOutcome returns 'in_progress' on Sleeper for teams in active playoffs; ESPN and Yahoo return null for that state. ESPN may also include projected-rank fields. Yahoo and Sleeper leagues also return waiverPriority (the team's current waiver-claim priority, 1 = first — this is the live priority, NOT get_transactions' waiver_priority, which is the priority some past claim used) and faabBalance (remaining free-agent budget; 0 me

输入参数sport必填platform必填league_id必填season_year必填

get_matchups

League Matchups

Get matchups/scoreboard for a specific week or the current week. Yahoo head-to-head category leagues (Each Category and Most Categories) and ESPN Each Category leagues, in baseball, basketball, and hockey, return per-category rows and a categoryScore of wins/losses/ties per side. On those leagues the side total is a category count or null rather than fantasy points. In a Yahoo Most Categories league (scoringTypeRaw "headone"), the week counts as a single win, loss, or tie: the side that wins more categories takes it, and equal category wins is a tie. ESPN category rows include only the stats that league scores. ESPN football and Sleeper stay on fantasy points and do not return category rows. A null categoryScore, value, or result means the provider did not report it; never infer one. ESPN points matchups: totalPoints stays 0 until ESPN decides the matchup, so read each side's currentPoints for the score so far; winner stays UNDECIDED until then. Yahoo matchups: projectedPoints is the sum of each starter's pregame projection for the period. It does not add points as they are scored, so mid-period it routinely differs from points and can sit below the current score; that gap is expected and does not mean the data is stale or inconsistent. When liveProjectedPoints is present it is Yahoo's live projected final; prefer it. winProbability, when present, is Yahoo's estimated chance (0 to 1) that side wins. status reports upcoming, in_progress, or final; Yahoo's winner appears only when status is final. A missing optional field means Yahoo did not provide a usable value; never infer one. Sleeper returns no projection. Sleeper status reports upcoming, in_progress, or final for the requested week; in_progress lasts from before kickoff until Sleeper rolls to the next week, so it does not prove games have started. Sleeper's winner appears only when status is final; mid-week, points are the live score, not a result. Sleeper keeps every provider matchup record: scheduleShape repo

输入参数weeksport必填detailteam_idplatform必填league_id必填season_year必填

get_roster

Team Roster

Get roster details for a specific team, current by default and historical on request. Exact payload varies by platform: ESPN and Yahoo return player entries with lineup/position context, while Sleeper returns starters, bench, reserve, taxi, and record metadata for the selected roster. Keeper fields are additive and platform-dependent; never assume one provider's keeper fields or units exist on another. ESPN adds per-player keeperValue and keeperValueFuture plus one response-level keeperValueUnit of auction_dollars or draft_round, omitted rather than guessed when ESPN's draft type does not determine it; a historical snapshot withholds keeperValueFuture and flags keeperValueFutureAvailable false. Sleeper resolves keepers to player entries on the current roster only, passing the list through as Sleeper sends it; an empty or null list does not show that the league has no keepers. Yahoo entries may add isKeeper as status, cost, and kept when Yahoo sends it; Yahoo has only been observed returning cost as false, so no numeric keeper cost is available from Yahoo. Historical snapshots: pass week for football (all platforms) and Sleeper basketball (matchup week), or as_of_date (YYYY-MM-DD) for ESPN/Yahoo baseball, basketball, and hockey, never both. An invalid selector returns a corrective error naming the right one. Every response includes a snapshot block identifying what was returned (current vs week vs date); historical responses may add limitation flags (acquisitionMetadataAvailable, reserveAndTaxiClassificationAvailable) when provider history omits those details. A current Sleeper roster sets limitations.playerStatusAvailable false when it could not confirm the league is live this season and so withheld injury designations; a missing injuryStatus then does not mean the player is healthy. For "roster during matchup week N" questions in daily sports, ask the user for a specific date rather than guessing. One matchup spans several daily rosters. Use established session con

输入参数weeksport必填team_idplatform必填league_id必填as_of_dateseason_year必填

get_free_agents

Available Players

Get players available to acquire in the specified fantasy league, optionally filtered by position. This is fantasy-league availability, not professional-contract status. 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 canonical fields: every response carries leagueId, seasonYear, position, count, ordering, capabilities, and ownershipScope; entries carry team (real-life club, null when none) and id (platform player id as a string, when supplied) on every platform, and ESPN entries add acquisitionState ("free_agent", "waivers", or null when the platform cannot determine the subtype) plus waiverClearsAt (ISO time); legacy platform fields remain alongside for compatibility and should not be re-explained. ownershipScope "platform_global" means percentOwned/percentStarted cover all leagues on that platform — never ownership within the selected league. 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 capabilities marks rates unavailable, 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. When acquisitionState is null or not present, call rows "available players," never specifically free agents or waivers, and do not promise an immediate add. A returned player is already confirmed available in that league. Yahoo entries may add isKeeper as status, cost, and kept when Yahoo sends it; Yahoo has only been observed returning cost as false, so no numeric keeper cost is available from Yahoo. Use get_roster only when the current request separately asks who owns a player; never offer it after an available-pl

输入参数countsport必填platform必填positionleague_id必填season_year必填

get_players

Search Players

Search for player identity by name. Always returns identity fields, but ownership context varies by platform. ESPN and Yahoo return market/global ownership and can also populate league ownership fields when credentials and league context are available. ESPN football also adds seasonPoints and pointsPerGame when a selected league is available: these are ESPN's actual-season applied values under that league's scoring, never a Flaim calculation. A real 0 is retained. Null means league scoring was unavailable or ESPN did not return an applied value; for unrostered results it can also mean the player was outside ESPN's bounded 100-player availability pool, so use get_free_agents before treating a null as a scoring fact. Sleeper always evaluates league ownership against every current roster in the selected league, except during an active draft, when this tool returns an error instead of an answer, since draft picks aren't yet reflected on rosters; if the league, rosters, or users can't be loaded for another reason, the call still succeeds with every league_* field null plus a SLEEPER_OWNERSHIP_UNAVAILABLE warning. Sleeper adds a Sleeper-only league_team_id (the Sleeper roster id, or null); its market/global ownership stays unavailable regardless (ownership_scope="unavailable", market_percent_owned=null) — league_team_id is league ownership, not market data. For a selected active league, use established session context (call get_user_session only if needed), then get_league_info, if this chat has not already loaded it for that league, so league-specific ownership and team names can be resolved. League ownership fields: league_status ("ROSTERED" = on a team, "FREE_AGENT" = unrostered in this league, null = ownership could not be resolved, for example because credentials or rosters were unavailable, the player result carried no usable id, or Sleeper rostering was ambiguous), league_team_name (fantasy team name if rostered), league_owner_name (team owner if rostered). FREE_AG

输入参数countquery必填sport必填platform必填positionleague_id必填season_year必填

get_transactions

League Transactions

Get recent league transaction activity: adds, drops, waivers, and trades. Completed activity is league-wide unless team_id is provided. For "my moves," pass the selected league's user team ID from get_user_session; session context alone does not filter completed activity. Use get_league_info when team and owner names are needed. Rows are newest first and capped by count; before claiming completeness, check window, limitations, warning, truncated (ESPN only), and dropped_invalid_timestamp_count (ESPN and Yahoo). ESPN week selects a matchup period, and its structured source covers failed bids and trade lifecycle; a fallback can limit those types. Sleeper week selects a matchup week. Yahoo ignores week for completed activity and applies Flaim's rolling 30-day timestamp lookup. Yahoo team-filtered requests fetch one page of up to 100 league transactions before filtering; limitations.upstream_bound_reached means older matching rows inside the window may be missing, and raising count will not recover them. Yahoo type=waiver and type=pending_trade return the authenticated user's own pending items with no timestamp window; team_id only narrows those items. Yahoo pending rows can omit timestamp and date until Yahoo stamps them. Read-only. Current date is 2026-10-23.

输入参数typeweekcountsport必填team_idplatform必填league_id必填season_year必填

版本历史

3
  1. v1.0.3最新Oct 5, 2026
  2. v1.0.2Sep 28, 2026
  3. v1.0.1Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分