Skip to main content
Glama
MLB SportRadar MCP Server

MLB SportRadar MCP Server

by robcerda

MLB SportRadar MCP Server

Model Context Protocol (MCP) server for connecting Claude with the SportRadar MLB API. It provides tools for accessing MLB game data, standings, player statistics, and more through the SportRadar API.

Requirements

  • Python 3.12 or higher

  • Model Context Protocol (MCP) Python SDK

  • httpx

  • python-dotenv

  • SportRadar API key

Related MCP server: Yahoo Fantasy Baseball MCP Server

Setup

1. Get SportRadar API Key

  1. Sign up at SportRadar Developer Portal

  2. Get your MLB API key (trial or production)

curl -LsSf https://astral.sh/uv/install.sh | sh

3. Clone this repository

git clone https://github.com/yourusername/mlb-sportradar-mcp.git
cd mlb-sportradar-mcp

4. Create and activate a virtual environment

# Create virtual environment
uv venv

# Activate virtual environment
# On macOS/Linux:
source .venv/bin/activate
# On Windows:
.venv\Scripts\activate

5. Install dependencies

# Option 1: Using uv (recommended)
uv sync

# Option 2: Using pip with requirements.txt
pip install -r requirements.txt

# Option 3: Install as editable package
uv pip install -e .

6. Set up environment variables

Create a .env file in the project root with your SportRadar API key:

SPORTRADAR_API_KEY=your_api_key_here

Usage

1. Configure Claude Desktop

First, install the MCP CLI globally:

uv tool install "mcp[cli]"

Then add this server to your Claude Desktop configuration file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "MLB SportRadar": {
      "command": "/Users/<USERNAME>/.local/share/uv/tools/mcp/bin/mcp",
      "args": ["run", "/full/path/to/mlb-sportradar-mcp/src/mlb_sportradar_mcp/server.py"]
    }
  }
}

Important: Replace /full/path/to/ with the actual absolute path to your mlb-sportradar-mcp directory.

Restart Claude Desktop after saving the configuration.

2. Use the MCP server with Claude

Once configured, Claude Desktop will have access to these MLB SportRadar tools:

Game Data:

  • get_daily_schedule: Get MLB schedule for a specific date or today

  • get_game_summary: Get summary information for a specific game

  • get_game_boxscore: Get detailed boxscore for a specific game

  • get_game_play_by_play: Get detailed play-by-play data for a game

  • get_game_pitch_metrics: Get pitch-level metrics and Statcast data

Team & League:

  • get_standings: Get MLB standings for a specific year and league

  • get_team_profile: Get detailed team information

  • get_team_roster: Get current roster for a specific team

  • get_team_hierarchy: Get complete MLB team hierarchy with divisions

  • get_seasonal_statistics: Get seasonal statistics for a team

Player Data:

  • get_player_profile: Get detailed player information

  • get_player_seasonal_stats: Get seasonal statistics for a player

  • get_seasonal_splits: Get player splits (home/away, vs lefty/righty, etc.)

  • get_league_leaders: Get MLB league leaders in various categories

League Information:

  • get_injuries: Get current MLB injury report

  • get_transactions: Get MLB transactions for a specific date

  • get_draft_summary: Get MLB draft summary for a specific year

Example queries to try with Claude:

  • "Show me today's MLB schedule"

  • "Get the current AL standings"

  • "What are the current batting leaders in MLB?"

  • "Show me the injury report for MLB"

  • "Get play-by-play data for game [game_id]"

  • "Show me pitch metrics for the latest game"

  • "Get player splits for [player_name]"

  • "What transactions happened today in MLB?"

Development and testing

Install development dependencies and run the test suite with:

uv sync --all-extras
pytest -v tests

Running the server locally

To start the server manually (useful when developing or testing), run:

mlb-sportradar-mcp

Alternatively, you can run it directly with:

uv run python src/mlb_sportradar_mcp/server.py

Installing MCP CLI globally

If you want to use mcp run commands, install the MCP CLI globally:

uv tool install "mcp[cli]"

Then you can run:

mcp run src/mlb_sportradar_mcp/server.py

API Endpoints

