Skip to main content
Glama

Fantasy Football Draft Assistant

Server Details

The full 2026 fantasy draft board, free to any AI agent. No key, no email, no signup.

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 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

B3.4/5.0

Scored across 8 tools

Disambiguation3/5

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.

Naming Consistency3/5

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.

Tool Count4/5

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.

Completeness4/5

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 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.)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows (default 15). Values above 50 are clamped to 50.
positionNoOptional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX.

TDQS

A3.5/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 '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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows (default 15). Values above 50 are clamped to 50.
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, 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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

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 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.

Usage Guidelines3/5

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 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. Free, no key. Use for " or this week", "compare and props", "who has the better prop, or ", " vs receiving yards".

ParametersJSON Schema
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 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.

Conciseness4/5

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.

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 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.

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 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.

Purpose5/5

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.

Usage Guidelines4/5

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)C
Read-only
Inspect

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.)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows (default 15). Values above 50 are clamped to 50.
positionNoOptional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX.

TDQS

C2.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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 thereA
Read-only
Inspect

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".

ParametersJSON Schema
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 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.

Conciseness4/5

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.

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 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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 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".

ParametersJSON Schema
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
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 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.

Conciseness4/5

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.

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 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 WeekA
Read-only
Inspect

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".

ParametersJSON Schema
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 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.

Conciseness4/5

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.

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 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 WeekA
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'].

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

TDQS

A3.7/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. 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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 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)."
        +}
  2. 1 tool update
    • Changedcompare_players1 field changed
      • removedInput schema / required
        Removed value: -[
        -  "players"
        -]
  3. 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."
        +}
  4. 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."
        +}
  5. 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"
        -]
  6. 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"
  7. 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
  8. 1 tool update
    • Changedwho_do_i_draft1 field changed
      • addedInput schema / properties / drafted
        Added 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"
        +}
  9. 8 tool updates
    • Changedadp_market_gaps1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedbest_available1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcompare_players1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changeddraft_board1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedexplain_player1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedplayer_outlook1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedsleepers_and_busts1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedwho_do_i_draft1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  10. 1 tool update
    • Addedexplain_player
  11. 7 tool updates
    • First observedadp_market_gaps
    • First observedbest_available
    • First observedcompare_players
    • First observeddraft_board
    • First observedplayer_outlook
    • First observedsleepers_and_busts
    • First observedwho_do_i_draft

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    B
    maintenance
    Enables 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
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables 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.
    14
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides read-only, league-aware Sleeper fantasy football draft context to AI assistants, including live picks, rosters, and player availability over Streamable HTTP MCP.
    109 npm
    MIT
  • 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.