Fantasy Football Draft Assistant
Server Details
The full 2026 fantasy draft board, free to any AI agent. No key, no email, no signup.
- Status
- Healthy
- Uptime
- 100.0% over 54 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
Scored across 8 tools
Several tools converge on the same core job of surfacing market prices/gaps (adp_market_gaps, best_available, draft_board, sleepers_and_busts), and player_outlook vs explain_player vs who_do_i_draft all return per-player strike prices. The detailed descriptions do help separate them (board vs gaps vs model disagreement vs explanation), but an agent could easily misselect among the price-oriented tools.
All names are snake_case and readable, but the conventions are mixed: some are verb_noun (compare_players, explain_player) while others are noun phrases (best_available, draft_board, player_outlook, sleepers_and_busts). There is no single predictable pattern.
Eight tools is a sensible, well-scoped count for a weekly prop analysis server, though the overlap means a couple could plausibly be merged. Nothing feels bloated or thin.
The surface covers a lot of the weekly prop workflow: full board, position gaps, single-player outlook, multi-player compare, model explanation, and disagreement rankings. However, despite being named a 'Draft Assistant,' the actual draft functionality is deferred to the 2027 offseason, leaving the stated core purpose effectively unserved.
Available Tools
8 toolsadp_market_gapsKalshi vs Book-Consensus Gaps — this week's NFL propsARead-onlyInspect
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 15). Values above 50 are clamped to 50. | |
| position | No | Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX. |
TDQS
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 'Free' and the in-season availability window plus the widest-first default ordering, which is real behavioral context, but it says nothing about freshness of the consensus data, rate limits, or what happens when no props are on the board.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the seasonality gate and the core purpose front-loaded; the parenthetical about ADP is short and relevant. Near-optimal, with only mild asymmetry in how the season note interrupts the main clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-optional-parameter read tool with no output schema, the definition covers purpose, ordering, filter scope and availability. It stops short of describing the returned row shape (player, prop, gap size), which an agent would otherwise have to discover at call time.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the schema documents the limit default (15) and the 50-row clamp, and enumerates QB/RB/WR/TE/FLEX including the FLEX = RB/WR/TE expansion. The description only restates 'filter by position', adding essentially nothing beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: Kalshi-vs-book-consensus gaps on this week's NFL props, with default ordering (widest first) and an optional position filter. It is unambiguous what the tool returns and how it ranks results. It doesn't explicitly name the nearest siblings (nfl_prop_edge, nfl_prop_board), so an agent must infer the boundary itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'In season' prefix and the parenthetical '(ADP gaps return in the 2027 offseason.)' implicitly tell the agent when this tool is applicable versus the out-of-season ADP variant. However no named alternative is offered for the in-season NFL-prop comparison case, and nothing says 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.
best_availableBest Available Price — this week's NFL propsBRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 15). Values above 50 are clamped to 50. | |
| roster | No | Optional: player names on the USER's team — their strikes are shown first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered by structured data. The description adds the "Free" cost signal and the Kalshi-vs-consensus sourcing, which is genuine extra context, but says nothing about ordering, freshness, or what happens when the market shifts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the scope front-loaded ("In season") followed by the key criterion and the pricing source. It is efficient, though the fragmentary style and trailing "Free." make it slightly clipped.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with annotations covering safety and a fully documented schema, the description is adequate but thin: there is no output schema, and the description never indicates what a returned row contains (strike, prices, gap size) or how results are ordered beyond the roster-first hint in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there are only two optional parameters, so the schema fully documents limit (default 15, clamped at 50) and roster (user's players shown first). The description adds no parameter meaning beyond the schema, which is the baseline 3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 props) and a precise selection criterion (strikes where Kalshi and the book consensus are 5¢+ apart), so an agent knows it is a mispricing-scan rather than a generic board. It does not explicitly name or distinguish itself from overlapping siblings like nfl_prop_edge or nfl_prop_board, which keeps it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"In season" gives an implicit precondition for use and the 5¢+ dev criterion explains what qualifies as a hit, but there is no when-not guidance and no named alternative among the many NFL/prop siblings. The agent must infer that the other prop tools serve different purposes.
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 linesARead-onlyInspect
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. Free, no key. Use for " or this week", "compare and props", "who has the better prop, or ", " vs receiving yards".
| Name | Required | Description | Default |
|---|---|---|---|
| players | No | 2–4 player full names to compare. | |
| scoring | No | 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. | |
| platform | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false; the description adds 'Free, no key' (auth requirement) and details what the response contains (prop strikes, best price per side, model probability, ranked verdict). It does not mention rate limits or latency, so it falls 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose and output contents before the example phrasings; every clause carries information. The trailing quoted examples add bulk but earn their place as routing cues.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 return contents, and the input schema fully covers all three parameters. Missing only edge-case behavior (e.g., what happens with duplicate names or fewer than 2 players) to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 with enums and defaults. The description only restates the 2–4 player bound, adding no new parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (compare), resource (2–4 NFL players this week), and enumerates the concrete outputs: Kalshi prop strikes, best price per side, published probability, and a ranked disagreement verdict. This is clearly distinguishable from the draft-oriented siblings like draft_board or who_do_i_draft.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit trigger phrasings ('<A> or <B> this week', 'compare <A> and <B> props', '<A> vs <B> receiving yards') that map user intent directly to this tool. No when-not guidance or named alternative is offered, but the intent coverage is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draft_boardNFL Prop Market Board — this week (the draft board returns in 2027)CRead-onlyInspect
In season: this week's NFL prop market board — every Kalshi player prop with the best price across venues, filter by position. Free. (The 2026 fantasy draft board returns in the 2027 offseason.)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 15). Values above 50 are clamped to 50. | |
| position | No | Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds that the board is 'Free' and that it is seasonally active, plus that the draft board is dormant until 2027 — useful context, but no disclosure of refresh cadence, data source lag, or empty-state behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the operational content front-loaded; the parenthetical about the 2027 draft board is arguably necessary to resolve the name/behavior mismatch. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-param read-only board with no output schema, the description conveys the return concept (all Kalshi player props priced across venues) and the seasonal gating. It still leaves the relationship to 'nfl_prop_board' and the practical limits of the result set unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters fully documented, so the baseline is 3. The description only echoes the position filter ('filter by position') and says nothing about the limit parameter or its 50-row clamp, adding no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description does state a concrete verb+resource: 'this week's NFL prop market board — every Kalshi player prop with the best price across venues.' However, the tool name 'draft_board' and title ('the draft board returns in 2027') point at a different resource, so an agent reading the name first will be misled before reaching the sentence that clarifies the actual behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'In season:' hints at a temporal condition, but no explicit when-to-use rule, no prerequisites, and no exclusion. Critically, the sibling 'nfl_prop_board' is not mentioned, even though it sounds like it could serve the same purpose, leaving the agent unable to choose between them.
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 thereARead-onlyInspect
Why the PredictionMarketsPicks model prices an NFL player's Kalshi prop strikes where it does this week: the projection, The Ladder's verdict (SHAPE, LOCATION, PRICED or market-only), the widest published model-vs-market gap, and what the model does NOT account for. Our number appears only where it is measured calibrated (30–70%). Free, no key. Use for "why do you price there", "explain 's prop", "what's driving the model on ", "why is 's over priced at that".
| Name | Required | Description | Default |
|---|---|---|---|
| stat | No | Optional stat to narrow to, e.g. "rec_yds", "receptions", "rush_yds". | |
| player | No | Player name, full or partial (e.g. "Puka Nacua"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, destructiveHint=false, and openWorldHint=false. The description adds useful behavioral context beyond that: it is free with no key, the model number appears only where measured calibrated at 30–70%, and it discloses what the model does NOT account for. It does not cover rate limits or auth requirements in more detail, but the added context is substantive given annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core explanation and then adds trigger phrases, with no major digressions. It is slightly dense, packing many output components and marketing phrases into a long first sentence, but every clause contributes to explaining what the tool returns or when to use it. It is appropriately sized overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carries the burden of explaining return content, and it does list the projection, The Ladder verdict categories, model-vs-market gap, and model limitations. It also notes the calibration range and free/no-key access. It could be more precise about the response structure, but it is largely complete for an explanation tool with rich annotations and full schema descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents both optional parameters, including stat examples and player name format. The description implies the player parameter through its examples but adds no syntax, format, or semantic detail beyond what the schema provides. This fits the baseline of 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: explain why the model prices an NFL player's Kalshi prop strikes where it does this week. It clearly distinguishes its niche from generic player outlooks by naming the projection, The Ladder verdict, model-vs-market gap, and model limitations. However, it does not explicitly differentiate itself from sibling tools such as adp_market_gaps 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit trigger phrases: "Use for 'why do you price <player> there', 'explain <player>'s prop', 'what's driving the model on <player>'...". This makes the intended invocation context clear. It does not state when not to use the tool or name alternative sibling tools, so it lacks the full when/when-not/alternatives structure 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 linesARead-onlyInspect
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".
| Name | Required | Description | Default |
|---|---|---|---|
| player | No | Player name, full or partial (e.g. "Puka Nacua", "Bijan"). | |
| scoring | No | 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. | |
| platform | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds useful context — it is free and aggregates prices across venues plus a model probability — but omits pagination, freshness, or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core scope and what the response contains. Slightly informal phrasing but no wasted content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carries return-value burden — and it does describe the payload (prop lines, best price across venues, probability at each strike). With 0 required params and full schema coverage, remaining gaps are minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (player, scoring, platform) are already documented in the schema. The description adds no parameter-level syntax or defaults beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: 'One NFL player this week — every Kalshi prop line, the best price across venues, and our probability at each strike.' An agent can distinguish this from siblings like compare_players or explain_player.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides example queries ('is <player> a good play this week', '<player> props') that imply usage context, but does not name alternatives or state when NOT to use this tool versus explain_player or compare_players.
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 WeekARead-onlyInspect
Every NFL player whose Kalshi prop price the PredictionMarketsPicks model disagrees with this week, ranked, each marked underpriced (model above the market) or overpriced (model below) with the stat driving it. Free, the complete list, no key. Which strike, at what price and by how much is the Pro nfl_prop_edge tool. Use for "undervalued players this week", "who is the market overpricing", "which players is the market wrong on", "overrated players week N", "where does your model disagree with the market most", "sleepers this week", "busts to avoid this week".
| Name | Required | Description | Default |
|---|---|---|---|
| position | No | Optional position filter. One of: QB · RB · WR · TE. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnly, non-destructive, closed-world), so the bar is lower. The description adds genuinely useful context beyond them: it is free, needs no key, and returns the complete (non-truncated) list, which affects how an agent should treat coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, the differentiator, and access facts before the query list. The seven quoted trigger phrases are somewhat repetitive, but each sentence still earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 return-shape burden and does so reasonably: ranked list, underpriced/overpriced label, and the stat driving each call. Minor gaps (sort order, list size) remain but an agent can call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one optional parameter (position) and schema description coverage is 100%, so the schema fully documents it. The description adds nothing about the position filter, so the baseline 3 for high-coverage schemas applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: every NFL player whose Kalshi prop price the PredictionMarketsPicks model disagrees with this week, ranked, marked underpriced/overpriced with the driving stat. It distinguishes itself from the paid alternative by scoping to the complete disagreement list rather than strike-level detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use with concrete query phrasings ("undervalued players this week", "who is the market overpricing", "busts to avoid") and an explicit when-not/alternative: strike, price and magnitude live in the Pro nfl_prop_edge tool. Routing is unambiguous.
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 WeekARead-onlyInspect
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'].
| Name | Required | Description | Default |
|---|---|---|---|
| roster | No | 2–4 player names on your roster (full or partial). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false. The description adds genuinely non-structured traits: that the call is 'Free' (cost behavior) and only valid 'In season' (availability constraint). It does not explain behavior out of season, but the annotations plus these two facts give solid coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded: season condition, output, cost, and call format. The telegraphic fragments ('Free.') are efficient, though the style is slightly clipped and the example could be trimmed without loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter, read-only tool with no output schema, the description covers what is returned (props with best price per strike) and gives an invocation example. Only the out-of-season behavior and the meaning of 'best price per strike' tie-breaking remain unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the 'roster' parameter and its 2–4 name constraint are already documented. The description adds a literal call example ('Pass roster: ["Player A", "Player B"]'), which is marginally useful, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete return: Kalshi props on 2–4 named players, with the best price per strike. It differs from the tool name ('who_do_i_draft' suggests draft advice) but clarifies the actual behavior, though it never names a sibling tool to differentiate itself among the many prop/edge tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'In season:' implies a usage window and 'Free' signals no cost, which is mild context. However, no alternatives are named (e.g., nfl_prop_board, nfl_prop_edge) and there is no explicit when-not guidance, leaving routing to inference.
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.
4 tool updates
- Changed
adp_market_gaps2 fields changed- added
Input schema / properties / limitAdded value: +{ + "anyOf": [ + { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + { + "type": "null" + } + ], + "description": "Max rows (default 15). Values above 50 are clamped to 50." +} - added
Input schema / properties / positionAdded 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." +}
- Changed
best_available2 fields changed- added
Input schema / properties / limitAdded value: +{ + "anyOf": [ + { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + { + "type": "null" + } + ], + "description": "Max rows (default 15). Values above 50 are clamped to 50." +} - added
Input schema / properties / rosterAdded 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." +}
- Changed
draft_board2 fields changed- added
Input schema / properties / limitAdded value: +{ + "anyOf": [ + { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + { + "type": "null" + } + ], + "description": "Max rows (default 15). Values above 50 are clamped to 50." +} - added
Input schema / properties / positionAdded 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." +}
- Changed
who_do_i_draft1 field changed- added
Input schema / properties / rosterAdded 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)." +}
1 tool update
- Changed
compare_players1 field changed- removed
Input schema / requiredRemoved value: -[ - "players" -]
3 tool updates
- Changed
compare_players4 fields changed- added
Input schema / properties / platformAdded 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." +} - added
Input schema / properties / playersAdded value: +{ + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + }, + { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ], + "description": "2–4 player full names to compare." +} - added
Input schema / properties / scoringAdded 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." +} - added
Input schema / requiredAdded value: +[ + "players" +]
- Changed
explain_player2 fields changed- added
Input schema / properties / playerAdded value: +{ + "description": "Player name, full or partial (e.g. \"Puka Nacua\").", + "type": "string" +} - added
Input schema / properties / statAdded value: +{ + "description": "Optional stat to narrow to, e.g. \"rec_yds\", \"receptions\", \"rush_yds\".", + "type": "string" +}
- Changed
sleepers_and_busts1 field changed- added
Input schema / properties / positionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "enum": [ + "QB", + "RB", + "WR", + "TE" + ], + "type": "string" + } + ], + "description": "Optional position filter. One of: QB · RB · WR · TE." +}
1 tool update
- Changed
player_outlook3 fields changed- added
Input schema / properties / platformAdded 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." +} - added
Input schema / properties / playerAdded value: +{ + "description": "Player name, full or partial (e.g. \"Puka Nacua\", \"Bijan\").", + "type": "string" +} - added
Input schema / properties / scoringAdded 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 tool updates
- Changed
adp_market_gaps3 fields changed- removed
Input schema / properties / limitRemoved value: -{ - "default": 25, - "description": "Max players to return, widest gap first (default 25). All 154 gaps are free.", - "maximum": 400, - "minimum": 1, - "type": "integer" -} - removed
Input schema / properties / positionRemoved 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." -} - removed
Input schema / properties / scoringRemoved 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." -}
- Changed
best_available7 fields changed- removed
Input schema / properties / draftedRemoved value: -{ - "description": "Player names already drafted (any team). Removed from the pool.", - "items": { - "type": "string" - }, - "type": "array" -} - removed
Input schema / properties / pick_numberRemoved value: -{ - "description": "The overall pick number that is on the clock.", - "maximum": 400, - "minimum": 1, - "type": "integer" -} - removed
Input schema / properties / platformRemoved 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." -} - removed
Input schema / properties / rosterRemoved 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" -} - removed
Input schema / properties / scoringRemoved 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." -} - removed
Input schema / properties / teamsRemoved 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" -} - removed
Input schema / requiredRemoved value: -[ - "pick_number" -]
- Changed
compare_players4 fields changed- removed
Input schema / properties / platformRemoved 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." -} - removed
Input schema / properties / playersRemoved value: -{ - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - }, - { - "additionalProperties": {}, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - ], - "description": "2–4 player full names to compare." -} - removed
Input schema / properties / scoringRemoved 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." -} - removed
Input schema / requiredRemoved value: -[ - "players" -]
- Changed
draft_board5 fields changed- removed
Input schema / properties / limitRemoved 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" -} - removed
Input schema / properties / platformRemoved 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." -} - removed
Input schema / properties / positionRemoved 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." -} - removed
Input schema / properties / scoringRemoved 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." -} - removed
Input schema / properties / teamsRemoved 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" -}
- Changed
explain_player4 fields changed- removed
Input schema / properties / platformRemoved 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." -} - removed
Input schema / properties / playerRemoved value: -{ - "description": "Player full name (e.g. \"Bijan Robinson\", \"Jaxon Smith-Njigba\").", - "type": "string" -} - removed
Input schema / properties / scoringRemoved 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." -} - removed
Input schema / requiredRemoved value: -[ - "player" -]
- Changed
player_outlook4 fields changed- removed
Input schema / properties / platformRemoved 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." -} - removed
Input schema / properties / playerRemoved value: -{ - "description": "Player full name (e.g. \"Bijan Robinson\", \"Jaxon Smith-Njigba\").", - "type": "string" -} - removed
Input schema / properties / scoringRemoved 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." -} - removed
Input schema / requiredRemoved value: -[ - "player" -]
- Changed
sleepers_and_busts5 fields changed- removed
Input schema / properties / platformRemoved 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." -} - removed
Input schema / properties / positionRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "QB", - "RB", - "WR", - "TE" - ], - "type": "string" - } - ], - "description": "Optional position filter. One of: QB · RB · WR · TE." -} - removed
Input schema / properties / roundRemoved value: -{ - "description": "Optional draft round filter (by league size, default 12-team).", - "maximum": 30, - "minimum": 1, - "type": "integer" -} - removed
Input schema / properties / scoringRemoved 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." -} - removed
Input schema / properties / teamsRemoved 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" -}
- Changed
who_do_i_draft7 fields changed- removed
Input schema / properties / draftedRemoved 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" -} - removed
Input schema / properties / pick_numberRemoved value: -{ - "description": "The overall pick number on the clock.", - "maximum": 400, - "minimum": 1, - "type": "integer" -} - removed
Input schema / properties / platformRemoved 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." -} - removed
Input schema / properties / rosterRemoved value: -{ - "description": "Player names already on the user's team.", - "items": { - "type": "string" - }, - "type": "array" -} - removed
Input schema / properties / scoringRemoved 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." -} - removed
Input schema / properties / teamsRemoved 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" -} - removed
Input schema / requiredRemoved value: -[ - "roster", - "pick_number" -]
8 tool updates
- Changed
adp_market_gaps8 fields changed- added
Input schema / properties / position / anyOfAdded value: +[ + { + "type": "string" + }, + { + "enum": [ + "QB", + "RB", + "WR", + "TE", + "FLEX" + ], + "type": "string" + } +] - changed
Input schema / properties / position / descriptionPrevious value: -"Optional position filter (FLEX = RB/WR/TE)."New value: +"Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX." - removed
Input schema / properties / position / enumRemoved value: -[ - "QB", - "RB", - "WR", - "TE", - "FLEX" -] - removed
Input schema / properties / position / typeRemoved value: -"string" - added
Input schema / properties / scoring / anyOfAdded value: +[ + { + "type": "string" + }, + { + "enum": [ + "standard", + "half_ppr", + "ppr" + ], + "type": "string" + } +] - changed
Input schema / properties / scoring / descriptionPrevious 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." - removed
Input schema / properties / scoring / enumRemoved value: -[ - "standard", - "half_ppr", - "ppr" -] - removed
Input schema / properties / scoring / typeRemoved value: -"string"
- Changed
best_available8 fields changed- added
Input schema / properties / platform / anyOfAdded value: +[ + { + "type": "string" + }, + { + "enum": [ + "yahoo", + "espn", + "sleeper", + "nfl", + "cbs", + "fantrax", + "draftkings", + "underdog" + ], + "type": "string" + } +] - changed
Input schema / properties / platform / descriptionPrevious 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." - removed
Input schema / properties / platform / enumRemoved value: -[ - "yahoo", - "espn", - "sleeper", - "nfl", - "cbs", - "fantrax", - "draftkings", - "underdog" -] - removed
Input schema / properties / platform / typeRemoved value: -"string" - added
Input schema / properties / scoring / anyOfAdded value: +[ + { + "type": "string" + }, + { + "enum": [ + "standard", + "half_ppr", + "ppr" + ], + "type": "string" + } +] - changed
Input schema / properties / scoring / descriptionPrevious 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." - removed
Input schema / properties / scoring / enumRemoved value: -[ - "standard", - "half_ppr", - "ppr" -] - removed
Input schema / properties / scoring / typeRemoved value: -"string"
- Changed
compare_players13 fields changed- added
Input schema / properties / platform / anyOfAdded value: +[ + { + "type": "string" + }, + { + "enum": [ + "yahoo", + "espn", + "sleeper", + "nfl", + "cbs", + "fantrax", + "draftkings", + "underdog" + ], + "type": "string" + } +] - changed
Input schema / properties / platform / descriptionPrevious 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." - removed
Input schema / properties / platform / enumRemoved value: -[ - "yahoo", - "espn", - "sleeper", - "nfl", - "cbs", - "fantrax", - "draftkings", - "underdog" -] - removed
Input schema / properties / platform / typeRemoved value: -"string" - added
Input schema / properties / players / anyOfAdded value: +[ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + }, + { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + } +] - removed
Input schema / properties / players / itemsRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / players / maxItemsRemoved value: -4 - removed
Input schema / properties / players / minItemsRemoved value: -2 - removed
Input schema / properties / players / typeRemoved value: -"array" - added
Input schema / properties / scoring / anyOfAdded value: +[ + { + "type": "string" + }, + { + "enum": [ + "standard", + "half_ppr", + "ppr" + ], + "type": "string" + } +] - changed
Input schema / properties / scoring / descriptionPrevious 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." - removed
Input schema / properties / scoring / enumRemoved value: -[ - "standard", - "half_ppr", - "ppr" -] - removed
Input schema / properties / scoring / typeRemoved value: -"string"
- Changed
draft_board12 fields changed- added
Input schema / properties / platform / anyOfAdded value: +[ + { + "type": "string" + }, + { + "enum": [ + "yahoo", + "espn", + "sleeper", + "nfl", + "cbs", + "fantrax", + "draftkings", + "underdog" + ], + "type": "string" + } +] - changed
Input schema / properties / platform / descriptionPrevious 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." - removed
Input schema / properties / platform / enumRemoved value: -[ - "yahoo", - "espn", - "sleeper", - "nfl", - "cbs", - "fantrax", - "draftkings", - "underdog" -] - removed
Input schema / properties / platform / typeRemoved value: -"string" - added
Input schema / properties / position / anyOfAdded value: +[ + { + "type": "string" + }, + { + "enum": [ + "QB", + "RB", + "WR", + "TE", + "FLEX" + ], + "type": "string" + } +] - changed
Input schema / properties / position / descriptionPrevious value: -"Optional position filter (FLEX = RB/WR/TE)."New value: +"Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX." - removed
Input schema / properties / position / enumRemoved value: -[ - "QB", - "RB", - "WR", - "TE", - "FLEX" -] - removed
Input schema / properties / position / typeRemoved value: -"string" - added
Input schema / properties / scoring / anyOfAdded value: +[ + { + "type": "string" + }, + { + "enum": [ + "standard", + "half_ppr", + "ppr" + ], + "type": "string" + } +] - changed
Input schema / properties / scoring / descriptionPrevious 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." - removed
Input schema / properties / scoring / enumRemoved value: -[ - "standard", - "half_ppr", - "ppr" -] - removed
Input schema / properties / scoring / typeRemoved value: -"string"
- Changed
explain_player8 fields changed- added
Input schema / properties / platform / anyOfAdded value: +[ + { + "type": "string" + }, + { + "enum": [ + "yahoo", + "espn", + "sleeper", + "nfl", + "cbs", + "fantrax", + "draftkings", + "underdog" + ], + "type": "string" + } +] - changed
Input schema / properties / platform / descriptionPrevious 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." - removed
Input schema / properties / platform / enumRemoved value: -[ - "yahoo", - "espn", - "sleeper", - "nfl", - "cbs", - "fantrax", - "draftkings", - "underdog" -] - removed
Input schema / properties / platform / typeRemoved value: -"string" - added
Input schema / properties / scoring / anyOfAdded value: +[ + { + "type": "string" + }, + { + "enum": [ + "standard", + "half_ppr", + "ppr" + ], + "type": "string" + } +] - changed
Input schema / properties / scoring / descriptionPrevious 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." - removed
Input schema / properties / scoring / enumRemoved value: -[ - "standard", - "half_ppr", - "ppr" -] - removed
Input schema / properties / scoring / typeRemoved value: -"string"
- Changed
player_outlook8 fields changed- added
Input schema / properties / platform / anyOfAdded value: +[ + { + "type": "string" + }, + { + "enum": [ + "yahoo", + "espn", + "sleeper", + "nfl", + "cbs", + "fantrax", + "draftkings", + "underdog" + ], + "type": "string" + } +] - changed
Input schema / properties / platform / descriptionPrevious 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." - removed
Input schema / properties / platform / enumRemoved value: -[ - "yahoo", - "espn", - "sleeper", - "nfl", - "cbs", - "fantrax", - "draftkings", - "underdog" -] - removed
Input schema / properties / platform / typeRemoved value: -"string" - added
Input schema / properties / scoring / anyOfAdded value: +[ + { + "type": "string" + }, + { + "enum": [ + "standard", + "half_ppr", + "ppr" + ], + "type": "string" + } +] - changed
Input schema / properties / scoring / descriptionPrevious 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." - removed
Input schema / properties / scoring / enumRemoved value: -[ - "standard", - "half_ppr", - "ppr" -] - removed
Input schema / properties / scoring / typeRemoved value: -"string"
- Changed
sleepers_and_busts12 fields changed- added
Input schema / properties / platform / anyOfAdded value: +[ + { + "type": "string" + }, + { + "enum": [ + "yahoo", + "espn", + "sleeper", + "nfl", + "cbs", + "fantrax", + "draftkings", + "underdog" + ], + "type": "string" + } +] - changed
Input schema / properties / platform / descriptionPrevious 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." - removed
Input schema / properties / platform / enumRemoved value: -[ - "yahoo", - "espn", - "sleeper", - "nfl", - "cbs", - "fantrax", - "draftkings", - "underdog" -] - removed
Input schema / properties / platform / typeRemoved value: -"string" - added
Input schema / properties / position / anyOfAdded value: +[ + { + "type": "string" + }, + { + "enum": [ + "QB", + "RB", + "WR", + "TE" + ], + "type": "string" + } +] - changed
Input schema / properties / position / descriptionPrevious value: -"Optional position filter."New value: +"Optional position filter. One of: QB · RB · WR · TE." - removed
Input schema / properties / position / enumRemoved value: -[ - "QB", - "RB", - "WR", - "TE" -] - removed
Input schema / properties / position / typeRemoved value: -"string" - added
Input schema / properties / scoring / anyOfAdded value: +[ + { + "type": "string" + }, + { + "enum": [ + "standard", + "half_ppr", + "ppr" + ], + "type": "string" + } +] - changed
Input schema / properties / scoring / descriptionPrevious 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." - removed
Input schema / properties / scoring / enumRemoved value: -[ - "standard", - "half_ppr", - "ppr" -] - removed
Input schema / properties / scoring / typeRemoved value: -"string"
- Changed
who_do_i_draft8 fields changed- added
Input schema / properties / platform / anyOfAdded value: +[ + { + "type": "string" + }, + { + "enum": [ + "yahoo", + "espn", + "sleeper", + "nfl", + "cbs", + "fantrax", + "draftkings", + "underdog" + ], + "type": "string" + } +] - changed
Input schema / properties / platform / descriptionPrevious 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." - removed
Input schema / properties / platform / enumRemoved value: -[ - "yahoo", - "espn", - "sleeper", - "nfl", - "cbs", - "fantrax", - "draftkings", - "underdog" -] - removed
Input schema / properties / platform / typeRemoved value: -"string" - added
Input schema / properties / scoring / anyOfAdded value: +[ + { + "type": "string" + }, + { + "enum": [ + "standard", + "half_ppr", + "ppr" + ], + "type": "string" + } +] - changed
Input schema / properties / scoring / descriptionPrevious 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." - removed
Input schema / properties / scoring / enumRemoved value: -[ - "standard", - "half_ppr", - "ppr" -] - removed
Input schema / properties / scoring / typeRemoved value: -"string"
2 tool updates
- Changed
adp_market_gaps2 fields changed- changed
Input schema / properties / limit / descriptionPrevious 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." - changed
Input schema / properties / limit / maximumPrevious value: -100New value: +400
- Changed
draft_board2 fields changed- changed
Input schema / properties / limit / descriptionPrevious 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." - changed
Input schema / properties / limit / maximumPrevious value: -100New value: +400
1 tool update
- Changed
who_do_i_draft1 field changed- added
Input schema / properties / draftedAdded 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" +}
8 tool updates
- Changed
adp_market_gaps1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
best_available1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
compare_players1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
draft_board1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
explain_player1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
player_outlook1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
sleepers_and_busts1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
who_do_i_draft1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
1 tool update
- Added
explain_player
7 tool updates
- First observed
adp_market_gaps - First observed
best_available - First observed
compare_players - First observed
draft_board - First observed
player_outlook - First observed
sleepers_and_busts - First observed
who_do_i_draft
Related MCP Connectors
- NFL MCPOAuthcom.nflmcp
NFL analytics tools for AI agents: stats, fantasy, injuries, schedules, and advanced analysis.
Free agent directory and job board. List your agent free: give it agent-control.net/skill.md
Free board where your AI agent runs a hard task stage by stage, with decisions in plain sight.
Free fantasy sports AI: ESPN, Sleeper and Fantrax league data for Claude and ChatGPT. Read-only.
Related MCP Servers
- FlicenseAqualityBmaintenanceEnables AI assistants to monitor a Sleeper fantasy football draft in real time by retrieving draft picks, available players, current turn, and roster needs through Sleeper's public keyless API.8-
- AlicenseAqualityCmaintenanceEnables AI-assisted live ESPN fantasy football snake drafts by providing league-specific draft context, VORP-based value rankings, tier analysis, and real-time draft state.141MIT
- AlicenseNot gradedqualityCmaintenanceProvides read-only, league-aware Sleeper fantasy football draft context to AI assistants, including live picks, rosters, and player availability over Streamable HTTP MCP.109 npmMIT
- AlicenseNot gradedqualityBmaintenanceProvides 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
Glama MCP Gateway
Add one secure layer between your agents and this server.