Skip to main content
Glama

Fantasy Football MCP — Draft, Start/Sit, Waivers

Server Details

Fantasy football for any AI agent: draft board, start/sit, waivers, your Sleeper league. Free.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 75 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
predictionmarketspicks/fantasy-draft-mcp
GitHub Stars
0
Server Listing
Fantasy Football Draft Assistant

TDQS

B3.4/5.0

Scored across 11 tools

Disambiguation2/5

Several tools perform nearly the same core action on the same inputs: compare_players, start_sit, and who_do_i_draft all take 2–4 players and return their prop/price data, differing only in presentation nuances. player_outlook (one player, all lines, best price) closely overlaps with all three. An agent could easily select the wrong tool, and the descriptions, while verbose, don't establish crisp boundaries.

Naming Consistency3/5

All names are snake_case, which is good, but the convention mixes verb phrases (compare_players, explain_player, who_do_i_draft) with noun phrases (draft_board, waiver_targets, player_outlook, my_league, best_available). Readable but not a single predictable pattern.

Tool Count4/5

11 tools is within a reasonable range for a fantasy-football/props domain, and each maps to a workflow. Slightly heavy given the degree of functional overlap among the player-comparison tools.

Completeness4/5

Covers the stated pillars—draft, start/sit, waivers, sleepers/busts, player explanation, and league/roster lookup—with market-price data throughout. Minor gaps: no injury/news or trade analysis, and several tools are effectively dead outside the 2027 offseason window.

Available Tools

11 tools
adp_market_gapsKalshi vs Book-Consensus Gaps — this week's NFL propsA
Read-only
Inspect

In season: Kalshi vs book-consensus gaps on this week's NFL props, widest first, filter by position. Free. (ADP gaps return in the 2027 offseason.)

NameRequiredDescriptionDefault
limitNoMax rows (default 15).
positionNoOptional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a safe read-only, non-destructive, closed-world operation. The description adds useful behavior context such as 'Free', 'widest first' ordering, and seasonal availability, but it does not explain return fields, pagination, or data freshness beyond 'this week'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the in-season scope, then gives ordering, filtering, and a naming caveat. Every sentence carries useful information with no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read-only tool, it is mostly sufficient, but with no output schema it does not explain what a gap row contains, units, or return shape. The agent can call it, but the description leaves some result-interpretation gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and both parameters are documented in the schema: limit has a default and position has an enum-like list. The description repeats 'filter by position' but adds no syntax or semantics beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource and scope: Kalshi vs book-consensus gaps on this week's NFL props, sorted widest first. It also clarifies the ADP-related naming caveat, so an agent can immediately tell what the tool returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an implied usage window ('In season') and notes that ADP gaps return in the 2027 offseason, but it does not explicitly say when to use this versus alternatives or what scenarios it is not for. Guidance is present but mostly implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

best_availableBest Available Price — this week's NFL propsB
Read-only
Inspect

In season: where the best available PRICE is on this week's NFL props — strikes where Kalshi and the book consensus are 5¢+ apart. Free.

