agentleFS
nscaamanonscaamano/espn-fantasy-mcp/skills/waivers/SKILL.md

waivers

Skill1 starsChanged 16 days agoMITView on GitHub

Find waiver-wire and free-agent pickups across the user's ESPN fantasy football leagues. Finds roster holes, ranks targets by fit, sets FAAB bids or claim order, and names a drop for every claim. Use for "waivers", "who should I pick up", "FAAB bids", "free agents", "need a replacement for an injured player", usually Monday night or Tuesday before claims process.

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. ChadPapineau/espn-fantasy-football-mcp★ 0same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository5 other files it gives its agents.

The file

Show its rules and text

We split this skill into the rules it gives an agent

13 rules. About 0 are common, 5 are distinctive, and 8 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 8

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Use the league the user named, or every league from list_leagues.

    line 12
  2. Very specific:

    If missingRules or conflicts is non-empty, ask the user first, and save the answer with set_league_rule.

    line 21
  3. Very specific:

    After a waiver run (usually Wednesday morning), get_waiver_results shows which claims won and which lost, to whom and for how much.

    line 24
  4. Very specific:

    Call get_free_agents for each position with a hole, plus OP or QB in superflex and D/ST or K for streaming.

    line 45
  5. Distinctive:

    Has the situation changed?: If the player ahead of him got hurt, check how long he'll be out.

    line 58
  6. Very specific:

    Read the prices with care: a few claims per position is a small sample, a winning bid is what one manager paid rather than what was needed …

    line 77
  7. Very specific:

    Don't bid big on a speculative add (single-digit % rostered).

    line 78
  8. Very specific:

    Use get_bid_competition's aheadOfMe: with 0 interested teams ahead, the claim wins wherever it sits.

    line 85
  9. Distinctive:

    % rostered measures popularity, not value to this roster: Don't name a drop because of a low % rostered or a small projection alone.

    line 92
  10. Distinctive:

    When streaming a K or D/ST, drop the one being replaced: Don't keep two on the bench unless a bye makes it necessary, and even then, …

    line 93
  11. Very specific:

    Keep anyone needed for an upcoming bye: dropping him shouldn't create a short or openSlots week in get_bye_coverage.

    line 94
  12. Distinctive:

    Check the pending claims: Don't reuse a drop that's already queued unless that's intended, and say so.

    line 98
  13. Distinctive:

    Put the most important move first.

    line 116

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Waiver and free-agent run

Uses the espn-fantasy MCP tools. They're read-only, so you recommend claims, bids and drops, and the user enters them in the ESPN app. The best time is Monday night or Tuesday, before claims process. Claims usually process overnight into Wednesday; each pending claim's processesAt gives the exact time. Also run it after a starter gets hurt.

1. Gather, per league

Use the league the user named, or every league from list_leagues. For each one:

  1. get_league_settings. Note:

    • waivers.type: FAAB or PRIORITY.
    • For FAAB, faabRemaining, faabBudget and minimumBid.
    • For PRIORITY, myWaiverRank and priorityResets.
    • The starting slots, bench size, IR slots and positionLimits.
    • The trade deadline and playoff start week, for how far ahead to plan.

    If missingRules or conflicts is non-empty, ask the user first, and save the answer with set_league_rule. That includes roster.irEligibleStatuses, which ESPN never reports: an ineligible player left on IR blocks every claim. Never assume a waiver system. Don't suggest bids in a priority league.

  2. get_my_roster for the current week. On waiver day, ESPN's current week is already the upcoming one.
  3. get_pending_claims. What the user has already queued: don't repeat a claim or reuse a drop by accident. After a waiver run (usually Wednesday morning), get_waiver_results shows which claims won and which lost, to whom and for how much. Start from the lost ones: those holes are still open.
  4. get_faab_prices (FAAB leagues, one call per league). What managers in this league actually pay, by position, over the last five weeks: median, low and high winning bids, how many claims were contested, and the top bids with the runner-up's losing bid. Prices differ a lot between leagues and positions (in superflex, QBs go far higher). Pass weeks: 18 for the whole season when recent weeks are thin. In a priority league it returns counts only; skip it there.
  5. get_recent_activity. Who just dropped whom, and the latest adds.

2. Find the holes

  • This week:
    • Starters on a bye with no startable bench replacement.
    • Starters who are OUT, IR, DOUBTFUL, or QUESTIONABLE with a 0.0 projection.
    • Web-search how long each injury is expected to last. An IR or OUT tag doesn't say whether it's one week or the season, so never guess the length from the tag.
  • Depth: enough startable players to cover every starting slot plus the byes in the weeks ahead. Call get_bye_coverage: a week with openSlots is a sure zero at that slot unless the user adds someone (often a K or D/ST bye with no backup), and a short entry (e.g. QB: one available, two needed in superflex) means a flex slot falls back to a weaker player. ifHealthy shows what changes if an injured player is back by then. In superflex, keep three startable QBs if possible, because a QB bye or injury is otherwise a zero.
  • Judge each claim against those weeks: say which flagged weeks it fixes. A target on bye in the week he's meant to cover doesn't help, and the drop mustn't be the player covering another flagged week. A hole three or more weeks out can wait for a later, cheaper claim unless the position is scarce.
  • Dead bench spots:
    • Long-term injured players who belong on IR (if a slot is open and ESPN allows it).
    • Players with no role on their NFL team, confirmed by news or usage, not just a tiny projection or a low % rostered.
    • Bye-week fill-ins whose job is done.
    • A second K or D/ST. The league starts one, and they're easy to stream, so a backup is worth almost nothing.
  • Streaming, in leagues that start D/ST or K: compare the next matchup (game.opponent) against the current starter's.

3. Find candidates

