PropLine — Sports Betting Odds & Prop Resolution
NPM · PROPLINE-MCP · SCANNED AUG 3
Live sports betting odds, cross-book +EV, and graded player-prop resolution across 16 books.
Available components
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 →
Supply Chain Security86
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to proplineapi/propline-mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 14 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability65
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3745 tokens (~178/item across 21 items; 21 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 Coverage87
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 61% of tool parameters carry a description.Partial
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 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.
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · propline-mcp
claude mcp add proplineapi-propline-mcp -- npx -y propline-mcp
codex mcp add proplineapi-propline-mcp -- npx -y propline-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"proplineapi-propline-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"propline-mcp"
],
"enabled": true
}
}
} openclaw mcp add proplineapi-propline-mcp --command npx --arg -y --arg propline-mcp
mcp_servers:
proplineapi-propline-mcp:
command: "npx"
args: ["-y", "propline-mcp"] {
"mcpServers": {
"proplineapi-propline-mcp": {
"command": "npx",
"args": [
"-y",
"propline-mcp"
]
}
}
} 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.
- 2 Aug 26 +65
- Provenance: unverified → pass ▲ security
- Install scripts: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Malware scan: unverified → pass ▲ security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- The attested source repository moved: proplineapi/propline-mcp security
- Dependency health: partial → unverified ▼ functional
- MCP protocol: unverified → pass ▲ functional
- Maintenance: unverified → pass ▲ functional
- License: unverified → pass ▲ functional
- Schema quality: unverified → excellent ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- Licence: MIT functional
- 1 Aug 26 −15
- Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
- Tool coverage: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- Dependency health: unverified → partial ▲ functional
- First check of Schema quality: unverified functional
- 31 Jul 26 −2
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −18
- Malware scan: pass → unverified ▼ security
- 27 Jul 26 42
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 3 Aug 2026 · Analysed npm/[email protected]
Provenance verified
Ecosystem: npm · Outcome: verified
Reason: verified
- Source repo:
- proplineapi/propline-mcp
- Certificate issuer:
- https://token.actions.githubusercontent.com
- Certificate SAN:
- https://github.com/proplineapi/propline-mcp/.github/workflows/publish.yml@refs/tags/v0.17.1
- Rekor log index:
- 2202929974
- Predicate type:
- https://slsa.dev/provenance/v1
- Subject digest:
- sha512:de57cede1ef62c0e5c536270c1dea42f365d8ec3858a4611699cc3a9590606bf571e941fd254704b0fa274014bf93867ae5327f43964e7bbb9ac4ef28
- Discovery method:
- attestation_endpoint
Dependencies 94 packages
94 packages in the resolved dependency tree · 94 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
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.
propline_export_odds_history ~274
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_odds_history per event instead). REQUIRES a since/until window to keep the pull bounded — the full archive runs to gigabytes per sport. The result is capped to the first 200 rows for context safety; for the full dataset use the /v1/exports/odds-history endpoint directly with curl/SDK and stream to disk. Non-entitled keys get a 403 with an upgrade pointer.
| Name | Type | Req | Description |
|---|---|---|---|
| bookmaker | string | — | Optional bookmaker filter |
| market | string | — | Optional market key filter |
| since | string | yes | ISO datetime lower bound on recorded_at (required, e.g. 2026-04-01T00:00:00Z). Keep the window narrow. |
| sport_key | string | yes | Sport key, e.g. baseball_mlb |
| until | string | yes | ISO datetime upper bound on recorded_at (required, e.g. 2026-05-01T00:00:00Z). |
No output schema declared.
No examples provided.
propline_get_best_line ~233
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 array sorted best-first (one row per book, each with last_update). Companion to propline_get_event_ev: /ev says whether a price beats the no-vig fair line; best-line says which book pays the most. DFS pick'em books (PrizePicks, Sleeper, Dabble) are excluded; Underdog only at clean two-way lines. Optional bookmakers filter to shop only the books the user holds accounts at.
| Name | Type | Req | Description |
|---|---|---|---|
| bookmakers | string | — | Comma-separated book keys (e.g. 'draftkings,fanduel') to shop only those books. |
| event_id | string|number | yes | — |
| markets | string | — | Comma-separated market keys (e.g. 'pitcher_strikeouts,h2h'). |
| sport_key | string | yes | — |
No output schema declared.
No examples provided.
propline_get_dfs_payouts ~204
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 — the slip-level breakeven. Useful for: 'what hit rate do I need to beat a 4-pick PrizePicks Power play', 'is a 3-leg flex +EV at 60% per leg'. NOTE: standard published payouts only — demon/goblin per-pick modifiers aren't in PrizePicks's feed (see the disclaimer field); breakeven assumes independent legs.
| Name | Type | Req | Description |
|---|---|---|---|
| leg_win_prob | number | — | Optional assumed per-leg win probability in [0,1]. Adds expected_return + is_plus_ev to each play. |
No output schema declared.
No examples provided.
propline_get_event_context ~157
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-roof venues (indoor venues return weather=null). NFL & NCAAF: the venue and kickoff weather. The same block is embedded in get_event_results, so every graded prop carries its conditions — unique to PropLine. Free tier. 404 when no context is on file for the event yet.
| Name | Type | Req | Description |
|---|---|---|---|
| event_id | string|number | yes | — |
| sport_key | string | yes | — |
No output schema declared.
No examples provided.
propline_get_event_ev ~141
Pro-tier endpoint. Returns cross-book +EV per outcome for an event. We anchor on Pinnacle's sharp line, 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 aren't comparable to per-book prices).
| Name | Type | Req | Description |
|---|---|---|---|
| event_id | string|number | yes | — |
| markets | string | — | — |
| min_ev_pct | number | — | Filter to outcomes with EV ≥ this percent (e.g. 2.0). |
| sport_key | string | yes | — |
No output schema declared.
No examples provided.
propline_get_event_movement ~252
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 across all 16 books PropLine polls. When a book moves the line itself, that outcome's prob_shift is null and direction is 'line_moved' (excluded from the steam signal). No pull-only odds API can produce this. Hobby+ full; free tier redacted.
| Name | Type | Req | Description |
|---|---|---|---|
| bookmakers | string | — | Comma-separated subset of book keys (e.g. 'draftkings,fanduel'). Default returns all available. |
| event_id | string|number | yes | — |
| markets | string | — | Comma-separated market keys. Defaults to h2h,spreads,totals. |
| period | string | — | Game-period filter (q1..q4, h1/h2, p1..p3, i1..i9, f3/f5/f7; comma-separated, or 'all'). Omit for full-game. |
| sport_key | string | yes | — |
No output schema declared.
No examples provided.
propline_get_event_results ~103
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 resolution and actual_value redacted plus an upgrade pointer.
| Name | Type | Req | Description |
|---|---|---|---|
| event_id | string|number | yes | — |
| sport_key | string | yes | — |
No output schema declared.
No examples provided.
propline_get_event_stats ~76
Book-agnostic raw box-score stats for a completed event. Returns per-player stats (e.g. strikeouts, hits, points, rebounds, shots-on-goal) decoupled from any sportsbook's lines. Free tier.
| Name | Type | Req | Description |
|---|---|---|---|
| event_id | string|number | yes | — |
| sport_key | string | yes | — |
No output schema declared.
No examples provided.
propline_get_futures ~170
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, and Pinnacle. One row per (futures event, book, market) with each team/player outcome and its price. Marquee markets (Super Bowl winner, MVP, division/conference) are quoted by multiple books for comparison; exotic markets are often single-book. Useful for: 'who are the Super Bowl favorites across books', 'NFL MVP odds', 'NBA championship futures'. Futures are unresolved (no settlement grade).
| Name | Type | Req | Description |
|---|---|---|---|
| sport_key | string | yes | Sport key — e.g. football_nfl, basketball_nba, baseball_mlb. |
No output schema declared.
No examples provided.
propline_get_mlb_grand_salami ~147
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 sportsbook quotes this as a single market. Useful for: 'what's the total run line for tonight's full MLB slate', 'did the Grand Salami go over yesterday', 'historical Grand Salami results for backtesting'.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | — | YYYY-MM-DD UTC date. Defaults to today (UTC) when omitted. |
No output schema declared.
No examples provided.
propline_get_nhl_daily_goals_total ~151
Free-tier endpoint. Returns the synthetic daily NHL goals total (hockey's equivalent of the MLB Grand Salami) for a given UTC 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 across our NHL books). No retail sportsbook quotes this as a single market. Useful for: 'what's the total goal line for tonight's full NHL slate', 'did the Daily Goals Total go over yesterday', 'historical NHL daily-goals results for backtesting'.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | — | YYYY-MM-DD UTC date. Defaults to today (UTC) when omitted. |
No output schema declared.
No examples provided.
propline_get_odds ~435
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 book that carries the requested markets (currently up to 13: Bovada, DraftKings, FanDuel, Pinnacle, BetMGM, BetRivers, Unibet, Underdog, PrizePicks, Kalshi, Polymarket, Matchbook, Smarkets — coverage varies by sport). Underdog Fantasy outcomes carry a payout_multiplier (DFS boost/discount factor; null = standard pick, e.g. 1.5 = boost, 0.75 = discount) — skip non-null values when comparing DFS lines to sportsbook consensus.
| Name | Type | Req | Description |
|---|---|---|---|
| bookmakers | string | — | Comma-separated subset of book keys (bovada, draftkings, fanduel, pinnacle, betmgm, betrivers, unibet, underdog, prizepicks, kalshi, polymarket, matchbook, smarkets). Default returns all available. |
| event_id | string|number | — | Optional. If set, returns props for this event. |
| markets | string | — | Comma-separated market keys. Defaults to h2h on bulk; h2h,spreads,totals on event. Pass an explicit list to fetch player props (sport-specific — e.g. player_points,player_rebounds for NBA; pitcher_st… |
| period | string | — | 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 mu… |
| sport_key | string | yes | — |
No output schema declared.
No examples provided.
propline_get_odds_closing ~210
Hobby+ endpoint. Returns the closing line per (book, market, outcome) for an event — the last snapshot at or before commence_time. Canonical CLV-tracking helper; one call returns the data point your bet should be measured against, instead of fetching full history and post-processing. Each outcome carries a closing_at field with the snapshot's recorded_at. Free tier returns redacted structure with upgrade pointer.
| Name | Type | Req | Description |
|---|---|---|---|
| bookmakers | string | — | Comma-separated subset of book keys (e.g. 'draftkings,fanduel'). Default returns all available. |
| event_id | string|number | yes | — |
| markets | string | — | — |
| period | string | — | 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'. |
| sport_key | string | yes | — |
No output schema declared.
No examples provided.
propline_get_odds_history ~386
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), relative_from/relative_to (offsets to commence_time like '-3h' or '0'), interval downsample ('30s'/'1m'/'5m'/'15m'/'30m'/'1h'), and changes_only=true to drop unchanged adjacent snapshots.
| Name | Type | Req | Description |
|---|---|---|---|
| bookmakers | string | — | Comma-separated subset of book keys (e.g. 'draftkings,fanduel'). Default returns all available. |
| changes_only | boolean | — | When true, drop snapshots whose (price, point) match the previous one. |
| event_id | string|number | yes | — |
| from | string | — | ISO timestamp; only include snapshots at or after. Mutually exclusive with relative_from. |
| interval | string | — | Downsample bucket. Latest snapshot per bucket wins. |
| markets | string | — | — |
| period | string | — | 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'. |
| relative_from | string | — | Offset to commence_time, e.g. '-3h', '-30m', '-90s'. Mutually exclusive with from. |
| relative_to | string | — | Offset to commence_time, e.g. '-1m' or '0'. Mutually exclusive with to. |
| sport_key | string | yes | — |
| to | string | — | ISO timestamp; only include snapshots at or before. Mutually exclusive with relative_to. |
No output schema declared.
No examples provided.
propline_get_player_history ~137
Player prop history across recent games. Returns each prior prop this player took with line, prices, resolution, and actual value. Pro tier returns full data; free tier returns redacted resolution/actual_value with an upgrade pointer.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Max number of past games (default 20, max 100) |
| markets | string | — | Comma-separated subset of markets (e.g. 'player_points,player_rebounds') |
| player_name | string | yes | Player name as it appears in box scores — e.g. 'Aaron Judge', 'Nikola Jokic' |
| sport_key | string | yes | — |
No output schema declared.
No examples provided.
propline_get_player_trends ~246
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 over in N of his last M games?' surface. Omit `market` for all markets, or pass one to scope (e.g. 'player_points', 'batter_hits').
| Name | Type | Req | Description |
|---|---|---|---|
| dfs_odds_type | string | — | 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… |
| market | string | — | Optional single market to scope trends to (e.g. 'player_points'). Omit for all markets. |
| player_name | string | yes | Player name as it appears in box scores — e.g. 'Aaron Judge', 'Nikola Jokic' |
| sport_key | string | yes | — |
No output schema declared.
No examples provided.
propline_get_resolution_summary ~109
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, what's the coverage'. A coverage proof, never a profitability claim.
| Name | Type | Req | Description |
|---|---|---|---|
| days | number | — | Look-back window, 1-90. Defaults to 30. |
No output schema declared.
No examples provided.
propline_get_scores ~79
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'.
| Name | Type | Req | Description |
|---|---|---|---|
| days_from | number | — | How many past days of completed games to include. Defaults to 1. |
| sport_key | string | yes | — |
No output schema declared.
No examples provided.
propline_list_event_markets ~72
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.
| Name | Type | Req | Description |
|---|---|---|---|
| event_id | string|number | yes | — |
| sport_key | string | yes | — |
No output schema declared.
No examples provided.
propline_list_events ~101
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.
| Name | Type | Req | Description |
|---|---|---|---|
| live | boolean | — | If true, only return in-progress (live) events. Defaults to false. |
| sport_key | string | yes | Sport key from propline_list_sports — e.g. baseball_mlb, basketball_nba |
No output schema declared.
No examples provided.
propline_list_sports ~62
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.