NameRequiredDescriptionDefault
limitNoMax rows (default 15).
rosterNoOptional: player names on the USER's team — their strikes are shown first.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered by structured data. The description adds two pieces of real value beyond that — 'Free' (no cost/auth barrier) and the 5¢ divergence filter that governs which rows appear — but says nothing about result volume, pagination, or freshness of the lines.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short and front-loads the qualifying condition before the trailing 'Free.' marker. The opening is a sentence fragment ('In season: where the best available PRICE is...') which reads slightly awkwardly, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries some burden for explaining what comes back; it communicates that rows are mispriced strikes but never defines 'strikes' or the row shape. For a two-optional-parameter read-only query with full schema coverage this is adequate, though not fully self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for both parameters, so `limit` (default 15) and `roster` (user's-team players shown first) are already fully documented in the schema. The description adds no semantics for either parameter, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete resource (this week's NFL prop strikes) and states the defining criterion — where Kalshi and book consensus diverge by 5¢ or more. The tool name 'best_available' is vague on its own, but the description resolves it and the betting/market domain clearly separates it from the fantasy-football siblings. It stops just short of explicit sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'In season:' signals a temporal applicability condition, which is genuinely useful guidance, and the 5¢ gap threshold implies what qualifies for inclusion. However, no alternative tool is named and there is no explicit when-not guidance (e.g., out of season, or when the user wants consensus prices rather than gaps).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_playersCompare Players This Week — Kalshi prop linesA
Read-only
Inspect

Compare 2–4 NFL players this week: every Kalshi prop strike each has, the best price per side across venues, our probability where we publish one, and a ranked verdict on whose price the model disagrees with most, and on which strike. Use for " or this week", "compare and props", "who has the better prop, or ", " vs receiving yards".

NameRequiredDescriptionDefault
playersNo2–4 player full names to compare.
scoringNoScoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr.
platformNoLeague platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds real behavioral value by disclosing what comes back: per-strike best prices across venues, model probabilities only where published, and a ranked verdict — the caveat "where we publish one" correctly signals the probability field can be absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core capability and output shape, then routed by short quoted user phrasings. The utterance list is somewhat long but each entry maps to a distinct query form, so it largely earns its space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating the response contents (strikes, best price per side, probability, ranked verdict). an agent can anticipate the shape of the result; only cross-venue sourcing/pagination details are unstated, which matters little for a read-only comparison.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents players, scoring, and platform in detail including enum lists. The description only restates the 2–4 player count and adds no extra syntax or format guidance, which is the expected baseline when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

A specific verb (compare) applied to a bounded resource (2–4 NFL players this week) with the output enumerated: prop strikes, best price per side, published probability, and a ranked disagreement verdict. That is clearly separable from siblings like explain_player or start_sit, which answer different questions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The quoted example phrasings ("<A> or <B> this week", "who has the better prop", "<A> vs <B> receiving yards") give strong routing signals for when to pick this tool. It stops short of naming a sibling or a when-not-to-use condition, so not quite a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

draft_boardThis Week's Rankings by the MarketA
Read-only
Inspect

In season: this week's QB/RB/WR/TE rankings by the median Kalshi prices each player at (pass/rush/rec yds), plus anytime-TD price. Free. (Draft board returns in 2027.)

NameRequiredDescriptionDefault
limitNoMax rows (default 15).
positionNoOptional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so safety is covered. The description adds useful context by identifying the data source (median Kalshi prices), included metrics, and that the tool is 'Free.' It does not describe return shape or pagination beyond what the schema provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, starting with the season and then the specific ranking content. Every element earns its place: data source, metrics, cost, and the availability note that resolves the misleading tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, read-only ranking tool with fully described schema parameters and safety annotations, the description supplies enough detail about what the rankings contain and when they apply. The only minor gap is that it does not mention sibling tools or alternatives, but that is not essential to invoking this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented: limit with its default and position with its allowed values. The description does not add syntax or filtering meaning beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific resource and scope: this week's QB/RB/WR/TE rankings based on median Kalshi prices, including pass/rush/rec yards and anytime-TD price. It also clarifies the seasonality by noting the draft board returns in 2027. It does not explicitly distinguish itself from siblings such as compare_players or player_outlook, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'In season' tells the agent when this tool applies, and '(Draft board returns in 2027.)' makes clear it is not the draft tool now. However, it does not name alternatives or explain when another sibling tool would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

explain_playerExplain This Price — why we price a player’s strikes thereA
Read-only
Inspect

Why our model prices an NFL player's Kalshi prop strikes where it does this week: the projection, The Ladder's verdict, the widest published gap, and what the model does not account for (our number only where calibrated, 30–70%). Use for "why do you price there", "explain 's prop".

NameRequiredDescriptionDefault
statNoOptional stat to narrow to, e.g. "rec_yds", "receptions", "rush_yds".
playerNoPlayer name, full or partial (e.g. "Puka Nacua").

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only, closed-world safety profile, so the description wisely spends its words elsewhere: it discloses the 30–70% calibration window and explicitly flags that some factors are not accounted for. That is genuine context beyond the annotations, though it says nothing about what happens when a player is uncalibrated (no number returned?).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, then the output inventory, then the usage triggers — a sensible order. The first sentence is long and packs several clauses together, but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by enumerating the four things the answer contains. For a two-optional-param read tool this is close to sufficient; only the uncalibrated-player case is left ambiguous.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are documented there, including the stat-narrowing examples. The description adds no parameter-level detail (e.g., what happens with a partial player name or whether stat defaults to all stats), so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — explaining why the model prices an NFL player's Kalshi prop strikes where it does — and enumerates the outputs (projection, The Ladder's verdict, widest published gap, model gaps). It is not explicitly differentiated from nearby siblings like explain_prop or explain_ladder, so the agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete trigger phrasings ("why do you price <player> there", "explain <player>'s prop") that map user intent to this tool, which is strong routing guidance. It stops short of naming an alternative or stating when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

my_leagueMy Sleeper League — your starters beside their Kalshi marketsA
Read-only
Inspect

Use for "show my fantasy team" and "what is Kalshi pricing my starters at". Give a Sleeper username (and a league name if you have several): your roster, each starter's opponent and kickoff, OUT and QB-gate flags, and every Kalshi prop strike on him this week with the best price per side. Market data; Pro adds our weekly projection.

NameRequiredDescriptionDefault
leagueNoLeague name (partial) or Sleeper league id, when the user is in several.
sleeper_usernameNoSleeper username (profile → username, not the display name).

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint/openWorldHint already declared, the description still adds real context: this is live market data, best price per side is computed, and weekly projections are gated behind Pro. It does not say whether prices are delayed, whether a missing/unknown username errors out, or how much data a response can carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both earning their place, with the usage triggers front-loaded. The second sentence is a fairly dense comma-list of return fields, but each item is informative rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must describe return values and it does so thoroughly, including the tier-gated projection. Missing only edge behavior: no-username defaults, empty leagues, and whether an unresolvable league name fails or falls back.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are already documented, so the schema does the heavy lifting. The description only restates the username/league relationship; notably all parameters are optional and it never says what happens when sleeper_username is omitted, which is the one ambiguity the schema does not resolve.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete verb+resource pair ("show my fantasy team", Kalshi pricing for starters) and enumerates exactly what comes back: roster, opponent, kickoff, OUT/QB-gate flags, and prop strikes with best price. It implicitly separates itself from advice tools like start_sit by labeling the output "market data" rather than recommendations, though no sibling is named outright.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit trigger phrases ("show my fantasy team", "what is Kalshi pricing my starters at") plus the input condition for the optional league argument ("if you have several"). There are no explicit when-not conditions or named alternatives such as start_sit or player_outlook, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_outlookPlayer This Week — Kalshi prop linesA
Read-only
Inspect

