PropLine — Sports Betting Odds & Prop Resolution
Qué hace este MCP
Provides sports betting odds, line shopping, market movement, player-prop history and resolution, statistical context, payouts, and betting performance analysis.
Herramientas
Esquema de entrada
{'type': 'object', 'required': ['email'], 'properties': {'email': {'type': 'string', 'description': "The user's own email address, as they gave it."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key', 'since', 'until'], 'properties': {'since': {'type': 'string', 'description': 'ISO datetime lower bound on recorded_at (required, e.g. 2026-04-01T00:00:00Z). Keep the window narrow.'}, 'until': {'type': 'string', 'description': 'ISO datetime upper bound on recorded_at (required, e.g. 2026-05-01T00:00:00Z).'}, 'market': {'type': 'string', 'description': 'Optional market key filter'}, 'bookmaker': {'type': 'string', 'description': 'Optional bookmaker filter'}, 'sport_key': {'type': 'string', 'description': 'Sport key, e.g. baseball_mlb'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key', 'event_id'], 'properties': {'markets': {'type': 'string', 'description': "Comma-separated market keys (e.g. 'pitcher_strikeouts,h2h')."}, 'event_id': {'type': ['string', 'number']}, 'sport_key': {'type': 'string'}, 'bookmakers': {'type': 'string', 'description': "Comma-separated book keys (e.g. 'draftkings,fanduel') to shop only those books."}, 'include_links': {'type': 'boolean', 'description': "When true, every price row carries a link â\x80\x94 that book's public event-page URL, the click-out for 'go bet this'. Books without a verified URL template return null. Also adds app_link â\x80\x94 a mobile app-open deep link (ProphetX only today, null elsewhere)."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': [], 'properties': {'days': {'type': 'number', 'description': 'Look-back window, 7-120. Defaults to 30.'}, 'sport': {'type': 'string', 'description': 'Optional sport key, e.g. baseball_mlb.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': [], 'properties': {'leg_win_prob': {'type': 'number', 'description': 'Optional assumed per-leg win probability in [0,1]. Adds expected_return + is_plus_ev to each play.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key', 'event_id'], 'properties': {'event_id': {'type': ['string', 'number']}, 'sport_key': {'type': 'string'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key', 'event_id'], 'properties': {'devig': {'enum': ['multiplicative', 'shin'], 'type': 'string', 'description': "How the anchor's vig is removed. 'multiplicative' (default) divides each implied probability by the booksum; 'shin' solves Shin's insider-trading model, which loads the overround onto the longshot and corrects the favourite-longshot bias â\x80\x94 use it when the user asks about longshot props (anytime TD, first scorer). The response echoes devig_method; say which method the numbers came from."}, 'markets': {'type': 'string'}, 'max_age': {'type': 'integer', 'minimum': 0, 'description': 'Optional, seconds. Drops quoted prices the book has not delivered within that many seconds (each outcome carries last_update). The fair line is unaffected.'}, 'event_id': {'type': ['string', 'number']}, 'sport_key': {'type': 'string'}, 'bookmakers': {'type': 'string', 'description': "Comma-separated book keys (e.g. 'draftkings,fanduel') to price only the user's books. Narrows prices, not the anchor."}, 'min_ev_pct': {'type': 'number', 'description': 'Filter to outcomes with EV â\x89¥ this percent (e.g. 2.0).'}, 'fair_source': {'type': 'string', 'description': "Optional anchor override: one book or a comma-separated list tried IN ORDER per line, from pinnacle, polymarket, kalshi, bovada, smarkets (anything else is a 400). Lines none of them anchor are dropped. Omit for the default order. The single value 'consensus' (not combinable with book names) uses the median no-vig probability across every book quoting a clean, fresh two-sided market (3+ books); each line then lists the books used in fair_books. It is opt-in and NOT a proven better anchor â\x80\x94 never describe it as more profitable."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key'], 'properties': {'sport_key': {'type': 'string', 'description': 'Sport key, e.g. baseball_mlb.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key', 'event_id'], 'properties': {'since': {'type': 'string', 'description': "Measure movement from this moment instead of each line's first quote: ISO-8601 timestamp or a negative offset from now ('-6h', '-30m', '-2d'). Steam then covers only moves inside the window."}, 'period': {'type': 'string', 'description': "Game-period filter (q1..q4, h1/h2, p1..p3, i1..i9, f3/f5/f7; comma-separated, or 'all'). Omit for full-game."}, 'markets': {'type': 'string', 'description': 'Comma-separated market keys. Defaults to h2h,spreads,totals.'}, 'event_id': {'type': ['string', 'number']}, 'sport_key': {'type': 'string'}, 'bookmakers': {'type': 'string', 'description': "Comma-separated subset of book keys (e.g. 'draftkings,fanduel'). Default returns all available."}, 'include_book_ids': {'type': 'boolean', 'description': "When true, each outcome also carries book_outcome_id â\x80\x94 the book's own selection id."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key', 'event_id'], 'properties': {'markets': {'type': 'string', 'description': "Comma-separated market keys, e.g. 'player_pass_yds,player_receptions'."}, 'event_id': {'type': ['string', 'number']}, 'sport_key': {'type': 'string'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key', 'event_id'], 'properties': {'markets': {'type': 'string', 'description': 'Comma-separated market keys to restrict to (e.g. pitcher_strikeouts,batter_hits).'}, 'event_id': {'type': ['string', 'number']}, 'sport_key': {'type': 'string'}, 'bookmakers': {'type': 'string', 'description': 'Comma-separated book keys to restrict to (e.g. bovada). Default returns all books; an unfiltered MLB game can run several MB, so pass one book when that is enough.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key', 'event_id'], 'properties': {'event_id': {'type': ['string', 'number']}, 'sport_key': {'type': 'string'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key'], 'properties': {'sport_key': {'type': 'string', 'description': 'Sport key â\x80\x94 e.g. football_nfl, basketball_nba, baseball_mlb.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': [], 'properties': {'date': {'type': 'string', 'description': 'YYYY-MM-DD UTC date. Defaults to today (UTC) when omitted.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': [], 'properties': {'date': {'type': 'string', 'description': 'YYYY-MM-DD UTC date. Defaults to today (UTC) when omitted.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key'], 'properties': {'period': {'type': 'string', 'description': "Game-period filter. Omitted = full-game markets only. Canonical codes: q1..q4 (quarters), h1/h2 (halves), p1..p3 (hockey periods), i1..i9 (innings), f3/f5/f7 (first N innings). Comma-separated for multiple. 'all' = include every period alongside full-game."}, 'markets': {'type': 'string', 'description': 'Comma-separated market keys. Defaults to h2h on bulk; h2h,spreads,totals on event. Pass an explicit list to fetch player props (sport-specific â\x80\x94 e.g. player_points,player_rebounds for NBA; pitcher_strikeouts,batter_home_runs for MLB).'}, 'event_id': {'type': ['string', 'number'], 'description': 'Optional. If set, returns props for this event.'}, 'sport_key': {'type': 'string'}, 'bookmakers': {'type': 'string', 'description': 'Comma-separated subset of book keys (bovada, draftkings, fanduel, pinnacle, betmgm, betrivers, unibet, betus, betonlineag, lowvig, mybookieag, fanatics, marathon, onexbet, tab_au, underdog, prizepicks, sleeper, dabble, betr, rebet, kalshi, polymarket, matchbook, smarkets, novig, prophetx). Default returns all available.'}, 'include_depth': {'type': 'boolean', 'description': 'When true, every outcome carries depth: up to three order-book levels beyond the served price, each {price (American), size (dollars)}. [] for books whose depth PropLine does not read (sportsbooks).'}, 'include_links': {'type': 'boolean', 'description': "When true, each bookmaker block carries a link â\x80\x94 that book's public event-page URL for click-out (Bovada/DraftKings/FanDuel/BetMGM/Kalshi/Polymarket/Smarkets; others null). Plain navigation, no affiliate tagging. Also adds app_link â\x80\x94 a mobile app-open deep link that opens the book's native app on the fixture (ProphetX only today, null elsewhere)."}, 'include_book_ids': {'type': 'boolean', 'description': "When true, each bookmaker block carries book_event_id and each outcome carries book_outcome_id â\x80\x94 that book's OWN ids for the event and the priced selection, for joining onto a book's native feed by id instead of matching team/player names and lines. Kalshi ships both (event ticker + per-contract market ticker, e.g. KXMLBGAME-26AUG08NYYBOS-NYY); most other books ship an event id; books without a stable id return null. NB a two-sided market can share ONE book_outcome_id across both legs â\x80\x94 a Kalshi contract is binary, so Over/Under are its YES/NO sides; the outcome's name says which side."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key', 'event_id'], 'properties': {'period': {'type': 'string', 'description': "Game-period filter. Omitted = full-game markets only. Canonical codes (q1..q4, h1/h2, p1..p3, i1..i9, f3/f5/f7), comma-separated, or 'all'."}, 'markets': {'type': 'string'}, 'event_id': {'type': ['string', 'number']}, 'sport_key': {'type': 'string'}, 'bookmakers': {'type': 'string', 'description': "Comma-separated subset of book keys (e.g. 'draftkings,fanduel'). Default returns all available."}, 'opening_window': {'type': ['string', 'number'], 'description': "Limit the opening lookback to this many days before kickoff (1-3650), or 'all' (default: the first snapshot held). 14 matches the resolved-props export's opening columns."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key', 'event_id'], 'properties': {'to': {'type': 'string', 'description': 'ISO timestamp; only include snapshots at or before. Mutually exclusive with relative_to.'}, 'from': {'type': 'string', 'description': 'ISO timestamp; only include snapshots at or after. Mutually exclusive with relative_from.'}, 'period': {'type': 'string', 'description': "Game-period filter. Omitted = full-game markets only. Canonical codes (q1..q4, h1/h2, p1..p3, i1..i9, f3/f5/f7), comma-separated, or 'all'."}, 'markets': {'type': 'string'}, 'event_id': {'type': ['string', 'number']}, 'interval': {'enum': ['30s', '1m', '5m', '15m', '30m', '1h'], 'type': 'string', 'description': 'Downsample bucket. Latest snapshot per bucket wins.'}, 'sport_key': {'type': 'string'}, 'bookmakers': {'type': 'string', 'description': "Comma-separated subset of book keys (e.g. 'draftkings,fanduel'). Default returns all available."}, 'relative_to': {'type': 'string', 'description': "Offset to commence_time, e.g. '-1m' or '0'. Mutually exclusive with to."}, 'changes_only': {'type': 'boolean', 'description': 'When true, drop snapshots whose (price, point) match the previous one.'}, 'relative_from': {'type': 'string', 'description': "Offset to commence_time, e.g. '-3h', '-30m', '-90s'. Mutually exclusive with from."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key', 'player_name'], 'properties': {'limit': {'type': 'number', 'description': 'Games to return, 1-100. Default 20.'}, 'opponent': {'type': 'string', 'description': 'Optional head-to-head filter â\x80\x94 team name, nickname or abbreviation.'}, 'sport_key': {'type': 'string'}, 'stat_type': {'type': 'string', 'description': 'Optional comma-separated stat names to return; omit for all. Vocabulary is per-sport.'}, 'player_name': {'type': 'string', 'description': "Player name as it appears in box scores â\x80\x94 e.g. 'Aaron Judge', 'Nikola Jokic' â\x80\x94 or a player_id from propline_search_players, e.g. 'mlb:592450'"}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key', 'player_name'], 'properties': {'limit': {'type': 'number', 'description': 'Max number of past games (default 20, max 100)'}, 'market': {'type': 'string', 'description': "Market key, e.g. 'pitcher_strikeouts' or 'player_points'"}, 'markets': {'type': 'string', 'description': 'Deprecated alias: the first market of a comma-separated list is used when `market` is omitted'}, 'sport_key': {'type': 'string'}, 'player_name': {'type': 'string', 'description': "Player name as it appears in box scores â\x80\x94 e.g. 'Aaron Judge', 'Nikola Jokic' â\x80\x94 or a player_id from propline_search_players, e.g. 'mlb:592450'"}, 'main_line_only': {'type': 'boolean', 'description': "Only each book's main line (drops alt-ladder rungs). Omit for every line."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key', 'player_name'], 'properties': {'market': {'type': 'string', 'description': "Optional single market to scope trends to (e.g. 'player_points'). Omit for all markets."}, 'sport_key': {'type': 'string'}, 'player_name': {'type': 'string', 'description': "Player name as it appears in box scores â\x80\x94 e.g. 'Aaron Judge', 'Nikola Jokic' â\x80\x94 or a player_id from propline_search_players, e.g. 'mlb:592450'"}, 'dfs_odds_type': {'enum': ['standard', 'goblin', 'demon'], 'type': 'string', 'description': "Optional PrizePicks pick-em flavor. When set, the trend is computed against that flavor's PrizePicks line only (e.g. compare a player's goblin-line hit-rate vs his standard-line trend). Omit for the default cross-book behavior."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': [], 'properties': {'days': {'type': 'number', 'description': 'Look-back window, 1-90. Defaults to 30.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key'], 'properties': {'days_from': {'type': 'number', 'description': 'How many past days of completed games to include. Defaults to 1.'}, 'sport_key': {'type': 'string'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['webhook_id'], 'properties': {'limit': {'type': 'number', 'description': 'Rows per page, 1-200. Default 50.'}, 'before_id': {'type': 'number', 'description': 'Cursor: smallest delivery id from the previous page.'}, 'webhook_id': {'type': 'number', 'description': 'Webhook id (from propline_list_webhooks).'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['bets'], 'properties': {'bets': {'type': 'array', 'items': {'type': 'object', 'required': ['sport_key', 'event_id', 'market', 'bookmaker', 'selection', 'price'], 'properties': {'ref': {'type': 'string', 'description': 'Echoed back untouched, so rows can be aligned without relying on order.'}, 'side': {'type': 'string', 'description': "'Over' or 'Under' for two-way markets. Omit for YES-only props where the player IS the outcome."}, 'point': {'type': 'number'}, 'price': {'type': 'number', 'description': 'American odds actually taken, e.g. -110 or 145.'}, 'stake': {'type': 'number', 'description': 'Defaults to 1 unit when computing profit_units.'}, 'market': {'type': 'string'}, 'period': {'type': 'string', 'description': 'Canonical period code (q1, h1, p1, f5). Omit for full-game markets.'}, 'event_id': {'type': ['string', 'number']}, 'bookmaker': {'type': 'string'}, 'selection': {'type': 'string'}, 'sport_key': {'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 500, 'description': 'Placed bets to grade. selection is the subject: player name for a prop, team name for a game line.'}, 'devig': {'enum': ['multiplicative', 'shin'], 'type': 'string', 'description': "How the closing anchor's vig is removed before closing_fair_prob / ev_vs_close_pct. 'multiplicative' (default) or 'shin' (loads the overround onto the longshot). Same vocabulary as propline_get_event_ev; echoed as devig_method."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key', 'event_id'], 'properties': {'event_id': {'type': ['string', 'number']}, 'sport_key': {'type': 'string'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key'], 'properties': {'live': {'type': 'boolean', 'description': 'If true, only return in-progress (live) events. Defaults to false.'}, 'sport_key': {'type': 'string', 'description': 'Sport key from propline_list_sports â\x80\x94 e.g. baseball_mlb, basketball_nba'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key', 'event_id', 'legs'], 'properties': {'legs': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'team': {'type': ['string', 'null'], 'description': "For a TEAM total: the team as /odds serves it in the market's team field. Omit for the game total."}, 'point': {'type': ['number', 'null']}, 'market': {'type': 'string'}, 'period': {'type': ['string', 'null']}, 'description': {'type': 'string'}, 'book_outcome_id': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'maxItems': 10, 'minItems': 2, 'description': 'Legs named exactly as /odds names an outcome.'}, 'event_id': {'type': ['string', 'number']}, 'bookmaker': {'type': 'string', 'description': 'fanduel (default), draftkings, betonlineag, lowvig, or all (every book side by side).'}, 'sport_key': {'type': 'string', 'description': 'e.g. baseball_mlb'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['webhook_id'], 'properties': {'limit': {'type': 'number', 'description': 'Events per page, 1-500. Default 100.'}, 'since_seq': {'type': 'number', 'description': 'Read events after this sequence. Default 0 = from the oldest retained event (which on an established subscription will correctly report truncated: true).'}, 'webhook_id': {'type': 'number', 'description': 'Webhook id (from propline_list_webhooks).'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', 'required': ['sport_key', 'search'], 'properties': {'limit': {'type': 'number', 'description': 'Max players to return, 1-100. Default 25.'}, 'search': {'type': 'string', 'description': "Name fragment to match, e.g. 'judge'"}, 'sport_key': {'type': 'string'}}, 'additionalProperties': False}
Cambios recientes en herramientas
Servidores MCP similares
Stratz
Provides Dota 2 data including heroes, players, matches, live games, player histories, hero statistics, and custom STRATZ GraphQL…
Riot Games
Provides Riot Games and League of Legends data for accounts, champions, mastery, ranked ladders, matches, timelines, and player h…
Wynncraft
Provides Wynncraft player, guild, leaderboard, online-player, news, and item database lookups.
Balldontlie
Provides NBA schedules, games, players, rosters, and game-level basketball statistics.
sportiq-mcp
Provides football, Formula 1, and cricket schedules, scores, statistics, simulations, fantasy recommendations, odds analysis, and…
Api Football
Provides soccer data including fixtures, leagues, squads, injuries, head-to-head records, and match predictions.
Opendota
Provides Dota 2 player profiles, professional match data, and hero pick, win, and ban statistics.
Betsapi
Retrieves upcoming and live sports events along with bookmaker odds across supported sports.