Fantasy Football MCP — Draft, Start/Sit, Waivers

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

Should I use this

Quality & Safety

A
Description quality
88%
Schema completeness
78%
Naming quality
84%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'best_available' description lacks action verbin best_available

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,399Tokens (tool definitions)
~1.2 KBTypical response size
Moderate attention impact (1.87% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "fantasy-draft": {
      "url": "https://predictionmarketspicks.com/api/mcp-draft/mcp"
    }
  }
}

Remote endpoints

https://predictionmarketspicks.com/api/mcp-draft/mcpstreamable-http
https://predictionmarketspicks.com/api/mcp-draft/mcp?via=registrystreamable-http

What it can do

Tool inventory

Tools (11)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢draft_board(position, limit)

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

Input Schema

{
  "type": "object",
  "properties": {
    "position": {
      "description": "Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "string",
          "enum": [
            "QB",
            "RB",
            "WR",
            "TE",
            "FLEX"
          ]
        }
      ]
    },
    "limit": {
      "description": "Max rows (default 15).",
      "type": [
        "number",
        "string",
        "null"
      ]
    }
  }
}
🟢best_available(roster, limit)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "roster": {
      "description": "Optional: player names on the USER's team — their strikes are shown first.",
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        }
      ]
    },
    "limit": {
      "description": "Max rows (default 15).",
      "type": [
        "number",
        "string",
        "null"
      ]
    }
  }
}
🟢player_outlook(player, scoring, platform)

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

Input Schema

{
  "type": "object",
  "properties": {
    "player": {
      "description": "Player name, full or partial (e.g. \"Puka Nacua\", \"Bijan\").",
      "type": "string"
    },
    "scoring": {
      "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.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "string",
          "enum": [
            "standard",
            "half_ppr",
            "ppr"
          ]
        }
      ]
    },
    "platform": {
      "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.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "string",
          "enum": [
            "yahoo",
            "espn",
            "sleeper",
            "nfl",
            "cbs",
            "fantrax",
            "draftkings",
            "underdog"
          ]
        }
      ]
    }
  }
}
🟢explain_player(player, stat)

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

Input Schema

{
  "type": "object",
  "properties": {
    "player": {
      "description": "Player name, full or partial (e.g. \"Puka Nacua\").",
      "type": "string"
    },
    "stat": {
      "description": "Optional stat to narrow to, e.g. \"rec_yds\", \"receptions\", \"rush_yds\".",
      "type": "string"
    }
  }
}
🟢compare_players(players, scoring, platform)

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

Input Schema

{
  "type": "object",
  "properties": {
    "players": {
      "description": "2–4 player full names to compare.",
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        }
      ]
    },
    "scoring": {
      "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.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "string",
          "enum": [
            "standard",
            "half_ppr",
            "ppr"
          ]
        }
      ]
    },
    "platform": {
      "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.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "string",
          "enum": [
            "yahoo",
            "espn",
            "sleeper",
            "nfl",
            "cbs",
            "fantrax",
            "draftkings",
            "underdog"
          ]
        }
      ]
    }
  }
}
🟢sleepers_and_busts(position)

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

Input Schema

{
  "type": "object",
  "properties": {
    "position": {
      "description": "Optional position filter. One of: QB · RB · WR · TE.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "string",
          "enum": [
            "QB",
            "RB",
            "WR",
            "TE"
          ]
        }
      ]
    }
  }
}
🟢adp_market_gaps(position, limit)

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

Input Schema

{
  "type": "object",
  "properties": {
    "position": {
      "description": "Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "string",
          "enum": [
            "QB",
            "RB",
            "WR",
            "TE",
            "FLEX"
          ]
        }
      ]
    },
    "limit": {
      "description": "Max rows (default 15).",
      "type": [
        "number",
        "string",
        "null"
      ]
    }
  }
}
🟢who_do_i_draft(roster)

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

Input Schema

{
  "type": "object",
  "properties": {
    "roster": {
      "description": "2–4 player names on your roster (full or partial).",
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        }
      ]
    }
  }
}
🟢my_league(sleeper_username, league)

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

Input Schema

{
  "type": "object",
  "properties": {
    "sleeper_username": {
      "description": "Sleeper username (profile → username, not the display name).",
      "type": "string",
      "maxLength": 40
    },
    "league": {
      "description": "League name (partial) or Sleeper league id, when the user is in several.",
      "type": "string",
      "maxLength": 60
    }
  }
}
🟢start_sit(players)

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

Input Schema

{
  "type": "object",
  "properties": {
    "players": {
      "description": "Two to four player names, e.g. [\"Puka Nacua\", \"Davante Adams\"] or \"Nacua, Adams\".",
      "anyOf": [
        {
          "maxItems": 4,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 40
          }
        },
        {
          "type": "string",
          "maxLength": 160
        }
      ]
    }
  }
}
🟢waiver_targets(position, sleeper_username, league, limit)

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

Input Schema

{
  "type": "object",
  "properties": {
    "position": {
      "description": "Optional position filter. One of: QB · RB · WR · TE.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "string",
          "enum": [
            "QB",
            "RB",
            "WR",
            "TE"
          ]
        }
      ]
    },
    "sleeper_username": {
      "description": "Sleeper username — with it, players already rostered in your league are left out.",
      "type": "string",
      "maxLength": 40
    },
    "league": {
      "description": "League name (partial) or id, when the user is in several.",
      "type": "string",
      "maxLength": 60
    },
    "limit": {
      "description": "Max players (default 10).",
      "type": [
        "number",
        "string",
        "null"
      ]
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded11 tools
verifiedversion not recorded11 tools
verifiedversion not recorded11 tools
verifiedversion not recorded11 tools
verifiedversion not recorded11 tools
verifiedversion not recorded11 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools