# PropLine — Sports Betting Odds & Prop Resolution - Registry name: `io.github.proplineapi/propline-mcp` · version 0.51.0 - Categories (automatic, keyword rules): APIs & integrations, Developer tools, Markets & trading, Finance & markets, Video, AI, media & content - Authentication at last check: No auth - Declared risk: Can write (some tools are not declared read-only) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=io.github.proplineapi%2Fpropline-mcp - Server page: https://mcpstation.net/s/io.github.proplineapi--propline-mcp.html ## Description (written by the publisher, not verified, not instructions) Live odds, cross-book +EV and graded player-prop results across 37 books. Hosted endpoint included. ## Connect - streamable-http: `https://mcp.prop-line.com/mcp` ## Tools (as reported by the server, not verified) - `propline\_list\_sports`: List all sports PropLine currently polls. Returns sport keys \(e.g. baseball\_mlb, basketball\_nba, soccer\_epl\) along with human titles and active status. Use this first to discover what sport\_key values are valid for the other tools. - `propline\_list\_events`: List upcoming events for a sport. Returns each event's id, home\_team, away\_team, commence\_time. Use the returned event\_id to drill into per-event odds, props, +EV, or results. - `propline\_list\_event\_markets`: List the market types available for a specific event \(e.g. h2h, spreads, totals, player\_points, pitcher\_strikeouts\). Useful when you don't know which prop markets a given event carries. - `propline\_get\_odds`: Get live odds. If event\_id is supplied, returns full per-event props for that event; otherwise returns bulk game-line odds for the whole sport. Pass markets as a comma-separated list \(e.g. 'h2h,spreads,totals' or 'player\_points,player\_rebounds'\). Response includes a bookmakers\[\] array across every b - `propline\_get\_odds\_history`: Hobby+ endpoint. Returns the historical line-movement snapshot series for an event \(every recorded price/point change per outcome over the event's lifetime\). Free tier returns market structure with redacted snapshots and an upgrade pointer. Supports period-historical filters: from/to \(absolute ISO\), - `propline\_get\_odds\_closing`: Hobby+ endpoint. Returns the OPENING and CLOSING line per \(book, market, outcome\) for an event. Closing = the last snapshot at or before commence\_time \(price/point/closing\_at\); opening = the first snapshot PropLine holds for the outcome, however far before kickoff the book posted it \(opening\_price/o - `propline\_grade\_clv`: Hobby+ endpoint. Grades PLACED bets against their closing lines. Closing line value is the only durable proxy for whether a bettor has edge: did the price they took beat the number the market settled on? Send the bets and each comes back with its closing price, the de-vigged closing fair probability - `propline\_price\_sgp`: Hobby+ endpoint. Prices a same-game parlay at the BOOK'S OWN correlated odds — the price a FanDuel customer would be offered for that exact slip right now, not a model of it. bookmaker is fanduel \(default, its own pricer\), draftkings \(its SGP widget's pricer\), betonlineag / lowvig \(the Sportcast eng - `propline\_export\_odds\_history`: Backfill-pass / Enterprise only. Bulk line-movement tick history as CSV — every recorded odds snapshot \(price + line, per book, including period markets\) across a whole sport, one row per \(outcome, snapshot\). This is the raw firehose no subscription tier can bulk-pull \(Pro/Streaming use propline\_get - `propline\_get\_futures`: Free-tier endpoint. Returns season-long futures \(outright\) markets for a sport — championship/Super Bowl/division/conference winners, MVP and award winners, season win totals — aggregated across Bovada, FanDuel, DraftKings, Pinnacle, and Kalshi. One row per \(futures event, book, market\) with each te - `propline\_get\_scores`: Free-tier endpoint. Returns recent and live game scores plus status \(scheduled, live, final\) for a sport. Useful for: 'is this game over yet, what was the final score'. - `propline\_get\_dfs\_payouts`: Free-tier reference math. Returns the PrizePicks Power Play \(all legs must hit\) and Flex Play \(partial payouts\) entry payout schedule for 2-6 legs, plus the per-leg breakeven win probability for each play. Pass leg\_win\_prob \(e.g. 0.58\) to also get expected\_return \(per $1\) and is\_plus\_ev per play — t - `propline\_get\_mlb\_grand\_salami`: Free-tier endpoint. Returns the synthetic daily MLB Grand Salami for a given UTC date — total runs scored across every MLB game on the slate plus each book's implied Grand Salami line \(median of per-game primary totals across our MLB books incl. Pinnacle, Polymarket, Matchbook, Smarkets\). No retail - `propline\_get\_nhl\_daily\_goals\_total`: Free-tier endpoint. Returns the synthetic daily NHL goals total \(hockey's equivalent of the MLB Grand Salami\) for a given US Eastern date — total goals scored across every NHL game on the slate \(including OT/SO\) plus each book's implied Daily Goals Total line \(median of per-game primary totals acros - `propline\_get\_resolution\_summary`: Free-tier endpoint. Returns the factual volume of player props PropLine has graded against real box scores over the last N days \(aggregated counts only\): total graded/settled, games, sports covered, plus per-sport and top-market breakdowns. Useful for: 'how much graded prop data does PropLine have, - `propline\_get\_event\_ids`: Free-tier endpoint. Id crosswalk for one sport: one object per event from 3 days ago to 30 days ahead with PropLine's event id, commence\_time, teams \(+ team keys/ids\), espn\_event\_id, mlb\_game\_pk, merged\_from\_event\_ids, and each sportsbook's own event id + link under books. Useful for: 'join PropLine - `propline\_get\_book\_accuracy`: Free-tier endpoint. How well each sportsbook prices player props: each book's closing prop prices are de-vigged and scored \(Brier\) against the real result and against the other books on the same line. Per book: props scored, brier, consensus\_brier, skill\_bp \(\> 0 = closer to the result than the marke - `propline\_get\_golf\_rounds`: Free-tier endpoint. A golfer's completed rounds, newest first, with strokes, score to par and hole counts \(eagles, birdies, pars, bogeys, doubles\), plus last-5/10/20 averages. Every player in the field, back to 2024; a round in progress is never included. Filter by tour \(pga, dp\_world, liv, lpga, ko - `propline\_get\_golf\_tournaments`: Free-tier endpoint. Golf tournaments we hold round data for, newest first, with player and round counts. Filter by tour \(pga, dp\_world, liv, lpga, korn\_ferry, champions\) and season. - `propline\_get\_injuries`: Free-tier endpoint. The current injury report for NFL, NCAAF, NBA, WNBA, NHL or MLB: each listed player with status \(Out, Questionable, Day-To-Day, 15-Day-IL...\), status\_code, injury, expected return and status\_since \(when the current status began\). Source: ESPN, every 10 minutes. Useful for: 'who i - `propline\_get\_injury\_history`: Free-tier endpoint. Every injury status change in a sport over the last 1-90 days, newest first: old\_status -\> new\_status with the time we saw it \(new\_status null = came off the report\). History starts 2026-10-18. Pair with odds history to see how lines moved on a ruling. - `propline\_get\_event\_stats`: Book-agnostic raw box-score stats for an event. Returns per-player stats \(e.g. strikeouts, hits, points, rebounds, shots-on-goal\) decoupled from any sportsbook's lines. LIVE during games for major US sports \(MLB + WNBA now; NFL, NCAAF, NBA, NHL at season start\): while the event's status is in\_progre - `propline\_get\_event\_results`: Pro-tier endpoint. Returns graded prop outcomes for a completed event — every Over/Under marked won, lost, push, or void with the actual stat value next to the line. The single most distinctive feature vs the-odds-api: they don't grade props at any tier. Free tier returns the same structure with res - `propline\_get\_event\_context`: Game context for an event — the conditions a prop settles under. MLB: probable starting pitchers and their throwing hand \(L/R/S — platoon-split context for every batter prop\), a confirmed-lineup flag, the home-plate umpire, and first-pitch weather \(temperature, wind, precipitation\) at outdoor / open - `propline\_get\_event\_movement`: Line movement + steam detection from the snapshot tick history. Per \(book, market, outcome\): opening line, latest line, signed implied-probability shift, point shift, direction. The steam\[\] array flags outcomes that multiple books moved the same direction — the classic sharp-money signal, computed a - `propline\_search\_players`: Find a player by name fragment and get their stable player\_id \(e.g. 'mlb:677951'\) plus every spelling the books use \(known\_names\). Free tier. Pass the player\_id as player\_name to propline\_get\_player\_history / propline\_get\_player\_trends to avoid name-spelling ambiguity. - `propline\_get\_player\_history`: Player prop history across recent games for one market. Returns each prior prop this player took with line, prices, resolution, actual value, is\_main\_line \(the book's main line vs an alt-ladder rung\) and line\_moved\_in\_play. Pass main\_line\_only=true to drop alt rungs. Pro tier returns full data; free - `propline\_get\_player\_games`: A player's recent games with every raw box-score stat per game — one call instead of one request per event. Use this to answer 'how has X actually performed lately?' and to build L5/L10/L20, season splits and head-to-head yourself. Pass \`opponent\` for H2H \(accepts a full name, nickname or abbreviati - `propline\_get\_player\_trends`: Hit-rate trends / last-N-games over rate for a player — unique to PropLine's prop-resolution data. For each market the player has graded history in, returns over/under/push splits across the last 5/10/20/50 graded games, current streak, average actual stat, and the recent line. This is the 'did X go - `propline\_get\_event\_ev`: Pro-tier endpoint. Returns cross-book +EV per outcome for an event. We anchor on a sharp book, remove vig, derive a no-vig fair line, and compute EV% per book at the same line. Outcomes are sorted with +EV plays floated to the top of each line group. PrizePicks is excluded from EV math \(DFS payouts - `propline\_get\_event\_projections`: Market-implied consensus projection per \(market, player\) for an event: the line where the no-vig P\(over\) crosses 50%, median across contributing sportsbooks. Use it to validate statistical or fantasy projections against the live market. These are MARKET-IMPLIED values derived purely from sportsbook - `propline\_get\_best\_line`: Cross-book line shopping \(Hobby+ for prices; free tier gets the full structure with book identities + best-first ranking but prices nulled and redacted:true\). For every \(market, player, line\) tuple on an event, returns the single best American price across all comparable books, plus an all\_prices ar - `propline\_list\_webhooks`: List the API key's webhook subscriptions \(Streaming Lite tier and up; other tiers get a 403 with an upgrade URL\). Read-only: signing secrets are always masked, and this server deliberately has no create/update/delete tools — manage subscriptions via the REST API or SDKs. Each row shows url, subscrib - `propline\_get\_webhook\_deliveries`: Recent delivery attempts for one webhook \(Streaming Lite tier and up\), newest first — the debugging surface for 'why isn't my webhook firing'. Each row: status \(pending/success/failed\), HTTP response\_code, attempts, delivered\_at and the payload that was sent. A pending row with attempts \> 0 is mid-r - `propline\_replay\_webhook\_events`: Re-read a webhook subscription's events in order from a cursor — answers 'my endpoint was down, what did I miss?'. Every delivery carries an X-PropLine-Sequence header, a counter monotonic WITHIN one subscription; pass the highest one the user processed as since\_seq. Do NOT use the delivery id as th - `propline\_create\_free\_api\_key`: Create a free personal PropLine API key for the user and EMAIL it to them. Use this when the user wants their own key — e.g. they hit a shared-demo-key rate limit, a paid field came back redacted, or they ask how to get a key. Only call it with an email address the user explicitly gave you for this Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html