Sports Betting Stats MCP
PYPI · SPORTS-BETTING-STATS-MCP · 2 COMPONENTS
Sports betting stats: sportsbook odds, player props, scores, xG, closing lines, horse racing.
Available components
Last scanned (18 hours ago)
Scores higher than 58% of PyPI servers
Category Finance and Payments
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security50
- Malware scan not yet available for this package.Unverified
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
- 1 of 28 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to GeminiGeorge22/sports-betting-stats-mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 0 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability53
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 7039 tokens (~879/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 8 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 9 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Nov 26 62
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Analysed pypi/sports-betting-stats-mcp@0.2.1
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | pypi |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | GeminiGeorge22/sports-betting-stats-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/GeminiGeorge22/sports-betting-stats-mcp/.github/workflows/pypi-publish.yml@refs/tags/python-v0.2.1 |
| Rekor log index | 3680827185 |
| Predicate type | PyPI publish attestation https://docs.pypi.org/attestations/publish/v1 |
| Subject digest | sha256:10b64d513a13d79898da241c6a23bfd299763870f6d43cbf9e8ee9c4412888e9 |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Dependencies 28 packages
| Packages resolved | 28 |
|---|---|
| No linked repository | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
congism--polymarket-kalshi-arb-finder Polymarket + Kalshi Arbitrage Finder ~503
Polymarket + Kalshi Arbitrage Finder. Scans both Polymarket and Kalshi for matching binary prediction markets and identifies price discrepancies where buying YES on one platform and NO on the other guarantees a risk-free profit. Returns ranked opportunities with trade details and return %. Now covers PredictIt too - see our Arb Scanner. When to use: Use when looking for price gaps between matching Polymarket and Kalshi binary markets. Returns: the run's dataset rows as structured JSON (one row per result), plus the run and dataset IDs for paging the full dataset. Behavior: starts one run of the Apify Actor "congism/polymarket-kalshi-arb-finder" through Apify's hosted MCP gateway (mcp.apify.com) with your own APIFY_TOKEN; the run uses your Apify account. Read-only: it only reads public web data and changes nothing on the source site. Docs: https://apify.com/congism/polymarket-kalshi-arb-finder
| Name | Type | Req | Description |
|---|---|---|---|
| kalshiEmail | string | – | Your Kalshi account email. Required to fetch Kalshi market prices. Without this, only Polymarket data is scanned. |
| kalshiPassword | string | – | Your Kalshi account password. Stored securely and only used to authenticate with the Kalshi API. |
| maxResults | integer | – | Maximum number of arb opportunities to return, sorted by return % descending. Default: 500. |
| minLiquidity | number | – | Only include markets with at least this much liquidity. Filters out thin markets where you can't fill a meaningful position. Default: 0. |
| minReturnPct | number | – | Minimum estimated profit % per dollar risked. Example: 1.0 = only show opportunities worth at least 1% return. Default: 0.5. |
| minSimilarity | number | – | Keyword similarity threshold (0–1) for matching markets across platforms. Higher = stricter matching, fewer but more accurate pairs. Default: 0.25. |
| minSpread | number | – | Minimum YES price difference between platforms to flag as an arb opportunity (0–1 scale). Example: 0.05 means at least 5 cents difference. Default: 0.02. |
| minVolume24h | number | – | Only include markets with at least this much 24-hour trading volume. Default: 0. |
No output schema declared.
No examples provided.
constructive_calm--understat-football-analytics Understat xG & Shot Data - Football Analytics ~967
Understat xG & Shot Data - Football Analytics. Scrapes Understat: player/team season aggregates, per-match xG/PPDA/win-probabilities, shot-level data with x/y coords + xG, situation/formation/game-state breakdowns, player career histories, and fixtures across the Big 5 + RFPL (2014–2025). Multi-season + multi-league in a single run. When to use: Use for expected goals (xG), shot maps, PPDA and player or team season stats in the Big 5 European leagues and RFPL. Returns: the run's dataset rows as structured JSON (one row per result), plus the run and dataset IDs for paging the full dataset. Behavior: starts one run of the Apify Actor "constructive_calm/understat-football-analytics" through Apify's hosted MCP gateway (mcp.apify.com) with your own APIFY_TOKEN; the run uses your Apify account. Read-only: it only reads public web data and changes nothing on the source site. Docs: https://apify.com/constructive_calm/understat-football-analytics
| Name | Type | Req | Description |
|---|---|---|---|
| dateEnd | string | – | Restrict league_players stats to matches on or before this date. Leave empty for none. |
| dateStart | string | – | Restrict league_players stats to matches on or after this date. Leave empty for none. |
| includeRawJson | boolean | – | When true, attach the original Understat record under `_raw` on every output row. Useful for power users / debugging. Default off — keeps the dataset light. |
| leagues | array | – | One or more of the six leagues Understat covers. Required for league_*, match_shots (when matchIds is empty), team_situations (when teams is empty), and fixtures. |
| matchIds | array | – | Specific match IDs to scrape directly (used by match_shots). When set, leagues/seasons are ignored. Find IDs in Understat URLs: /match/{ID}. |
| maxCostUsd | integer | – | Hard cap on the run's total billed amount. The actor estimates cost up-front and stops gracefully if the cap is hit mid-run. |
| maxResults | integer | – | Stop emitting after this many dataset rows. 0 = unlimited (subject to maxCostUsd). |
| minAppearances | integer | – | Drop player rows where games played is below this threshold (client-side filter). 0 = no filter. |
| mode | string | yes | What to scrape. 'league_players' returns per-player season aggregates (xG, xA, xGChain, xGBuildup, etc). 'league_teams' returns team season aggregates (W/D/L, xG, xGA, PPDA, points, xPoints). 'league… |
| nLastMatches | integer | – | Filter player stats to the last N matches. 0 = full season. Only applies to league_players mode. |
| playerIds | array | – | Player IDs for player_career mode. Find IDs in Understat URLs: /player/{ID}. Examples: 553 (Messi), 619 (Agüero), 1250 (Salah), 8260 (Haaland). |
| positions | array | – | Filter players by position. Only applies to league_players mode (uses Understat's filtered POST endpoint). |
| proxyConfiguration | object | – | Apify proxy. Understat does not block scrapers, but residential proxies help users behind corporate networks. Default = Apify residential. |
| seasons | array | – | List of season start years as integers — 2025 = the 2025/26 season. Understat history goes back to 2014. The current season becomes valid automatically once it kicks off in August. Invalid entries ar… |
| teams | array | – | Filter output to specific teams. Applies to league_players, league_teams, league_matches, fixtures, match_shots (league discovery) and team_situations. Names must match Understat's display names — e.… |
No output schema declared.
No examples provided.
hgservices--apify-actor-espn ESPN Sports Scores & Schedules - NBA, NFL, MLB, NHL, MLS, EPL.. ~1,096
ESPN Sports Scores & Schedules - NBA, NFL, MLB, NHL, MLS, EPL... Get live scores, schedules, and game results from ESPN — covering NBA, NFL, MLB, NHL, MLS, EPL, NCAA, and more. Find the next game of any team. No API key needed. Filter by team, date, or status. Empty results explain why. When to use: Use when you need scores, schedules or final results for NBA, NFL, MLB, NHL, MLS, EPL, NCAA and other leagues, or a team's next game. Returns: the run's dataset rows as structured JSON (one row per result), plus the run and dataset IDs for paging the full dataset. Behavior: starts one run of the Apify Actor "hgservices/apify-actor-espn" through Apify's hosted MCP gateway (mcp.apify.com) with your own APIFY_TOKEN; the run uses your Apify account. Read-only: it only reads public web data and changes nothing on the source site. Docs: https://apify.com/hgservices/apify-actor-espn
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | Date for 'single' date mode, as YYYYMMDD (or YYYY-MM-DD). |
| dateMode | string | yes | nextGames: the next games that are not over, from today - per league the next game day, or with 'teams' the next game of each team. Use it for 'when do they play next'. Many leagues skip days (NFL: m… |
| endDate | string | – | Last day for 'range' date mode, as YYYYMMDD (or YYYY-MM-DD). A range can be up to 366 days. A longer range is cut to 366 days, and the run reports this in a notice item. |
| gameStatus | array | – | pre = scheduled (not started), in = in progress, post = final (also postponed or canceled). Keep all three unless you need only one kind, for example ["post"] for results only. |
| homeAwayFilter | string | – | Only with teams: all games of those teams, only their home games, or only their away games. With dateMode nextGames, it finds the next home (or away) game. Options: all = All Games; home = Home Games… |
| includeNotices | boolean | – | When a run returns no games, or the Actor ignored or changed part of the input, write one item with type 'notice' at the start of the dataset. It says why (for example: no NFL games today, the next o… |
| leagues | array | yes | League codes: nba, wnba, ncaam (NCAA men's basketball), ncaaw (NCAA women's basketball), nfl, ncaaf (NCAA football), mlb, nhl, mls, epl (English Premier League), laliga, ucl (UEFA Champions League).… |
| liveOnly | boolean | – | Only games in progress at the moment of the run. Often empty: most games are in the evening (US time). For a schedule or scores, leave it false and read status.state of each game. |
| nationalTvOnly | boolean | – | Only games on a US national TV or streaming network (ESPN, ABC, TNT, FOX, NBC, CBS, Prime Video and others). |
| networkFilter | array | – | Only games on these networks, as ESPN names them (for example ESPN, TNT, ABC, Prime Video). Not case-sensitive. |
| startDate | string | – | First day for 'range' date mode, as YYYYMMDD (or YYYY-MM-DD). |
| startingWithinHours | integer | – | Only scheduled games that start in the next N hours (1-72). Games in progress and final games are kept. |
| teams | array | – | Only return games of these teams. Use an ESPN code (LAL, GS, NY, WSH), a common code (GSW, NYK, WAS, LAK) or a team name (Lakers, Golden State Warriors). An entry applies to every selected league. To… |
| timezone | string | – | IANA timezone (for example America/New_York, America/Los_Angeles, Europe/London). It sets what today, tomorrow and the other relative modes mean, and the time in dateLocal. Use the user's timezone. |
No output schema declared.
No examples provided.
jungle_synthesizer--equibase-us-horse-racing-scraper Equibase Horse Racing Scraper - US Race Entries & Results ~816
Equibase Horse Racing Scraper - US Race Entries & Results. Scrape US Thoroughbred horse racing data from Equibase.com — the official source for North American racing. Extract race entries (horses, jockeys, trainers, odds) and results (finish order, times, payouts) for any date and track. Ideal for handicappers and sports analytics. When to use: Use for US Thoroughbred race entries and results (horses, jockeys, trainers, morning-line odds, finish order, payouts) for a date and track. Returns: the run's dataset rows as structured JSON (one row per result), plus the run and dataset IDs for paging the full dataset. Behavior: starts one run of the Apify Actor "jungle_synthesizer/equibase-us-horse-racing-scraper" through Apify's hosted MCP gateway (mcp.apify.com) with your own APIFY_TOKEN; the run uses your Apify account. Read-only: it only reads public web data and changes nothing on the source site. Docs: https://apify.com/jungle_synthesizer/equibase-us-horse-racing-scraper
| Name | Type | Req | Description |
|---|---|---|---|
| dataMode | string | – | entries = race cards (horses, jockeys, trainers, odds); results = finish order + payouts; both = entries and results together (results only available for past races); late_changes = today's race-day… |
| filliesMaresOnly | boolean | – | Keep only races where every runner is a filly or mare. Off by default. Not used in late_changes mode. |
| includeHorseHistory | boolean | – | Adds one extra record per distinct horse in the saved races: every career start (track, date, race, finish, speed figure, race_id that joins to this actor's own race records) and the last 60 days of… |
| maxHorseProfiles | integer | – | Upper bound on horse-history records per run (only used when Include horse history is on). Horses are taken in card order. |
| maxItems | integer | – | Maximum number of records to return (each race = one record; in late_changes mode each change = one record). Default 50 samples several meetings; raise it (e.g. 500+) to collect EVERY track racing on… |
| raceDate | string | – | Date to scrape in MM/DD/YYYY format. Defaults to today. Use a recent past date to get completed results. Example: "" |
| raceTypes | array | – | Optional race-type filter, matched as case-insensitive text against each race's type. Example: claiming keeps Claiming, Maiden Claiming, Optional Claiming and Starter Optional Claiming races; maiden… |
| sp_contact | string | – | We'll personally help with your use case. No spam. Example: "Share your email here..." |
| sp_improvement_suggestions | string | – | Provide any feedback or suggestions for improvements. |
| sp_intended_usage | string | – | What will this data feed? E.g. lead lists, KYB checks, price tracking. |
| trackCodes | array | – | Optional list of track codes to filter (e.g. AQU, CD, SA, GP). Leave empty to scrape all tracks running on the selected date. Example: [] |
No output schema declared.
No examples provided.
publicrecords--sports-odds-api Sports Odds API: BetRivers, Unibet, Paf, Svenska Spel, ATG ~555
Sports Odds API: BetRivers, Unibet, Paf, Svenska Spel, ATG. Live odds from 24 Kambi-powered sportsbooks in one call: BetRivers (12 US states + Ontario), Unibet (7 countries), Paf, Svenska Spel and ATG. One row per game with every book's price and the best price per outcome. When to use: Use when you need current pre-match or live prices for a game or league from Kambi-powered books (BetRivers, Unibet, Paf, Svenska Spel, ATG) and want to compare books or find the best price per outcome. Not for DraftKings/FanDuel or historical odds. Returns: the run's dataset rows as structured JSON (one row per result), plus the run and dataset IDs for paging the full dataset. Behavior: starts one run of the Apify Actor "publicrecords/sports-odds-api" through Apify's hosted MCP gateway (mcp.apify.com) with your own APIFY_TOKEN; the run uses your Apify account. Read-only: it only reads public web data and changes nothing on the source site. Docs: https://apify.com/publicrecords/sports-odds-api
| Name | Type | Req | Description |
|---|---|---|---|
| includeLive | boolean | – | Include games already started (live prices at the moment of the run). |
| leagues | array | – | Kambi paths, sport or league level: "basketball/nba", "american_football/nfl", "ice_hockey/nhl", "baseball/mlb", "football/england/premier_league", or a whole sport such as "tennis". Unknown paths ar… |
| markets | string | – | "main" returns the headline markets per game. "all" returns each game's full board (often 300–500 markets) and is priced higher. Options: main = Main lines (moneyline, spread, total); all = Every mar… |
| maxEvents | integer | – | Soonest games first. |
| operators | array | – | Kambi-powered books to price. Each book is a separate brand/jurisdiction feed; prices can differ between them. The list contains only books verified open on the date in the README. |
| proxyConfiguration | object | – | On by default. Kambi limits how often one IP may ask; your run moves to a fresh Apify Proxy IP whenever it is slowed down. Turn off only to test without a proxy. |
| startsWithinHours | integer | – | 0 = no limit. Live games are kept when "Include in-play games" is on. |
No output schema declared.
No examples provided.
scrapemint--sports-odds-scraper Sports Odds Scraper: DraftKings, Pinnacle & Bovada ~851
Sports Odds Scraper: DraftKings, Pinnacle & Bovada. Sports betting odds from DraftKings, Pinnacle and Bovada on one line per game, with the best price per outcome and arbitrage. Moneyline, spread and totals for NFL, NBA, WNBA, MLB, NHL, UFC, college and soccer. American or decimal. Keyless, no login, no browser. When to use: Use when you need DraftKings, Pinnacle or Bovada moneyline, spread and total lines for US leagues, UFC or soccer, side by side with the best price per outcome. Returns: the run's dataset rows as structured JSON (one row per result), plus the run and dataset IDs for paging the full dataset. Behavior: starts one run of the Apify Actor "scrapemint/sports-odds-scraper" through Apify's hosted MCP gateway (mcp.apify.com) with your own APIFY_TOKEN; the run uses your Apify account. Read-only: it only reads public web data and changes nothing on the source site. Docs: https://apify.com/scrapemint/sports-odds-scraper
| Name | Type | Req | Description |
|---|---|---|---|
| books | array | – | No longer used, kept so older saved inputs keep working. Every run reads both available feeds: one bookmaker via ESPN's public scoreboard, typically DraftKings, plus Bovada's own prices. Setting this… |
| computeArbitrage | boolean | – | Flag two way and three way markets where the best prices across books guarantee a profit. Adds an arbitrage object per market when found. |
| computeBestPrice | boolean | – | Attach a bestPrice field per outcome with the highest odds and which book offers it, compared across the books that priced that outcome. Events carried by only one book are left alone. |
| concurrency | integer | – | No longer used (one request per sport now). Kept for compatibility. |
| dedupe | boolean | – | Skip event IDs already pushed in previous runs (keyed by sport + home + away + commenceTime). Turn off to refresh stale rows. |
| eventUrls | array | – | No longer supported (the sportsbook pages these pointed at block automated access). Use sports[] instead; URL entries return a free explanatory row. |
| includeStartedEvents | boolean | – | Include events already in progress. Off keeps the feed to upcoming events only. |
| lookAheadHours | integer | – | Only return events starting within this many hours from now. 0 means no time limit. |
| markets | array | – | Which betting markets to pull per event. |
| maxEventsPerSport | integer | – | Per league cap. Useful when scraping multiple leagues in one run. |
| minArbPct | number | – | Drop arbitrage opportunities below this edge. 0.5 means at least 0.5% guaranteed return. |
| minBestEdgePct | number | – | Filter best price flags to only those that beat the average price across books by this percent. |
| oddsFormat | string | – | How to express prices in the row. Options: american = American (-110 / +200); decimal = Decimal (1.91 / 3.00); fractional = Fractional (10/11 / 2/1); implied_probability = Implied probability (0.524… |
| proxyConfiguration | object | – | Not used: the odds source works from datacenter IPs without any proxy. Kept for compatibility with older saved inputs. |
| sports | array | – | Sports/leagues to sweep: nfl, ncaaf, nba, wnba, ncaab, mlb, nhl, ufc, soccer_epl, soccer_laliga, soccer_bundesliga, soccer_seriea, soccer_ligue1, soccer_mls, soccer_uefa_cl, soccer_uefa_el (or short… |
| totalMaxEvents | integer | – | Hard cap on event rows pushed per run. 0 means unlimited. |
No output schema declared.
No examples provided.
sports-odds-lab--football-odds-results Soccer & Football Betting Odds: Historical & Closing Lines ~1,514
Soccer & Football Betting Odds: Historical & Closing Lines. Soccer odds, football betting odds and football data API: Premier League, LaLiga, Serie A, Bundesliga, Champions League + 1,000 leagues. Up to 120 bookmakers: 1X2, over/under, BTTS, Asian handicap, opening & closing. Results, xG, shots, corners, scorers. History back to 2005. When to use: Use for soccer odds history, opening and closing lines, results and match stats (xG, shots, corners) going back to 2005, e.g. backtesting or closing-line value. Returns: the run's dataset rows as structured JSON (one row per result), plus the run and dataset IDs for paging the full dataset. Behavior: starts one run of the Apify Actor "sports-odds-lab/football-odds-results" through Apify's hosted MCP gateway (mcp.apify.com) with your own APIFY_TOKEN; the run uses your Apify account. Read-only: it only reads public web data and changes nothing on the source site. Docs: https://apify.com/sports-odds-lab/football-odds-results
| Name | Type | Req | Description |
|---|---|---|---|
| allBookmakers | boolean | – | Read the odds menus of ~55 countries instead of 10: up to about 120 bookmaker listings for a top-league match (default about 30) — Italian (SNAI, Sisal, Eurobet), French (Winamax, PMU, Unibet), Roman… |
| asianHandicapLines | string | – | The main line is the one whose consensus is closest to 50/50 (reported as ahLine; the opening main line as ahLineOpening). Options: main = Main line only; all = All lines. |
| bookmakers | array | – | Optional. Names or parts of names, e.g. bet365, Betano, SNAI, Winamax. Leave empty for every bookmaker in scope (about 30 listings, or up to about 120 with 'All bookmakers'). |
| competitions | array | – | Optional. 'Country: Competition' as shown on Flashscore, e.g. 'England: Premier League', 'Spain: LaLiga', 'Europe: Champions League'. Stages are included automatically ('Argentina: Liga Profesional'… |
| concurrency | integer | – | Advanced. Requests in parallel (1–192). The default 128 is about six times faster than 16, with the same odds coverage. |
| countries | array | – | Optional. Country or region names as shown on Flashscore, e.g. England, Spain, Brazil, Europe (UEFA club and national-team competitions), World (friendlies, FIFA). Leave empty for every country. |
| daysAhead | integer | – | How many upcoming days to include. Up to 7. Upcoming matches carry the current prices instead of closing lines. Values above 7 are clamped to 7. |
| daysBack | integer | – | How many past days to include (0 = today only). Up to 7. Values above 7 are clamped to 7. |
| includeEvents | boolean | – | Every goal with minute, scorer, assist and score after the goal; penalties (scored and missed), own goals, yellow and red cards. |
| includeOdds | boolean | – | Opening and latest (closing) odds per bookmaker plus the no-vig consensus. |
| includeStats | boolean | – | xG, xGOT, xA, possession, shots, big chances, corners, passes, fouls, cards and more for finished and live matches (full detail for major competitions). |
| includeWomen | boolean | – | Women's leagues, cups and national-team matches. |
| includeYouth | boolean | – | U17–U23, reserve, B-team and academy competitions. |
| incremental | boolean | – | For runs every few minutes: skip finished, live and cancelled matches whose score and status have not changed since an earlier run with the same settings, and upcoming matches whose prices, lines and… |
| incrementalName | string | – | Optional name for the incremental memory, to keep several schedules apart or start fresh (a new name = a new memory). Empty = one memory per combination of settings. |
| lastSeasons | integer | – | Used when Seasons is empty: the current season (matches played so far) plus this many minus one previous seasons. 5 = the current season and the four before it; 22 = the whole history since 2005/06 i… |
| leagues | array | – | 'Country: League' as shown on Flashscore — e.g. 'England: Premier League', 'Spain: LaLiga', 'Germany: Bundesliga', 'Brazil: Serie A', 'Europe: Champions League' — or the league's Flashscore URL. Ever… |
| markets | array | – | Full-time markets to collect. 1X2 is always included — it shows which bookmakers priced the match. |
| maxMatches | integer | – | Stop after saving this many matches (0 = no limit). A busy weekend day has 1,500+ matches; a full season of a top league 300–400. |
| mode | string | – | Recent matches: every competition from up to 7 days back to 7 days ahead (upcoming matches with current odds). Full seasons: complete seasons of the leagues you list below, history back to 2005 — add… |
| onlyWithOdds | boolean | – | Do not save (and do not pay for) matches that no bookmaker priced. About 1 in 5 matches, mostly amateur and youth football. |
| overUnderLines | array | – | Goal lines to return, e.g. 1.5, 2.5, 3.5. Enter 'all' for every line each bookmaker offers (0.5 to 6.5, quarter lines included). |
| seasons | array | – | Optional. Seasons as the league names them: 2024-2025 for autumn–spring leagues, 2024 for calendar-year leagues (MLS, Brazil, Scandinavia). Leave empty to use 'Last seasons'. Example: ["2024-2025"] |
| statuses | array | – | Finished includes matches decided after extra time or penalties and awarded results. In 'Full seasons' mode only finished (and postponed/cancelled) matches exist. |
No output schema declared.
No examples provided.
zen-studio--prizepicks-player-props PrizePicks Player Props Scraper - Real-Time Lines ~693
PrizePicks Player Props Scraper - Real-Time Lines. Extract real-time player prop lines from PrizePicks across 29 leagues. Get over/under lines, odds tiers, player stats, team matchups, and game schedules. NBA, MLB, NHL, Soccer, Tennis, and esports. Filter by league or player name. 51 fields per prop. JSON, CSV, Excel export. When to use: Use when the question is about player prop lines (over/under) on PrizePicks for a league, team or player. Returns: the run's dataset rows as structured JSON (one row per result), plus the run and dataset IDs for paging the full dataset. Behavior: starts one run of the Apify Actor "zen-studio/prizepicks-player-props" through Apify's hosted MCP gateway (mcp.apify.com) with your own APIFY_TOKEN; the run uses your Apify account. Read-only: it only reads public web data and changes nothing on the source site. Docs: https://apify.com/zen-studio/prizepicks-player-props
| Name | Type | Req | Description |
|---|---|---|---|
| extraLeagues | string | – | Type any league name exactly as it appears on PrizePicks (e.g. World Cup ), comma-separated. Use this for seasonal events not in the list above. Combined with your selection above. |
| feedback | string | – | For AI agents. Say what you needed and did not get: a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. Add it to any run, including one that work… |
| leagues | array | – | Select one or more leagues to fetch player props for. Choose All to get every available projection across all leagues. Don't see a league (e.g. a seasonal event)? Add it under Other leagues below, or… |
| listLeagues | boolean | – | Turn this on to output the leagues currently offering props and how many, then stop. Use it to see exactly what you can request. Ignores all other inputs. |
| oddsTiers | array | – | Filter by line difficulty. Standard is the normal line, Demon is harder with higher payout, Goblin is easier with lower payout. Select one or more. Leave empty to get all tiers. |
| playerNames | string | – | Comma-separated player names, case-insensitive. Matches partial names and handles accents (Jokic matches Jokić). Example: Jokic, Haaland, Ohtani . Leave empty to get all players. |
| statTypes | string | – | Comma-separated stat types, case-insensitive. Accepts full names or abbreviations. Example: Points, PRA, Rebounds, Goals, SOT . Stat types are league-specific — see README for the full list grouped b… |
| teams | string | – | Comma-separated team names or abbreviations, case-insensitive. Matches player's team or either side of the matchup. Example: Lakers, LAL, Celtics, BOS . Leave empty to get all teams. |
No output schema declared.
No examples provided.
How do I install the Sports Betting Stats MCP server?
Sports Betting Stats MCP runs locally as a PyPI package, launched with uvx sports-betting-stats-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · sports-betting-stats-mcp
claude mcp add geminigeorge22-sports-betting-stats-mcp -- uvx sports-betting-stats-mcp
What is the Sports Betting Stats MCP server?
Sports Betting Stats MCP is listed in the public MCP registry as io.github.GeminiGeorge22/sports-betting-stats-mcp. Sports betting stats: sportsbook odds, player props, scores, xG, closing lines, horse racing. This page covers its PyPI package (sports-betting-stats-mcp).
Is the Sports Betting Stats MCP server safe to use?
Sports Betting Stats MCP scores 62 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Sports Betting Stats MCP server expose?
Sports Betting Stats MCP exposes 8 tools: publicrecords--sports-odds-api, scrapemint--sports-odds-scraper, zen-studio--prizepicks-player-props, sports-odds-lab--football-odds-results, hgservices--apify-actor-espn, and 3 more. Their descriptions and schemas cost roughly 6,995 tokens of context every time the server is loaded.
Is the Sports Betting Stats MCP server still maintained?
Sports Betting Stats MCP is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Sports Betting Stats MCP server under?
Sports Betting Stats MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.