One NFL player this week — every Kalshi prop line, the best price across venues, and our probability at each strike. Free. Use for "is a good play this week", " props".

NameRequiredDescriptionDefault
playerNoPlayer name, full or partial (e.g. "Puka Nacua", "Bijan").
scoringNoScoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr.
platformNoLeague platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/no-destruction and closed-world scope; the description adds genuine value by disclosing the return payload shape — all prop lines, the best price across venues, and modeled probability at each strike — plus that it is free. It doesn't cover behavior for ambiguous/partial player names, which is the one remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly packed sentences with the scope and output contents front-loaded before the usage examples. The fragment 'Free.' earns its place as a pricing signal, though the quoted example phrasings at the tail are slightly loose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-optional-parameter, no-output-schema tool, the description usefully summarizes what comes back (lines, best price, strike-level probabilities), so the agent knows what to expect. Only the ambiguous-name behavior and relationship to adjacent explain_/edge tools are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so player formatting, the scoring enum with its half_ppr default, and platform-driven presets are already fully documented. The description adds nothing about any of the three parameters, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the resource precisely: one NFL player's Kalshi prop lines, best cross-venue price, and model probability at each strike. The 'One NFL player' scope implicitly separates it from board-level siblings like nfl_prop_board, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides example user utterances ('is <player> a good play this week', '<player> props'), which gives usable intent context. However, it offers no when-not guidance and doesn't route to the dense set of near-neighbors (nfl_prop_edge, nfl_prop_board, explain_prop, best_price), leaving the agent to infer boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sleepers_and_bustsOverpriced & Underpriced This WeekA
Read-only
Inspect

Every NFL player whose Kalshi prop price our model disagrees with this week, ranked, marked underpriced or overpriced with the stat driving it. Free, the complete list. The strike, price and size are in Pro nfl_prop_edge. Use for "undervalued players this week", "who is the market overpricing", "sleepers this week", "busts to avoid this week".

NameRequiredDescriptionDefault
positionNoOptional position filter. One of: QB · RB · WR · TE.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only/free safety profile, but the description adds real context beyond them: this is the free complete list while the price/size fields live in the Pro sibling, which materially affects whether an agent needs a second call. It does not describe return format or list size, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense, front-loaded sentences: the result set and its annotation come first, the tier/alternative note second. The quoted example queries are useful but occasionally verbose; nothing is truly wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must carry the return shape, and it does reasonably: ranked list, under/over labels, the stat driving each call, and the caveat that price and size require the Pro tool. Fine for a zero-required-parameter read.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single optional position filter is fully documented in the schema, including the allowed values. The description adds nothing about filtering behavior, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (every NFL player whose Kalshi prop price the model disagrees with this week) plus the output shape: ranked, flagged underpriced/overpriced, with the driving stat. It also separates itself from the sibling nfl_prop_edge by noting that one carries strike/price/size while this is the free complete list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes usage: it names the alternative Pro tool (nfl_prop_edge) for strike, price and size, and enumerates concrete activation phrasings like "undervalued players this week" and "busts to avoid this week." An agent can pick this tool without guessing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_sitStart/Sit by the Market — what Kalshi prices each player atA
Read-only
Inspect

Use for "should I start Nacua or Adams" and "who does the market like more this week". For 2–4 players: the median Kalshi is pricing for each stat (read off his own strike ladder) and his anytime-TD price, compared on the stats they share. Market prices only — the call stays yours; Pro adds our weekly projection.

NameRequiredDescriptionDefault
playersNoTwo to four player names, e.g. ["Puka Nacua", "Davante Adams"] or "Nacua, Adams".

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only and open-world, so the bar is lower, yet the description still adds real value: the numbers come from each player's own Kalshi strike ladder, the tool returns prices only with no recommendation, and weekly projections are gated behind Pro. That is useful disclosure about scope and limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads usage scenarios in quotes, then the output, then the caveats; nearly every clause carries information. The 'read off his own strike ladder' phrase is colorful but slightly opaque to an agent unfamiliar with Kalshi.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does the work of explaining what comes back (median per-stat pricing and anytime-TD price, compared on shared stats). It does not mention error cases such as an unmatched player name, which matters for a lookup tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds the 2–4 player constraint and the point that players are only compared on stats they share, which shapes how the agent should batch names. Minor arithmetic gap: the count is stated but not tied to the array-or-string flexibility.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (Kalshi market pricing per player stat plus anytime-TD price) and the comparison operation across 2–4 players. It is clear what the tool returns, but it never explains how it differs from the sibling compare_players, which sounds like the same job.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete trigger phrases ('should I start Nacua or Adams', 'who does the market like more this week') and the 2–4 player bound, so an agent knows the intended context. It offers no exclusions and does not route the agent away from compare_players.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

waiver_targetsWaiver Targets — Sleeper trending adds with their Kalshi marketsA
Read-only
Inspect

Use for "who is everyone adding off waivers" and "trending waiver adds this week". Sleeper's most-added players in the last 24 hours with what Kalshi is pricing each at this week; pass position, and a Sleeper username + league to see only players still available. Market data only.

NameRequiredDescriptionDefault
limitNoMax players (default 10).
leagueNoLeague name (partial) or id, when the user is in several.
positionNoOptional position filter. One of: QB · RB · WR · TE.
sleeper_usernameNoSleeper username — with it, players already rostered in your league are left out.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds two useful traits: it is a 24-hour trending window, and passing username+league excludes already-rostered players. The "Market data only" disclaimer hints at a scope boundary, but no rate limits, data freshness, or failure behavior (e.g., unknown username) are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the user-facing trigger phrases and stays to two sentences with no filler. The nested quoting and em-dash clause make it slightly dense to parse, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-param, all-optional read tool with no output schema, the description conveys the data source (Sleeper), the window (24h), and the second data source (Kalshi prices). Return shape is only gestured at, but annotations plus schema cover the rest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so limit, league, position, and sleeper_username are all documented already; the description largely restates those descriptions rather than adding format or edge-case detail. Baseline 3 applies when the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb+resource: Sleeper's most-added players in the last 24 hours paired with Kalshi prices. The quoted user phrasings ("who is everyone adding off waivers") make the resource unambiguous and distinguish it from siblings like best_available or my_league.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear invocation contexts via two quoted user intents and explains the optional narrowing path (position filter; username + league to see only available players). It does not name a sibling alternative or say when NOT to use it versus best_available, which keeps it below a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

who_do_i_draftYour Roster's Props This WeekB
Read-only
Inspect

In season: the Kalshi props listed on the players you name (2–4), with the best price per strike. Free. Pass roster: ['Player A', 'Player B'].