Call get_free_agents for each position with a hole, plus OP or QB in superflex and D/ST or K for streaming.

  • status FREE_AGENT means the user can add the player right now in the app, with no claim needed. Say so.
  • status WAIVERS means he needs a claim.
  • The pool is the most-rostered available players, so a barely rostered breakout can be missing. Web-search the week's top pickups if a hole is urgent, and check any name you find, or one the user names, with get_player: it says whether he's actually available in this league (FREE_AGENT, or WAIVERS with waiverClears) or who has him.
  • When the wire can't fill a hole (the best candidate projects well below the starter he replaces, or the injury is long-term), say so and suggest the trades skill for that league.

4. Rank by fit, not just projection

ESPN's projections and % rostered are inputs from one model and from the crowd. They aren't the answer. Form your own view, and when it differs from ESPN's numbers, say why.

  • Does he fill this week's hole? A player on a bye this week can't. Or is he a rest-of-season upgrade?
  • His role: starter, committee or handcuff. Check his snap share, carries or targets over the last few weeks, and his place on the depth chart. Read his recent blurbs with get_player_news (all targets in one call), then web-search usage numbers the blurbs don't give. Cite source and date.
  • Has the situation changed? If the player ahead of him got hurt, check how long he'll be out. A season-ending injury turns a one-week fill-in into a rest-of-season starter, and ESPN's season projection can lag behind that change.
  • Upcoming schedule: the opponents over the next few weeks, not just this one.
  • Momentum: a rising percentChange means other managers are noticing, so he'll cost more.
  • ESPN's numbers, as one input: projectedPoints, seasonPoints, seasonProjectedPoints, injuryStatus and upcoming byes.

5. Bids or claim order

FAAB leagues:

  • Size each bid from:
    • the remaining budget;
    • how much he matters to the lineup;
    • how scarce the position is;
    • what this league pays at his position (get_faab_prices). Anchor on the position's median and on comparable players in its bids. For a player several teams will want, runnerUp shows what it took to win a contested claim: beat that, not just the median.
  • Size up the competition with get_bid_competition, one call per league with every target you'd bid on:
    • gainForMe is what he'd add to the user's lineups over the weeks left, byes counted. Near 0 means he doesn't help: pass, or bid the minimum as a stash.
    • rivals are the teams he'd help most, with their gain, faabRemaining and history. A big gain plus a big budget is the team to beat. A rival who has never claimed anyone (history.claims 0) may not bid at all, and one with little budget can't go high.
    • suggestedBid is a starting range priced against wins on similar players in this league. Go above high only for a reason the numbers miss, and say it: a new starter whose projection hasn't caught up with his role, or several rivals with big gains and budgets. Below low, expect to lose a contested claim.
    • In a priority league, aheadOfMe says how many interested teams are ahead of the user in waiver order: if it's 0, a claim wins.
    • It can't see other teams' queued claims, so it's tendencies, not a prediction. Say so when a bid is close.
  • Read the prices with care: a few claims per position is a small sample, a winning bid is what one manager paid rather than what was needed (an uncontested $20 win could have been $1), and a breakout bid (the top max) isn't the going rate.
  • Don't bid big on a speculative add (single-digit % rostered). The minimum bid, or $0 where minimumBid is 0, is often enough.
  • Save budget for real breakouts, such as the new lead back after a starter's season-ending injury. Those deserve a large share of what's left.
  • Budget is worth nothing after the season, so spend more freely as the playoffs near.
  • Give a range when unsure ("$8, up to $12 if you really want him"). Keep the bid within faabRemaining.

Priority leagues:

  • Rank the claims in the order the user should enter them.
  • Use get_bid_competition's aheadOfMe: with 0 interested teams ahead, the claim wins wherever it sits.
  • Say whether the claim is worth using a high waiver spot. If priority resets weekly (priorityResets: true), using it costs little. If it rolls over, save it for difference-makers.

6. A drop for every claim

  • Every claim needs a named drop. Otherwise it fails for lack of roster space. Pick the player with the least value to this roster, and judge it the same way as adds:
    • Role and upside first: a backup RB who'd start if the player ahead of him got hurt is worth more than his projection, especially while one of the user's own starters is questionable.
    • % rostered measures popularity, not value to this roster. Don't name a drop because of a low % rostered or a small projection alone.
    • When streaming a K or D/ST, drop the one being replaced. Don't keep two on the bench unless a bye makes it necessary, and even then, compare the backup with a skill player who has upside.
    • Keep anyone needed for an upcoming bye: dropping him shouldn't create a short or openSlots week in get_bye_coverage.
  • Claims can't land on IR, and a claim mustn't push a position past positionLimits.
  • Alternative claims share a drop: "RB A, else RB B", both dropping C. Once one wins, the other fails, which is what you want.
  • Claims the user wants both of need different drops.
  • Check the pending claims. Don't reuse a drop that's already queued unless that's intended, and say so.
  • ESPN doesn't expose the order of queued claims. If order matters, tell the user the order to set in the app.

7. Report

Give one block per league, with times in the user's time zone (Eastern if unknown):

**<league alias>** (FAAB $53 of $100 left, min $1). Claims process Wed 3:00 AM ET.
Already queued: X ($5), dropping Y.
Holes: RB2 (Z on bye in week 8), QB depth (W on bye in week 10).
Claims, in this order:
1. Add A (RB, HOU), bid $21, drop B. Starting job after C's injury (source, date). Two teams need an RB; the strongest has $77 left. Backs like him went for $10–18 here, so $21 to beat a contested claim.
2. Add D (QB, NO), bid $3, drop E. Covers the week 10 bye.
Add now (free agent): F (K) for G.
Passed on: H. Hyped, but 2% rostered and no role yet.

Put the most important move first. If nothing is worth a claim, say so plainly.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.