Skip to main content
Glama
Crawlora-org

Crawlora MCP

Official

mlb_statcast_batted_ball

Get Baseball Savant Batted Ball Profile rows for batters, pitchers, teams, or league totals with filters for season, game type, split, date, hand, pitch type, and minimum events.

Instructions

Get Baseball Savant Batted Ball Profile rows. Returns the Batted Ball Profile table for batters, batting teams, pitchers, pitching teams, or league totals. Supports first-party season, game type, split, team, date, side, hand, pitch type, event threshold, and split-group threshold filters. The All-Star A game type is accepted by the live page query although its checkbox is hidden. Sorting and pagination are local. The league-average reference row is returned separately when requested; CSV and visualization controls are outside this JSON contract.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
minNoMinimum batted-ball events
sortNoLocal table sort field
typeNoRow type
limitNoRows per page (1-500)
teamsNoOne or more MLB team ids
offsetNoZero-based row offset
splitsNoOne or more split dimensions
seasonsNoOne or more seasons
bat_sideNoBatter side
date_endNoYYYY-MM-DD date range end (2015-04-05 through today)
sort_dirNoSort direction
min_splitNoMinimum rows per split group
date_startNoYYYY-MM-DD date range start (2015-04-05 through today)
game_typesNoOne or more game type codes
pitch_handNoPitcher throwing hand
split_yearNoSplit seasons into separate rows
pitch_typesNoOne or more pitch type codes
include_league_averageNoInclude the first-party league-average reference row

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.17.9

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does reasonably well: it discloses that sorting and pagination are local, that the league-average row is returned separately when requested, that the A game type is served despite a hidden checkbox, and that CSV/visualization controls fall outside the JSON contract. It omits auth/rate-limit/permission details, so not a 5.

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?

Purpose and scope are front-loaded in the first two sentences, with quirk notes following. Each sentence contributes, though the filter enumeration sentence is somewhat dense and could be tightened.

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 complex 18-parameter tool with no output schema and no annotations, the description covers return content, filter surface, local sorting/pagination, the league-average row, and the A game type caveat. It could say more about default behavior when no filters are supplied, but is otherwise adequate.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all 18 parameters; baseline is 3. The description adds only the high-level grouping of filters (season, game type, split, team, date, side, hand, pitch type, thresholds) and the A-game-type quirk, without new syntax or format detail.

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

Purpose5/5

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

States a specific verb ('Get') and resource ('Baseball Savant Batted Ball Profile rows') and immediately enumerates what the table returns – batters, batting teams, pitchers, pitching teams, or league totals. This distinguishes it clearly from the many other mlb_statcast_* siblings.

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?

The description lists supported filter dimensions and notes that the All-Star A game type is accepted even though its checkbox is hidden, which is genuinely useful context. However, it never states when to choose this tool over alternatives (e.g. mlb_statcast or mlb_statcast_expected), so usage is only implied.

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