MLB Stats MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Live and historical Major League Baseball data from the public MLB Stats API. Use search_players to turn a name into a player_id before calling player tools. Team arguments accept a name, nickname, abbreviation or numeric id (e.g. 'Yankees', 'NYY', 'New York Yankees', '147'). Seasons default to the current year; during the off-season pass the previous year if the current one has no data. Dates are YYYY-MM-DD.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_teamsA | List all 30 MLB teams with their ids, abbreviations, league, division and ballpark. |
| get_team_rosterA | Get a team's roster. |
| search_playersA | Find MLB players by name and return their player_id (needed by other player tools). |
| get_player_infoA | Get a player's biography: team, position, age, height, handedness, debut, birthplace. |
| get_player_statsA | Get a player's batting, pitching or fielding stats. |
| get_player_game_logA | Get a player's game-by-game stats, most recent game first. Use for recent form, hot or cold streaks, and "how did he do last night / this week" questions. |
| get_league_leadersA | Get the league leaders for a statistic. |
| get_scheduleA | Get MLB games (with scores and probable pitchers) for a date or date range. |
| get_gameA | Get a game's live or final line score plus each team's batting and pitching box score. |
| get_standingsB | Get division standings: wins, losses, win %, games back, streak and run differential. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Each tool maps to a distinct resource and action: team listing vs. roster, player lookup vs. bio vs. stats vs. game log, league leaders, schedule, single game, and standings. The descriptions explicitly explain boundaries (e.g., search_players yields the player_id consumed by the player tools; get_schedule vs. get_game is list vs. single game). No two tools appear to do the same thing.
All tools follow a snake_case verb_noun pattern (get_player_stats, get_team_roster, get_league_leaders), with 'list_teams' appropriately using list for the only enumeration endpoint and 'search_players' for the lookup. No camelCase or vague-verb deviations.
Ten tools is right-sized for an MLB stats server: one per core entity/operation (teams, roster, player lookup, bio, stats, game log, leaders, schedule, game, standings) with no redundant entries.
The surface covers the core fan/analyst workflow end to end: discover teams and players, then pull bios, season/career stats, game logs, leaders, schedules, box scores, and standings. Gaps are minor: no transactions, injuries, or team-level aggregate stats, and schedule lookups are discouraged for long ranges.