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
Findings (1)
- LOWin best_available
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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-httphttps://predictionmarketspicks.com/api/mcp-draft/mcp?via=registrystreamable-httpWhat it can do
Tool inventory
Tools (11)
🟢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
Evidence