# sports-mcp-server [Health: Active]

**Category:** 🏃 Sports  
**Repository:** https://github.com/cyanheads/sports-mcp-server  
**GitHub Stars:** 2  
**Views:** 1  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/sports-mcp-server-2

## Description
Get live scores, schedules, standings, team and player data for NFL, NBA, MLB, NHL, and soccer.

## Tools
Capabilities this server exposes over MCP:

- **sports_find_team** — Resolve a team name or partial name to canonical records and source IDs across providers.
- **sports_find_player** — Resolve a player name to canonical TheSportsDB records with ID, team, position, and bio fields.
- **sports_get_scores** — Live and final scores for a league on a given date, optionally filtered by team.
- **sports_get_game** — Game metadata, period scores, team totals, provider top performers, and paged scoring plays.
- **sports_get_schedule** — Upcoming and past fixtures for a team or league over a date range.
- **sports_get_standings** — Current standings or league table for a league and season.
- **sports_get_team** — Team detail combining metadata, roster, recent results, and upcoming fixtures.
- **sports_get_player** — Player details from TheSportsDB — biography, team, position, and physical stats.

## Claude Desktop Quick Installation
No confirmed install details yet, so no config is published. Follow the setup steps in the repository above.

## Documentation

## What sports-mcp-server does

The sports-mcp-server MCP server gives agents access to live and historical sports data from ESPN, MLB StatsAPI, and TheSportsDB. Supported data includes scores, schedules, standings, game details, team records, rosters, and player profiles. Coverage includes the NFL, NBA, MLB, NHL, major soccer leagues, college football, and college basketball.

Eight MCP tools cover the main lookup patterns:

- `sports_find_team` resolves full or partial team names and combines provider IDs.
- `sports_find_player` searches TheSportsDB player records.
- `sports_get_scores` returns live or completed games for a league and date.
- `sports_get_game` provides game metadata, period scores, team totals, leaders, and scoring plays.
- `sports_get_schedule` lists fixtures for a league or team within a date range.
- `sports_get_standings` returns league tables for the current or specified season.
- `sports_get_team` combines team metadata, an active roster, five recent results, and three upcoming fixtures.
- `sports_get_player` retrieves biographical and physical details from TheSportsDB.

## How it works

The server routes requests to the provider most appropriate for the sport, then returns normalized game, team, player, and standings records. Each record includes source provenance, such as ESPN, MLB StatsAPI, or TheSportsDB. Team searches can merge ESPN, MLB, and TheSportsDB identifiers into one result, while player searches return TheSportsDB identifiers and related fields.

Scores and schedules support limits and offsets for pagination. Schedule queries cover no more than seven days at a time, and follow-up metadata identifies the next offset or date window. Game details require a source-prefixed numeric ID obtained from a score, schedule, or team response. MLB game IDs must be used with the MLB league value.

Responses distinguish conditions such as `no_match`, `team_not_found`, `ambiguous_team`, `season_not_found`, `game_not_found`, and `sources_unavailable`. Off-season score requests return an empty result with an explanation rather than treating the absence of games as a server failure.

## Setup and configuration

The sports-mcp-server MCP server can run over STDIO or Streamable HTTP. An `npx` setup is also available when Bun is not installed. The example configuration sets `MCP_TRANSPORT_TYPE` to `stdio` and `MCP_LOG_LEVEL` to `info`.

Provider credentials are not required for the listed ESPN site API and MLB StatsAPI sources, or for TheSportsDB’s free key value. The server is built on `@cyanheads/mcp-ts-core`, which also provides configurable authentication, storage, logging, and optional OpenTelemetry tracing capabilities.

## Tools and capabilities

Use team resolution before team-specific calls when a name may be ambiguous. `sports_get_team` requires a league and a team name, while `sports_get_player` accepts a raw TheSportsDB ID or a `tsdb:`-prefixed ID from player search. Standings support season selection and expose conference, table, or division fields where applicable.

The server reports missing values as null, preserves provider source information, and includes recovery hints with typed errors. NFL team rosters omit injured-reserve or out players, suspended players, and practice-squad players.

## Limitations and notes

The sports-mcp-server MCP server depends on the availability and coverage of its upstream providers. TheSportsDB’s free key may return incomplete team-search results, and the default player-search key returns one record. Player IDs in game responses belong to ESPN or MLB rather than TheSportsDB.

A partial team name must identify one team for schedule and team-detail calls; otherwise the response lists candidates or reports that no team was found. Reversed schedule dates fail validation, and dated schedule requests are limited to seven days. Provider failures and unavailable metadata are reported in the response instead of being silently merged.

_Full upstream README: https://allmcps.com/mcp/sports-mcp-server-2/readme_

