NBA Prop Lab

io.github.KhavelPublished by GitHub account Khavelv1.0.0-remoteUpdated Oct 30, 2026

NBA and WNBA player-prop analytics: daily board, graded track record, matchup and referee data.

VerifiedStreamable HTTPWeb executableFinanceData & Analytics

Overview

AI-generated overview

Remote MCP server for NBA and WNBA player-prop analytics: daily model board, graded track record, matchup, usage, referee and player data.

What you can do
  • Read the published player-prop board for the next slate and how the last board settled
  • Check the model's settled record by league, tier and date range
  • Inspect team defense vs position, usage leaders, referee crews and referee foul rates
  • Look up NBA and WNBA games by date, today's slate and standings
  • Search players by name and pull game logs, prop lines, injury status and model picks for one player
When to use it
Useful when you want an assistant to answer questions about NBA or WNBA player props, matchups, usage, officiating or a player's recent form, and to see how a published model's picks have graded over time.
Requirements
Nothing to install for the remote server: a streamable HTTP endpoint with no authentication, no key and no environment variables. The optional local stdio build needs Node.js and npm, and an API key in PROPLAB_API_KEY for backtest, pick and research tools.
Before you install
Sports analysis only, explicitly not betting advice; the provider takes no wagers and past results do not predict future ones. The remote server is stateless and stores nothing from conversations, but receives tool arguments such as league, date and player name or id, and the web server keeps access logs. The local build sends requests to the public API over HTTPS and reads the API key from the environment; the key is shown once at creation and can be revoked.

Installation

In SourceWeft

  1. Open NBA Prop Lab in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.Khavel%2Fproplab/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "nba-prop-lab": {
      "type": "http",
      "url": "https://nbaproplab.com/mcp"
    }
  }
}

README

PropLab MCP Server

Model Context Protocol server for PropLab: NBA and WNBA player-prop analytics. You get the daily board the model publishes before tip-off, its public record graded against the official box score, defense vs position, usage, referees and player research.

There are two ways to use it:

  • Remote server: works now, nothing to install, no key. https://nbaproplab.com/mcp
  • Local stdio package, built from this repository. It adds backtests and on-demand pick evaluation, which need an API key. It is not yet published on npm.

The data is informational sports analysis, not betting advice. PropLab does not take wagers, link to sportsbooks or guarantee outcomes, and past results do not predict future ones.

Remote server (recommended)

Streamable HTTP, stateless, no authentication. Every tool is read-only and returns the same public data shown on nbaproplab.com.

Claude (claude.ai, desktop, mobile): Settings → Connectors → Add custom connector. Name: PropLab. URL: https://nbaproplab.com/mcp. Authentication: none.

Claude Code:

bash
claude mcp add --transport http proplab https://nbaproplab.com/mcp

Codex:

bash
codex mcp add proplab --url https://nbaproplab.com/mcp

or in ~/.codex/config.toml:

toml
[mcp_servers.proplab]url = "https://nbaproplab.com/mcp"

Any other client that supports streamable HTTP can point at the same URL.

Tools

ToolParametersReturns
daily_boardleague (nba or wnba)The published player-prop board for the next slate (player, stat, line, direction, tier, model score) and how the previous board settled
track_recordleague?, tier? (Premium or Standard), from?, to?Settled record by tier and stat. The published record is the Premium tier (premiumHitRate, goodPicks) and Standard (marginalPicks); overall* fields also count internal ratings that are never published. Dates before 2026-04-03 are a backtest
defense_vs_positionleaguePoints, rebounds and assists each team allows to guards, forwards and centers relative to the league average, with defensive rating, pace and ranks
usage_leadersleaguePlayers ranked by usage rate this season, with last-10-games usage, minutes and points
nba_today—Today's NBA games with tip-off times, yesterday's scores and the standings
gamesdate? (yyyy-MM-dd)NBA and WNBA games on a date (default: today, US Eastern)
referee_assignments_today—The crew of each NBA game today, once the league publishes it the morning of game day
referees—NBA referees this season with games worked and fouls per game against the league average
search_playersqueryNBA and WNBA players by name, accents optional ("Jokic" finds Jokić)
player_researchplayerIdRecent game logs, current prop lines across books with hit rates, injury status, next-game context and the model's picks on that player

Example prompts:

  • "Which NBA teams allow the most rebounds to centers, and do any of them play today?"
  • "How has PropLab's published Premium tier done in the WNBA since April, by stat?"
  • "Search for Jokic and show his last 10 games and injury status."

Invalid arguments, for example league: "nfl", return a tool error that explains the valid values.

Local stdio package

Not yet published on npm, so build it from this repository:

bash
git clone https://github.com/Khavel/proplab-mcp.gitcd proplab-mcpnpm installnpm run build      # compiles src/index.ts → dist/index.js

Then register it in your MCP client with the absolute path to the build:

json
{  "mcpServers": {    "proplab": {      "command": "node",      "args": ["/absolute/path/to/proplab-mcp/dist/index.js"],      "env": {        "PROPLAB_API_KEY": "…"      }    }  }}

PROPLAB_API_KEY is optional: without it the public tools still work. For local development with hot reload, run npm run dev.

Environment variables

VariableRequired forDescription
PROPLAB_API_URLNoAPI base URL (default: https://nbaproplab.com)
PROPLAB_API_KEYBacktest, pick and research toolsBearer API key

The key is minted at nbaproplab.com → Account → API keys. It is shown once at creation and can be revoked from the same screen.

Tools

Public, no key:

ToolEndpointKey params
proplab_track_recordGET /api/v1/track-recordleague?, tier?, statType?, from?, to?
proplab_dashboardGET /api/v1/dashboard/todaydate?, league?
proplab_gamesGET /api/v1/gamesdate?
proplab_search_playersGET /api/v1/players/searchq
proplab_system_statusGET /api/v1/health—

With PROPLAB_API_KEY:

ToolEndpointKey params
proplab_backtest_summaryGET /api/v1/backtest/summaryfrom?, to?, league?
proplab_backtest_dailyGET /api/v1/backtest/dailyfrom?, to?, league?
proplab_backtest_by_ratingGET /api/v1/backtest/by-ratingfrom?, to?, league?
proplab_backtest_by_statGET /api/v1/backtest/by-statfrom?, to?, league?
proplab_pick_detailsGET /api/v1/picks/{id}id
proplab_evaluate_pickPOST /api/v1/picks/evaluateplayerName, statType, line, direction, opponentTeam?
proplab_player_researchGET /api/v1/research/player/{playerId}playerId

Verify locally

bash
npx @modelcontextprotocol/inspector node dist/index.js

Then call proplab_system_status, which needs no key and should return the live system status.

Data and privacy

  • Remote server: it keeps no state and stores nothing from your conversations. It only receives the arguments of each tool call (a league, a date, a player name or id), and the web server keeps its standard access logs.
  • Local package: it calls the public nbaproplab.com API over HTTPS and reads the key only from the environment, never logging it. No tool reads database credentials or app settings, or opens a shell.
  • Inputs are validated with zod and responses are truncated at 40,000 characters. Every tool is read-only except proplab_evaluate_pick, which scores a hypothetical pick and stores nothing.
  • Privacy policy: nbaproplab.com/legal/privacy. Responsible gambling: nbaproplab.com/responsible-gambling.

Support

Open an issue at github.com/Khavel/proplab-mcp/issues.

Source: README.md at commit 50b17ef

Tools

10

daily_board

Daily player-prop board

The published NBA or WNBA player-prop board for the next slate (player, stat, line, direction, tier, model score) and how the last settled board did (hits, misses, voids). Informational analysis, not betting advice.

Parametersleague

track_record

Public track record

Settled record of the model's picks with optional filters. Reading it: the overall*/total* fields count every pick the engine evaluated, including Weak ratings that are never published; the published record is the PREMIUM tier (premiumHitRate, goodPicks) and STANDARD (marginalPicks). Dates before 2026-04-03 are a backtest; use from=2026-04-03 for live picks only.

Parameterstofromtierleague

defense_vs_position

Defense vs position

How many points, rebounds and assists each team allows to guards, forwards and centers relative to the league average, with defensive rating, opponent pace and ranks.

Parametersleague

usage_leaders

Usage rate leaders

Players ranked by usage rate this season, with last-10-games usage, minutes and points.

Parametersleague

referee_assignments_today

NBA referee assignments today

Officiating crew of each NBA game today (published by the league the morning of game day) with each referee's fouls per game.

Takes no parameters.

referees

NBA referees

All NBA referees this season with games worked, fouls per game and fouls above the league average.

Takes no parameters.

nba_today

NBA today

Today's NBA games with tip-off times, yesterday's final scores and the current standings by conference.

Takes no parameters.

games

Games by date

NBA and WNBA games on a date (defaults to today, US Eastern).

Parametersdate

search_players

Search players

Find NBA and WNBA players by name; returns their ids for player_research.

Parametersqueryrequired

player_research

Player research

A player's recent game logs, today's prop lines across books with hit rates, injury status, next game context and the model's picks on that player.

ParametersplayerIdrequired

Version history

1
  1. v1.0.0-remoteLatestOct 22, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts