Content
# NBA MCP Server
A Python server implementing Model Context Protocol (MCP) for NBA statistics and live game data.
## Overview
This server provides a set of tools for accessing NBA data through the NBA API. It serves as a bridge between applications and the NBA's data services, offering both live game information and historical statistics.
## Features
- Live game data (scoreboard, box scores, play-by-play)
- Player information and career statistics
- Team game logs and statistics
- League standings
- Game results and schedules
## Tools
### Live Game Data
- **nba_live_scoreboard**
- Fetch today's NBA scoreboard (live or latest)
- Returns game IDs, start times, scores, and broadcast details
- **nba_live_boxscore**
- Fetch real-time box score for a given NBA game ID
- Provides detailed player and team statistics
- **nba_live_play_by_play**
- Retrieve live play-by-play actions for a specific game
- Includes scoring plays, fouls, timeouts, and substitutions
### Player Information
- **nba_common_player_info**
- Retrieve basic information about a player
- Includes biographical data, height, weight, team, position
- **nba_player_career_stats**
- Obtain a player's career statistics
- Available in different formats (per game, totals, per 36 minutes)
- **nba_list_active_players**
- Return a list of all currently active NBA players
- **nba_player_game_logs**
- Obtain a player's game statistics within a specified date range
### Team Data
- **nba_team_game_logs_by_name**
- Fetch a team's game logs using the team name
- Avoids needing to know the team's numeric ID
- **nba_fetch_game_results**
- Fetch game results for a given team ID and date range
- **nba_team_standings**
- Fetch NBA team standings for a given season and season type
- **nba_team_stats_by_name**
- Fetch team statistics using the team name
- Supports different aggregation methods (totals, per game, etc.)
- **nba_all_teams_stats**
- Fetch statistics for all NBA teams across multiple seasons
### Schedule Information
- **nba_list_todays_games**
- Returns scoreboard data for any specific date
## Usage
The server is implemented using the MCP framework and can be run as a standalone service.
```python
# Start the server
python nba_server.py
# or
mcp run nba_server.py
```
### Configuration
- The server runs with a 30-second timeout for more reliable operation
- Signal handlers are implemented for graceful shutdown (Ctrl+C)
### Usage with Claude Desktop
#### Option 1: Using Docker (Recommended)
1. Clone this repository
```
git clone https://github.com/obinopaul/nba-mcp-server.git
cd nba-mcp-server
```
2. Install dependencies
```
pip install -r requirements.txt
```
3. Build the Docker image
```
docker build -t nba_mcp_server .
```
4. Run the Docker container
```
docker run -d -p 5000:5000 --name nba_mcp_server nba_mcp_server
```
5. Add this to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"nba_mcp_server": {
"command": "docker",
"args": [
"exec",
"-i",
"nba_mcp_server",
"python",
"nba_server.py"
]
}
}
}
```
#### Option 2: Direct Python Execution
1. Clone this repository
```
git clone https://github.com/obinopaul/nba-mcp-server.git
cd nba-mcp-server
```
2. Create a new environment
```
conda create --name your_env_name python=3.13
conda activate your_env_name
```
3. Install dependencies
```
pip install -r requirements.txt
```
4. Run NBA mcp server on the terminal
```
mcp run nba_server.py
```
5. Add this to your `claude_desktop_config.json`, adjusting the Python path as needed:
```json
{
"mcpServers": {
"nba_mcp_server": {
"command": "/path/to/your/python",
"args": [
"/path/to/nba_server.py"
]
}
}
}
```
After adding your chosen configuration, restart Claude Desktop to load the NBA server. You'll then be able to use all the NBA data tools in your conversations with Claude.
## Technical Details
The server is built on:
- NBA API (nba_api) Python package
- MCP for API interface
- Pydantic for input validation
- Pandas for data manipulation
## License
This MCP server is available under the MIT License.
Connection Info
You Might Also Like
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
markitdown
Python tool for converting files and office documents to Markdown.
Filesystem
Node.js MCP Server for filesystem operations with dynamic access control.
Sequential Thinking
A structured MCP server for dynamic problem-solving and reflective thinking.
Fetch
Retrieve and process content from web pages by converting HTML into markdown format.
TrendRadar
TrendRadar: Your hotspot assistant for real news in just 30 seconds.