This MCP server uses the SportRadar MLB API v8 endpoints:

  • Schedule: /en/games/{year}/{month}/{day}/schedule.json

  • Game Summary: /en/games/{game_id}/summary.json

  • Game Boxscore: /en/games/{game_id}/boxscore.json

  • Standings: /en/seasons/{year}/standings.json

  • Player Profile: /en/players/{player_id}/profile.json

  • Team Profile: /en/teams/{team_id}/profile.json

  • League Leaders: /en/seasons/{year}/leaders.json

  • Team Roster: /en/teams/{team_id}/roster.json

  • Injuries: /en/injuries.json

Rate Limits

Please be aware of SportRadar's API rate limits. The trial API typically has lower limits than production keys. Monitor your usage to avoid hitting rate limits.

License

MIT

Test change

Available Tools

19 tools
get_daily_scheduleB

Get MLB schedule for a specific date (YYYY-MM-DD format) or today if not specified.

Inputs: date_str.

get_draft_summaryC

Get MLB draft summary for a specific year.

Inputs: year (required).

get_game_boxscoreC

Get detailed boxscore for a specific MLB game.

Inputs: game_id (required).

get_game_pitch_metricsC

Get pitch-level metrics and Statcast data for a specific MLB game.

Inputs: game_id (required).

get_game_play_by_playC

Get detailed play-by-play data for a specific MLB game.

Inputs: game_id (required).

get_game_summaryC

Get summary information for a specific MLB game.

Inputs: game_id (required).

get_injuriesB

Get current MLB injury report.

Inputs: no named parameters.

get_league_leadersC

Get MLB league leaders for a specific year and category (hitting/pitching).

Inputs: year, category.

get_player_profileC

Get detailed profile information for a specific MLB player.

Inputs: player_id (required).

get_player_seasonal_statsC

Get seasonal statistics for a specific player.

Inputs: player_id (required), year.

get_seasonal_pitch_metricsC

Get detailed Statcast pitch metrics for a player's season.

Inputs: player_id (required), year.

get_seasonal_splitsC

Get seasonal splits for a player (home/away, vs lefty/righty, etc.).

Inputs: player_id (required), year.

get_seasonal_statisticsC

Get seasonal statistics for a specific team.

Inputs: team_id (required), year, season_type.

get_standingsB

Get MLB standings for a specific year and league (AL/NL) or current season.

Inputs: year, league.

get_statcast_leadersC

Get Statcast leaderboards (exit_velocity, launch_angle, barrel_rate, etc.).

Inputs: year, category.

get_team_hierarchyB

Get complete MLB team hierarchy with divisions and leagues.

Inputs: no named parameters.

get_team_profileC

Get detailed profile information for a specific MLB team.

Inputs: team_id (required).

get_team_rosterC

Get current roster for a specific MLB team.

Inputs: team_id (required).

get_transactionsC

Get MLB transactions for a specific date or recent transactions.

Inputs: date_str.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 19 tools

    Disambiguation5/5

    Every tool has a clearly distinct purpose targeting specific MLB data categories like schedules, games, players, teams, and statistics. The descriptions precisely differentiate each tool's scope, such as get_game_boxscore vs get_game_summary, eliminating any ambiguity.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern with 'get_' prefix and descriptive nouns (e.g., get_daily_schedule, get_player_profile). The naming is uniform throughout, using snake_case without any deviations or mixed conventions.

    Tool Count4/5

    With 19 tools, the count is slightly high but reasonable for the comprehensive MLB data domain. It covers a wide range of queries without being excessive, though it might feel heavy compared to simpler servers.

    Completeness5/5

    The tool set provides complete coverage for MLB data, including schedules, games, players, teams, statistics, injuries, transactions, and drafts. It supports core workflows like game analysis, player profiling, and team tracking with no obvious gaps.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Enables users to query MLB Statcast, FanGraphs, and Baseball Reference data using natural language through an AI assistant. It provides comprehensive tools for analyzing player performance, pitch-level data, season leaderboards, and team standings.
      24
      36
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables Claude to interact with Yahoo Fantasy Baseball and Basketball leagues, allowing roster analysis, matchup tracking, free agent browsing, and player stats retrieval via natural language.
      -