Skip to main content
Glama
Crawlora-org

Crawlora MCP

Official

mlb_player_stats

Retrieve one MLB player's season or career statistics by player ID and stat group, with optional season, stat type, and date range filters.

Instructions

Get MLB player season statistics. Returns one MLB player's statistics. id and group (hitting, pitching, fielding, catching, running, game, team or streak) are required. season defaults to the current year and stat_type to season. Other stat_type values cover career, game logs and splits. Use start_date with end_date for date ranges.

Input Schema

NameRequiredDescriptionDefault
idYesNumeric MLB player id
groupYesStat group
seasonNoFour-digit season; defaults to current year
end_dateNoEnd date for byDateRange stat types; requires start_date
game_typeNoMLB game type
stat_typeNoStats API stat type; defaults to season
start_dateNoStart date for byDateRange stat types; requires end_date
opponent_team_idNoRequired by vsTeam stat types
opponent_player_idNoRequired by vsPlayer stat types

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv1.17.7
    • addedInput schema / properties / end_date
      Added value: +{
      +  "description": "End date for byDateRange stat types; requires start_date",
      +  "type": "string"
      +}
    • addedInput schema / properties / game_type
      Added value: +{
      +  "description": "MLB game type",
      +  "enum": [
      +    "S",
      +    "R",
      +    "F",
      +    "D",
      +    "L",
      +    "W",
      +    "C",
      +    "P",
      +    "A",
      +    "I",
      +    "E"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / group / enum
      Previous value: -[
      -  "hitting",
      -  "pitching",
      -  "fielding"
      -]New value: +[
      +  "hitting",
      +  "pitching",
      +  "fielding",
      +  "catching",
      +  "running",
      +  "game",
      +  "team",
      +  "streak"
      +]
    • addedInput schema / properties / opponent_player_id
      Added value: +{
      +  "description": "Required by vsPlayer stat types",
      +  "type": "string"
      +}
    • addedInput schema / properties / opponent_team_id
      Added value: +{
      +  "description": "Required by vsTeam stat types",
      +  "type": "string"
      +}
    • addedInput schema / properties / start_date
      Added value: +{
      +  "description": "Start date for byDateRange stat types; requires end_date",
      +  "type": "string"
      +}
    • addedInput schema / properties / stat_type
      Added value: +{
      +  "description": "Stats API stat type; defaults to season",
      +  "enum": [
      +    "projected",
      +    "projectedRos",
      +    "yearByYear",
      +    "yearByYearAdvanced",
      +    "yearByYearPlayoffs",
      +    "season",
      +    "standard",
      +    "advanced",
      +    "career",
      +    "careerRegularSeason",
      +    "careerAdvanced",
      +    "seasonAdvanced",
      +    "careerStatSplits",
      +    "careerPlayoffs",
      +    "gameLog",
      +    "playLog",
      +    "pitchLog",
      +    "pitchArsenal",
      +    "outsAboveAverage",
      +    "expectedStatistics",
      +    "sabermetrics",
      +    "sprayChart",
      +    "tracking",
      +    "vsPlayer",
      +    "vsPlayerTotal",
      +    "vsPlayer5Y",
      +    "vsTeam",
      +    "vsTeam5Y",
      +    "vsTeamTotal",
      +    "lastXGames",
      +    "byDateRange",
      +    "byDateRangeAdvanced",
      +    "byMonth",
      +    "byMonthPlayoffs",
      +    "byDayOfWeek",
      +    "byDayOfWeekPlayoffs",
      +    "homeAndAway",
      +    "homeAndAwayPlayoffs",
      +    "winLoss",
      +    "winLossPlayoffs",
      +    "rankings",
      +    "rankingsByYear",
      +    "statsSingleSeason",
      +    "statsSingleSeasonAdvanced",
      +    "hotColdZones",
      +    "availableStats",
      +    "opponentsFaced",
      +    "gameTypeStats",
      +    "firstYearStats",
      +    "lastYearStats",
      +    "statSplits",
      +    "statSplitsAdvanced",
      +    "atGameStart",
      +    "vsOpponents",
      +    "sabermetricsMultiTeam",
      +    "projected_Zips",
      +    "projected_ZipsRos",
      +    "projected_Zips2YR",
      +    "projected_Zips3YR"
      +  ],
      +  "type": "string"
      +}
  2. Changed1 schema field changedv1.17.5
    • addedInput schema / properties / group / enum
      Added value: +[
      +  "hitting",
      +  "pitching",
      +  "fielding"
      +]
  3. Added

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses scope (one player) and required inputs, but omits any auth, rate-limit, or error behavior. For a read-only stats lookup this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and parameter rules in short sentences. The second sentence ('Returns one MLB player's statistics') partially restates the first, costing a little density, but overall it reads efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter, no-output-schema, no-annotation tool, the description covers required parameters, defaults, and the date-range coupling well. It does not explain return structure or how group and stat_type interact, but is otherwise sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3, but the description goes beyond the schema by enumerating the group values and grouping the huge stat_type enum into families (season default, career, game logs, splits) plus the start/end_date pairing rule, which is genuinely useful semantic context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get MLB player season statistics'), and clarifies it returns stats for a single player. However, it does not differentiate from closely related siblings such as mlb_player, mlb_league_stats, or the many mlb_statcast_* tools, leaving the agent to infer which one to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Offers implied usage for parameters (use start_date with end_date for ranges; other stat_type values cover career, game logs and splits) but gives no explicit when-to-use vs alternatives like mlb_player or mlb_statcast_expected. No prerequisites or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools