statcast_pitcher_pitch_arsenal
Analyze pitch arsenals for MLB pitchers by retrieving velocity and frequency data per pitch type across seasons or for specific players.
Instructions
Get pitch arsenal breakdown for all pitchers in a season.
Shows average velocity (and related columns) per pitch type for qualifying pitchers.
Args: year: Season year (e.g. 2024). min_pitches: Minimum total pitches thrown to qualify (default 100). player_name: Optional. Filter to one pitcher (e.g. 'Spencer Strider').
Great for understanding what pitches a pitcher throws and how often.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | ||
| min_pitches | No | ||
| player_name | No |
Implementation Reference
- src/statcast_mcp/server.py:1020-1055 (handler)The `statcast_pitcher_pitch_arsenal` function, decorated as an MCP tool, fetches season-long pitch arsenal data for pitchers using `pybaseball.statcast_pitcher_pitch_arsenal` and optionally filters by player name.
@mcp.tool() def statcast_pitcher_pitch_arsenal( year: int, min_pitches: int = 100, player_name: str | None = None, ) -> str: """Get pitch arsenal breakdown for all pitchers in a season. Shows average velocity (and related columns) per pitch type for qualifying pitchers. Args: year: Season year (e.g. 2024). min_pitches: Minimum total pitches thrown to qualify (default 100). player_name: Optional. Filter to one pitcher (e.g. 'Spencer Strider'). Great for understanding what pitches a pitcher throws and how often. """ from pybaseball import statcast_pitcher_pitch_arsenal as _fn try: data = _fn(year, minP=min_pitches) except Exception as e: return f"Error fetching pitch arsenal data: {e}" if player_name: try: data = _filter_player_rows(data, player_name) except ValueError as e: return str(e) if data.empty: return ( f"No pitch-arsenal row for {player_name} in {year} at " f"{min_pitches}+ pitches thrown." ) return _fmt(data, max_rows=50)