MLB Statcast 高级棒球数据
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_15292d5a/yjkj-mlb-statcast。
技能介绍
要解决什么问题
当你想知道 Aaron Judge 2025 赛季击球初速的第 95 百分位是多少,或者 Paul Skenes 的滑球挥空率是否高于联盟平均时,传统 box score 完全给不出答案。这类问题需要逐球级别的 Statcast 数据、投手武器库细分统计、预期表现与实际结果的偏差分析,以及联盟百分位排名。公开的 Baseball Savant / FanGraphs API 虽然免费,但调用繁琐:需要手动处理 MLBAM ID 映射、日期范围截断、批量查询优化,以及投手/击球手歧义消解。
核心能力与工作流程
这个技能封装了 statcast-mcp 服务器,暴露 24 个工具,覆盖从身份解析到高级指标的完整链路:
- 身份解析:
player_lookup获取 MLBAM ID 及 FanGraphs、Baseball-Reference、Retro 等备用标识符 - 逐球数据:
statcast_search/statcast_batter/statcast_pitcher按日期范围或球员拉取投球序列 - 赛季统计:
season_batting_stats/season_pitching_stats及自定义窗口版本 - 预期值:
statcast_batter_expected_stats/statcast_pitcher_expected_stats提供 xBA、xSLG、xwOBA;expected_stats_batch支持批量查询 - 武器库:
statcast_pitcher_arsenal_stats按球种拆分 BA/SLG/wOBA/Whiff%/K%/Hard-Hit% - 击球质量与百分位:
statcast_batter_exitvelo_barrels、batter_percentile_ranks、outs_above_average等
推荐的工作流程是:先用 player_lookup 确认 MLBAM ID 和活跃年份,再优先使用 expected_stats_batch 等批量工具,逐球查询保持 1–5 天的短窗口(长窗口可能耗时 30 秒以上)。数据源为 pybaseball 封装的公共端点,无需 API key。
适用边界与注意点
- 仅覆盖 MLB,不含小联盟、大学棒球或国际赛事
- Statcast 历史数据始于 2008 年
- 不提供实时比分、play-by-play 或赔率数据
- 常见名字(如 "Joe Green")会返回多个候选,需根据
mlb_played_first/mlb_played_last年份消歧 player_lookup用姓氏子串匹配,下游工具(如batter_percentile_ranks)要求全名,两者输入格式不同- 投手/击球手歧义时,可用 "Last, First" 全名格式强制指定
使用场景
- 赛后复盘投手某种球路的挥空率与好球带边缘分布
- 对比某球员当季实际打击数据与xBA/xSLG预期值的偏差
- 检索某时段内全联盟击球初速前10%的打者名单
- 分析中外野手本季OAA与方向性防守贡献的排名
适合人员
- 棒球迷:想用Statcast指标替代box score做深度分析
- 数据分析师:为球队报告拉取逐球数据与赛季级别统计
- 体育内容作者:写球员前瞻时需要对比实际与预期表现
- R&D工程师:构建棒球数据产品时需要验证Statcast指标口径