NameRequiredDescriptionDefault
rosterNo2–4 player names on your roster (full or partial).

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds two pieces of genuinely non-structured context — the in-season gating and the fact that calls are free — plus that results are deduplicated to the best price per strike. It does not say what happens out of season or when a named player isn't found, which is the main remaining behavioral gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short with no filler, and the example is placed at the end where it belongs. The front-loading is weaker — the first clause is a condition ("In season:") rather than the tool's function, and the "Free." sentence fragment reads as loose note-taking rather than structured spec.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one optional parameter, full schema coverage, annotations, and no output schema, the definition has modest burden — yet it is thin. An agent still doesn't know the result shape (how many props per player, ranked how), out-of-season behavior, or unmatched-name handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the roster parameter already documents "2–4 player names (full or partial)". The "Pass roster: ['Player A', 'Player B']" example adds modest value by resolving the anyOf ambiguity toward the array form, but nothing else is added beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"The Kalshi props listed on the players you name (2–4), with the best price per strike" does state the resource (props for named players) and an output property (best price per strike). However, the tool name and title ("who_do_i_draft", "Your Roster's Props This Week") suggest draft recommendations, and the description never resolves that tension or positions itself against siblings like player_outlook or draft_board.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"In season" is an implied usage condition and "Free" signals a cost-free call, which is useful routing context. But no alternative is named and there is no statement of when NOT to use it (e.g., out of season, or for non-prop questions that belong to player_outlook or compare_players).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updates
    • Changedadp_market_gaps2 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / limit / description
        Previous value: -"Max rows (default 15). Values above 50 are clamped to 50."New value: +"Max rows (default 15)."
    • Changedbest_available2 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / limit / description
        Previous value: -"Max rows (default 15). Values above 50 are clamped to 50."New value: +"Max rows (default 15)."
    • Changedcompare_players1 field changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • Changeddraft_board2 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / limit / description
        Previous value: -"Max rows (default 15). Values above 50 are clamped to 50."New value: +"Max rows (default 15)."
    • Changedexplain_player1 field changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • Changedmy_league1 field changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • Changedplayer_outlook1 field changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • Changedsleepers_and_busts1 field changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • Changedstart_sit1 field changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • Changedwaiver_targets2 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / limit / description
        Previous value: -"Max players (default 10). Values above 25 are clamped to 25."New value: +"Max players (default 10)."
    • Changedwho_do_i_draft1 field changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
  2. 4 tool updates
    • Changedadp_market_gaps2 fields changed
      • removedInput schema / properties / limit / anyOf
        Removed value: -[
        -  {
        -    "anyOf": [
        -      {
        -        "type": "number"
        -      },
        -      {
        -        "type": "string"
        -      }
        -    ]
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedInput schema / properties / limit / type
        Added value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedbest_available2 fields changed
      • removedInput schema / properties / limit / anyOf
        Removed value: -[
        -  {
        -    "anyOf": [
        -      {
        -        "type": "number"
        -      },
        -      {
        -        "type": "string"
        -      }
        -    ]
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedInput schema / properties / limit / type
        Added value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changeddraft_board2 fields changed
      • removedInput schema / properties / limit / anyOf
        Removed value: -[
        -  {
        -    "anyOf": [
        -      {
        -        "type": "number"
        -      },
        -      {
        -        "type": "string"
        -      }
        -    ]
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedInput schema / properties / limit / type
        Added value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
    • Changedwaiver_targets2 fields changed
      • removedInput schema / properties / limit / anyOf
        Removed value: -[
        -  {
        -    "anyOf": [
        -      {
        -        "type": "number"
        -      },
        -      {
        -        "type": "string"
        -      }
        -    ]
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedInput schema / properties / limit / type
        Added value: +[
        +  "number",
        +  "string",
        +  "null"
        +]
  3. 3 tool updates
    • Addedmy_league
    • Addedstart_sit
    • Addedwaiver_targets
  4. 4 tool updates
    • Changedadp_market_gaps2 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Max rows (default 15). Values above 50 are clamped to 50."
        +}
      • addedInput schema / properties / position
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "enum": [
        +        "QB",
        +        "RB",
        +        "WR",
        +        "TE",
        +        "FLEX"
        +      ],
        +      "type": "string"
        +    }
        +  ],
        +  "description": "Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX."
        +}
    • Changedbest_available2 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Max rows (default 15). Values above 50 are clamped to 50."
        +}
      • addedInput schema / properties / roster
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "additionalProperties": {},
        +      "propertyNames": {
        +        "type": "string"
        +      },
        +      "type": "object"
        +    }
        +  ],
        +  "description": "Optional: player names on the USER's team — their strikes are shown first."
        +}
    • Changeddraft_board2 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Max rows (default 15). Values above 50 are clamped to 50."
        +}
      • addedInput schema / properties / position
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "enum": [
        +        "QB",
        +        "RB",
        +        "WR",
        +        "TE",
        +        "FLEX"
        +      ],
        +      "type": "string"
        +    }
        +  ],
        +  "description": "Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX."
        +}
    • Changedwho_do_i_draft1 field changed
      • addedInput schema / properties / roster
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "additionalProperties": {},
        +      "propertyNames": {
        +        "type": "string"
        +      },
        +      "type": "object"
        +    }
        +  ],
        +  "description": "2–4 player names on your roster (full or partial)."
        +}
  5. 1 tool update
    • Changedcompare_players1 field changed
      • removedInput schema / required
        Removed value: -[
        -  "players"
        -]
  6. 3 tool updates
    • Changedcompare_players4 fields changed
      • addedInput schema / properties / platform
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "enum": [
        +        "yahoo",
        +        "espn",
        +        "sleeper",
        +        "nfl",
        +        "cbs",
        +        "fantrax",
        +        "draftkings",
        +        "underdog"
        +      ],
        +      "type": "string"
        +    }
        +  ],
        +  "description": "League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
        +}
      • addedInput schema / properties / players
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "additionalProperties": {},
        +      "propertyNames": {
        +        "type": "string"
        +      },
        +      "type": "object"
        +    }
        +  ],
        +  "description": "2–4 player full names to compare."
        +}
      • addedInput schema / properties / scoring
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "enum": [
        +        "standard",
        +        "half_ppr",
        +        "ppr"
        +      ],
        +      "type": "string"
        +    }
        +  ],
        +  "description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
        +}
      • addedInput schema / required
        Added value: +[
        +  "players"
        +]
    • Changedexplain_player2 fields changed
      • addedInput schema / properties / player
        Added value: +{
        +  "description": "Player name, full or partial (e.g. \"Puka Nacua\").",
        +  "type": "string"
        +}
      • addedInput schema / properties / stat
        Added value: +{
        +  "description": "Optional stat to narrow to, e.g. \"rec_yds\", \"receptions\", \"rush_yds\".",
        +  "type": "string"
        +}
    • Changedsleepers_and_busts1 field changed
      • addedInput schema / properties / position
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "enum": [
        +        "QB",
        +        "RB",
        +        "WR",
        +        "TE"
        +      ],
        +      "type": "string"
        +    }
        +  ],
        +  "description": "Optional position filter. One of: QB · RB · WR · TE."
        +}
  7. 1 tool update
    • Changedplayer_outlook3 fields changed
      • addedInput schema / properties / platform
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "enum": [
        +        "yahoo",
        +        "espn",
        +        "sleeper",
        +        "nfl",
        +        "cbs",
        +        "fantrax",
        +        "draftkings",
        +        "underdog"
        +      ],
        +      "type": "string"
        +    }
        +  ],
        +  "description": "League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
        +}
      • addedInput schema / properties / player
        Added value: +{
        +  "description": "Player name, full or partial (e.g. \"Puka Nacua\", \"Bijan\").",
        +  "type": "string"
        +}
      • addedInput schema / properties / scoring
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "enum": [
        +        "standard",
        +        "half_ppr",
        +        "ppr"
        +      ],
        +      "type": "string"
        +    }
        +  ],
        +  "description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
        +}
  8. 8 tool updates
    • Changedadp_market_gaps3 fields changed
      • removedInput schema / properties / limit
        Removed value: -{
        -  "default": 25,
        -  "description": "Max players to return, widest gap first (default 25). All 154 gaps are free.",
        -  "maximum": 400,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • removedInput schema / properties / position
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "QB",
        -        "RB",
        -        "WR",
        -        "TE",
        -        "FLEX"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX."
        -}
      • removedInput schema / properties / scoring
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "standard",
        -        "half_ppr",
        -        "ppr"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
        -}
    • Changedbest_available7 fields changed
      • removedInput schema / properties / drafted
        Removed value: -{
        -  "description": "Player names already drafted (any team). Removed from the pool.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedInput schema / properties / pick_number
        Removed value: -{
        -  "description": "The overall pick number that is on the clock.",
        -  "maximum": 400,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • removedInput schema / properties / platform
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "yahoo",
        -        "espn",
        -        "sleeper",
        -        "nfl",
        -        "cbs",
        -        "fantrax",
        -        "draftkings",
        -        "underdog"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
        -}
      • removedInput schema / properties / roster
        Removed value: -{
        -  "description": "Player names on the USER's team — enables a bye-stack warning on the top pick (byes are shown per-player regardless).",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedInput schema / properties / scoring
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "standard",
        -        "half_ppr",
        -        "ppr"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
        -}
      • removedInput schema / properties / teams
        Removed value: -{
        -  "description": "League size (number of teams) for draft-round math. Overrides the platform default; falls back to 12.",
        -  "maximum": 20,
        -  "minimum": 4,
        -  "type": "integer"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "pick_number"
        -]
    • Changedcompare_players4 fields changed
      • removedInput schema / properties / platform
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "yahoo",
        -        "espn",
        -        "sleeper",
        -        "nfl",
        -        "cbs",
        -        "fantrax",
        -        "draftkings",
        -        "underdog"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
        -}
      • removedInput schema / properties / players
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "additionalProperties": {},
        -      "propertyNames": {
        -        "type": "string"
        -      },
        -      "type": "object"
        -    }
        -  ],
        -  "description": "2–4 player full names to compare."
        -}
      • removedInput schema / properties / scoring
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "standard",
        -        "half_ppr",
        -        "ppr"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
        -}
      • removedInput schema / required
        Removed value: -[
        -  "players"
        -]
    • Changeddraft_board5 fields changed
      • removedInput schema / properties / limit
        Removed value: -{
        -  "default": 50,
        -  "description": "Max players to return, best first (default 50). The full board is ~330 and all of it is free.",
        -  "maximum": 400,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • removedInput schema / properties / platform
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "yahoo",
        -        "espn",
        -        "sleeper",
        -        "nfl",
        -        "cbs",
        -        "fantrax",
        -        "draftkings",
        -        "underdog"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
        -}
      • removedInput schema / properties / position
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "QB",
        -        "RB",
        -        "WR",
        -        "TE",
        -        "FLEX"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX."
        -}
      • removedInput schema / properties / scoring
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "standard",
        -        "half_ppr",
        -        "ppr"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
        -}
      • removedInput schema / properties / teams
        Removed value: -{
        -  "description": "League size (number of teams) for draft-round math. Overrides the platform default; falls back to 12.",
        -  "maximum": 20,
        -  "minimum": 4,
        -  "type": "integer"
        -}
    • Changedexplain_player4 fields changed
      • removedInput schema / properties / platform
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "yahoo",
        -        "espn",
        -        "sleeper",
        -        "nfl",
        -        "cbs",
        -        "fantrax",
        -        "draftkings",
        -        "underdog"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
        -}
      • removedInput schema / properties / player
        Removed value: -{
        -  "description": "Player full name (e.g. \"Bijan Robinson\", \"Jaxon Smith-Njigba\").",
        -  "type": "string"
        -}
      • removedInput schema / properties / scoring
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "standard",
        -        "half_ppr",
        -        "ppr"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
        -}
      • removedInput schema / required
        Removed value: -[
        -  "player"
        -]
    • Changedplayer_outlook4 fields changed
      • removedInput schema / properties / platform
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "yahoo",
        -        "espn",
        -        "sleeper",
        -        "nfl",
        -        "cbs",
        -        "fantrax",
        -        "draftkings",
        -        "underdog"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
        -}
      • removedInput schema / properties / player
        Removed value: -{
        -  "description": "Player full name (e.g. \"Bijan Robinson\", \"Jaxon Smith-Njigba\").",
        -  "type": "string"
        -}
      • removedInput schema / properties / scoring
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "standard",
        -        "half_ppr",
        -        "ppr"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
        -}
      • removedInput schema / required
        Removed value: -[
        -  "player"
        -]
    • Changedsleepers_and_busts5 fields changed
      • removedInput schema / properties / platform
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "yahoo",
        -        "espn",
        -        "sleeper",
        -        "nfl",
        -        "cbs",
        -        "fantrax",
        -        "draftkings",
        -        "underdog"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
        -}
      • removedInput schema / properties / position
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "QB",
        -        "RB",
        -        "WR",
        -        "TE"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Optional position filter. One of: QB · RB · WR · TE."
        -}
      • removedInput schema / properties / round
        Removed value: -{
        -  "description": "Optional draft round filter (by league size, default 12-team).",
        -  "maximum": 30,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • removedInput schema / properties / scoring
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "standard",
        -        "half_ppr",
        -        "ppr"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
        -}
      • removedInput schema / properties / teams
        Removed value: -{
        -  "description": "League size (number of teams) for draft-round math. Overrides the platform default; falls back to 12.",
        -  "maximum": 20,
        -  "minimum": 4,
        -  "type": "integer"
        -}
    • Changedwho_do_i_draft7 fields changed
      • removedInput schema / properties / drafted
        Removed value: -{
        -  "description": "Player names already drafted by ANY team. Optional — without it the board is estimated from pick_number using consensus ADP. Supplying it is always more accurate.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedInput schema / properties / pick_number
        Removed value: -{
        -  "description": "The overall pick number on the clock.",
        -  "maximum": 400,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • removedInput schema / properties / platform
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "yahoo",
        -        "espn",
        -        "sleeper",
        -        "nfl",
        -        "cbs",
        -        "fantrax",
        -        "draftkings",
        -        "underdog"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
        -}
      • removedInput schema / properties / roster
        Removed value: -{
        -  "description": "Player names already on the user's team.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedInput schema / properties / scoring
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "standard",
        -        "half_ppr",
        -        "ppr"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
        -}
      • removedInput schema / properties / teams
        Removed value: -{
        -  "description": "League size (number of teams) for draft-round math. Overrides the platform default; falls back to 12.",
        -  "maximum": 20,
        -  "minimum": 4,
        -  "type": "integer"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "roster",
        -  "pick_number"
        -]
  9. 8 tool updates
    • Changedadp_market_gaps8 fields changed
      • addedInput schema / properties / position / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "QB",
        +      "RB",
        +      "WR",
        +      "TE",
        +      "FLEX"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / position / description
        Previous value: -"Optional position filter (FLEX = RB/WR/TE)."New value: +"Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX."
      • removedInput schema / properties / position / enum
        Removed value: -[
        -  "QB",
        -  "RB",
        -  "WR",
        -  "TE",
        -  "FLEX"
        -]
      • removedInput schema / properties / position / type
        Removed value: -"string"
      • addedInput schema / properties / scoring / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "standard",
        +      "half_ppr",
        +      "ppr"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / scoring / description
        Previous value: -"Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults."New value: +"Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
      • removedInput schema / properties / scoring / enum
        Removed value: -[
        -  "standard",
        -  "half_ppr",
        -  "ppr"
        -]
      • removedInput schema / properties / scoring / type
        Removed value: -"string"
    • Changedbest_available8 fields changed
      • addedInput schema / properties / platform / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "yahoo",
        +      "espn",
        +      "sleeper",
        +      "nfl",
        +      "cbs",
        +      "fantrax",
        +      "draftkings",
        +      "underdog"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / platform / description
        Previous value: -"League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball."New value: +"League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
      • removedInput schema / properties / platform / enum
        Removed value: -[
        -  "yahoo",
        -  "espn",
        -  "sleeper",
        -  "nfl",
        -  "cbs",
        -  "fantrax",
        -  "draftkings",
        -  "underdog"
        -]
      • removedInput schema / properties / platform / type
        Removed value: -"string"
      • addedInput schema / properties / scoring / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "standard",
        +      "half_ppr",
        +      "ppr"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / scoring / description
        Previous value: -"Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults."New value: +"Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
      • removedInput schema / properties / scoring / enum
        Removed value: -[
        -  "standard",
        -  "half_ppr",
        -  "ppr"
        -]
      • removedInput schema / properties / scoring / type
        Removed value: -"string"
    • Changedcompare_players13 fields changed
      • addedInput schema / properties / platform / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "yahoo",
        +      "espn",
        +      "sleeper",
        +      "nfl",
        +      "cbs",
        +      "fantrax",
        +      "draftkings",
        +      "underdog"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / platform / description
        Previous value: -"League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball."New value: +"League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
      • removedInput schema / properties / platform / enum
        Removed value: -[
        -  "yahoo",
        -  "espn",
        -  "sleeper",
        -  "nfl",
        -  "cbs",
        -  "fantrax",
        -  "draftkings",
        -  "underdog"
        -]
      • removedInput schema / properties / platform / type
        Removed value: -"string"
      • addedInput schema / properties / players / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "additionalProperties": {},
        +    "propertyNames": {
        +      "type": "string"
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / players / items
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / players / maxItems
        Removed value: -4
      • removedInput schema / properties / players / minItems
        Removed value: -2
      • removedInput schema / properties / players / type
        Removed value: -"array"
      • addedInput schema / properties / scoring / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "standard",
        +      "half_ppr",
        +      "ppr"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / scoring / description
        Previous value: -"Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults."New value: +"Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
      • removedInput schema / properties / scoring / enum
        Removed value: -[
        -  "standard",
        -  "half_ppr",
        -  "ppr"
        -]
      • removedInput schema / properties / scoring / type
        Removed value: -"string"
    • Changeddraft_board12 fields changed
      • addedInput schema / properties / platform / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "yahoo",
        +      "espn",
        +      "sleeper",
        +      "nfl",
        +      "cbs",
        +      "fantrax",
        +      "draftkings",
        +      "underdog"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / platform / description
        Previous value: -"League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball."New value: +"League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
      • removedInput schema / properties / platform / enum
        Removed value: -[
        -  "yahoo",
        -  "espn",
        -  "sleeper",
        -  "nfl",
        -  "cbs",
        -  "fantrax",
        -  "draftkings",
        -  "underdog"
        -]
      • removedInput schema / properties / platform / type
        Removed value: -"string"
      • addedInput schema / properties / position / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "QB",
        +      "RB",
        +      "WR",
        +      "TE",
        +      "FLEX"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / position / description
        Previous value: -"Optional position filter (FLEX = RB/WR/TE)."New value: +"Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX."
      • removedInput schema / properties / position / enum
        Removed value: -[
        -  "QB",
        -  "RB",
        -  "WR",
        -  "TE",
        -  "FLEX"
        -]
      • removedInput schema / properties / position / type
        Removed value: -"string"
      • addedInput schema / properties / scoring / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "standard",
        +      "half_ppr",
        +      "ppr"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / scoring / description
        Previous value: -"Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults."New value: +"Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
      • removedInput schema / properties / scoring / enum
        Removed value: -[
        -  "standard",
        -  "half_ppr",
        -  "ppr"
        -]
      • removedInput schema / properties / scoring / type
        Removed value: -"string"
    • Changedexplain_player8 fields changed
      • addedInput schema / properties / platform / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "yahoo",
        +      "espn",
        +      "sleeper",
        +      "nfl",
        +      "cbs",
        +      "fantrax",
        +      "draftkings",
        +      "underdog"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / platform / description
        Previous value: -"League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball."New value: +"League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
      • removedInput schema / properties / platform / enum
        Removed value: -[
        -  "yahoo",
        -  "espn",
        -  "sleeper",
        -  "nfl",
        -  "cbs",
        -  "fantrax",
        -  "draftkings",
        -  "underdog"
        -]
      • removedInput schema / properties / platform / type
        Removed value: -"string"
      • addedInput schema / properties / scoring / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "standard",
        +      "half_ppr",
        +      "ppr"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / scoring / description
        Previous value: -"Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults."New value: +"Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
      • removedInput schema / properties / scoring / enum
        Removed value: -[
        -  "standard",
        -  "half_ppr",
        -  "ppr"
        -]
      • removedInput schema / properties / scoring / type
        Removed value: -"string"
    • Changedplayer_outlook8 fields changed
      • addedInput schema / properties / platform / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "yahoo",
        +      "espn",
        +      "sleeper",
        +      "nfl",
        +      "cbs",
        +      "fantrax",
        +      "draftkings",
        +      "underdog"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / platform / description
        Previous value: -"League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball."New value: +"League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
      • removedInput schema / properties / platform / enum
        Removed value: -[
        -  "yahoo",
        -  "espn",
        -  "sleeper",
        -  "nfl",
        -  "cbs",
        -  "fantrax",
        -  "draftkings",
        -  "underdog"
        -]
      • removedInput schema / properties / platform / type
        Removed value: -"string"
      • addedInput schema / properties / scoring / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "standard",
        +      "half_ppr",
        +      "ppr"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / scoring / description
        Previous value: -"Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults."New value: +"Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
      • removedInput schema / properties / scoring / enum
        Removed value: -[
        -  "standard",
        -  "half_ppr",
        -  "ppr"
        -]
      • removedInput schema / properties / scoring / type
        Removed value: -"string"
    • Changedsleepers_and_busts12 fields changed
      • addedInput schema / properties / platform / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "yahoo",
        +      "espn",
        +      "sleeper",
        +      "nfl",
        +      "cbs",
        +      "fantrax",
        +      "draftkings",
        +      "underdog"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / platform / description
        Previous value: -"League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball."New value: +"League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
      • removedInput schema / properties / platform / enum
        Removed value: -[
        -  "yahoo",
        -  "espn",
        -  "sleeper",
        -  "nfl",
        -  "cbs",
        -  "fantrax",
        -  "draftkings",
        -  "underdog"
        -]
      • removedInput schema / properties / platform / type
        Removed value: -"string"
      • addedInput schema / properties / position / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "QB",
        +      "RB",
        +      "WR",
        +      "TE"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / position / description
        Previous value: -"Optional position filter."New value: +"Optional position filter. One of: QB · RB · WR · TE."
      • removedInput schema / properties / position / enum
        Removed value: -[
        -  "QB",
        -  "RB",
        -  "WR",
        -  "TE"
        -]
      • removedInput schema / properties / position / type
        Removed value: -"string"
      • addedInput schema / properties / scoring / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "standard",
        +      "half_ppr",
        +      "ppr"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / scoring / description
        Previous value: -"Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults."New value: +"Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
      • removedInput schema / properties / scoring / enum
        Removed value: -[
        -  "standard",
        -  "half_ppr",
        -  "ppr"
        -]
      • removedInput schema / properties / scoring / type
        Removed value: -"string"
    • Changedwho_do_i_draft8 fields changed
      • addedInput schema / properties / platform / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "yahoo",
        +      "espn",
        +      "sleeper",
        +      "nfl",
        +      "cbs",
        +      "fantrax",
        +      "draftkings",
        +      "underdog"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / platform / description
        Previous value: -"League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball."New value: +"League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
      • removedInput schema / properties / platform / enum
        Removed value: -[
        -  "yahoo",
        -  "espn",
        -  "sleeper",
        -  "nfl",
        -  "cbs",
        -  "fantrax",
        -  "draftkings",
        -  "underdog"
        -]
      • removedInput schema / properties / platform / type
        Removed value: -"string"
      • addedInput schema / properties / scoring / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "standard",
        +      "half_ppr",
        +      "ppr"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / scoring / description
        Previous value: -"Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults."New value: +"Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
      • removedInput schema / properties / scoring / enum
        Removed value: -[
        -  "standard",
        -  "half_ppr",
        -  "ppr"
        -]
      • removedInput schema / properties / scoring / type
        Removed value: -"string"
  10. 2 tool updates
    • Changedadp_market_gaps2 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"Max players to return, widest gap first (default 25)."New value: +"Max players to return, widest gap first (default 25). All 154 gaps are free."
      • changedInput schema / properties / limit / maximum
        Previous value: -100New value: +400
    • Changeddraft_board2 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"Max players to return, best first (default 50)."New value: +"Max players to return, best first (default 50). The full board is ~330 and all of it is free."
      • changedInput schema / properties / limit / maximum
        Previous value: -100New value: +400

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Enables AI agents to access Sleeper fantasy football league data, rosters, matchups, projections, waivers, trends, and league chat, with read-only safety and optional authorized chat posting.
    26
    MIT
  • F
    license
    B
    quality
    C
    maintenance
    An MCP server that helps an AI agent run a Sleeper fantasy football team from draft night through the championship. It syncs league data, imports FantasyPros rankings, and recommends draft picks, lineups, waivers, and trades.
    10
    33
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides read-only, league-aware fantasy football data to AI clients without requiring an API key or database, covering league overviews, weekly matchups, injuries, trending players, historical rivalries, playoff brackets, drafts, and traded picks. It runs statelessly on Cloudflare Workers, automatically traversing linked prior seasons for multi-year analysis.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.