mcpField
C
cbb-data

cbb-data

github.com/machina-sports数据与数据库261674 次安装今天更新
代码仓库

关于 cbb-data

cbb-data 是通过 `sports-skills` 命令行查询大学篮球数据的 skill,涵盖赛况、球队、统计数据和 NCAA 锦标赛信息,并说明赛季选择及球队、联盟 ID 的查询方法。

主要功能

  1. 01赛况、赛程与排名
  2. 02球队名单和统计数据
  3. 03排名、新闻与逐回合记录
  4. 04覆盖各级别的 NCAA 官方数据
  5. 05锦标赛对阵表与预测

适用场景

  1. 01查询大学篮球实时赛况
  2. 02查看某个联盟的排名
  3. 03查找球队名单或统计数据
  4. 04跟进 NCAA 锦标赛结果与预测

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/machina-sports/sports-skills --skill cbb-data

安装后在 Claude Code 中输入/cbb-data确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
api-reference.md
conference-ids.md
team-ids.md
scripts/
validate_params.sh

详细介绍

大学篮球数据(CBB)

编写查询前,请查阅 references/api-reference.md,了解端点、分区 ID、球队 ID 和数据结构。

设置

首次使用前,检查 CLI 是否可用:

which sports-skills || pip install sports-skills

如果 pip install 因 Python 版本错误而失败,则此软件包需要 Python 3.10 及以上版本。查找兼容的 Python 版本:

python3 --version  # check version
# If < 3.10, try: python3.12 -m pip install sports-skills
# On macOS with Homebrew: /opt/homebrew/bin/python3.12 -m pip install sports-skills

无需 API 密钥。

快速入门

优先使用 CLI,以避免 Python 导入路径问题:

sports-skills cbb get_scoreboard
sports-skills cbb get_rankings
sports-skills cbb get_standings --group=23

重要:执行任何查询前

重要:调用任何数据端点前,请确认:

  • 赛季年份根据系统提示中的 currentDate 推导得出,绝不能硬编码。
  • 查询排名时,group 参数设为正确的分区 ID(见 references/api-reference.md)。
  • 如果只提供了球队名称,请使用 get_teams 解析球队 ID。

选择赛季

根据系统提示中的日期推导当前年份(例如,currentDate: 2026-02-28 → 当前年份为 2026)。

  • 如果用户指定了赛季,按原样使用。
  • 如果用户说“当前”“本赛季”,或未指定赛季:CBB 赛季从 11 月持续到 4 月。如果当前月份是 11 月或 12 月,使用 season = current_year + 1。如果是 1 月至 4 月,使用 season = current_year。如果是 5 月至 10 月(休赛期),使用 season = current_year(最近结束的赛季)。

重要:大学联赛与职业联赛的区别

  • 排名按分区统计——使用 group 参数筛选
  • 排名榜取代球员领跑榜——大学篮球使用 AP Top 25 和 Coaches Poll
  • 排名球队在比分板参赛队数据中有一个 rank 字段(null = 未排名)
  • 360 多支 D1 球队——赛季期间每天有许多场比赛(分区赛期间每天 50 场以上)
  • 疯狂三月——NCAA 锦标赛在 3 月/4 月举行,共有 68 支球队

命令

命令说明
get_scoreboard实时/近期大学篮球比分
get_standings按分区查看排名(使用 group 参数)
get_teams所有 360 多支 D1 男子篮球球队
get_team_roster球队完整名单
get_team_schedule指定球队的赛程
get_game_summary详细技术统计和球员数据
get_rankingsAP Top 25 和 Coaches Poll 排名
get_news大学篮球新闻
get_play_by_play比赛完整逐回合记录
get_win_probability胜率图表数据
get_schedule指定日期或赛季的赛程
get_futures未来赛果/赔率市场(全国锦标赛等)
get_team_stats球队统计资料
get_player_stats球员统计资料
get_ncaa_scoreboardNCAA 官方比分板——D1、D2 和 D3
get_ncaa_schedule有比赛的日期(官方索引)
get_ncaa_gameNCAA 官方比赛信息
get_ncaa_boxscoreNCAA 官方技术统计
get_ncaa_play_by_play官方逐回合记录
get_ncaa_bracket疯狂三月对阵表及实时比分
get_ncaa_schoolsNCAA 学校索引(所有级别)
get_power_indexD1 球队的 BPI(篮球实力指数)评级
get_tournament_projectionsNCAA 锦标赛预测,包括种子排名、赛区和晋级概率
compare_teams使用 BPI 评级和赛季统计数据比较两支球队
find_upset_candidates根据 BPI 与种子排名差异查找可能爆冷的比赛

完整的参数列表和返回数据结构请参见 references/api-reference.md。

NCAA 官方后端

get_ncaa_* 命令读取 NCAA 自己的端点(sdataprod.ncaa.com + ncaa.com)——这些赛事覆盖范围不包含在 ESPN 中:

  • 通过 division="d2"/"d3" 获取 D2 和 D3 记分牌——ESPN 的大学篮球 覆盖以 D1 为主。
  • 现在,两个记分牌默认都会返回 所有 Division I 赛事——由 ESPN 支持的 get_scoreboard/get_schedule 以前沿用了 ESPN 未分组时仅显示 Top 25 的默认设置(普通周五只有 1 场比赛,而不是约 24 场)。 显式传入 group 可指定范围更窄的 ESPN 分组。
  • 带实时比分的 官方 March Madness 对阵表:get_ncaa_bracket。
  • 官方比赛详情:get_ncaa_game、get_ncaa_boxscore、 get_ncaa_play_by_play。
  • 学校索引(约 1,200 所学校,涵盖所有级别):get_ncaa_schools。

NCAA 比赛 ID(来自 get_ncaa_scoreboard)与 ESPN 赛事 ID 毫无关联——请按比赛日期和球队名称进行匹配。NCAA 会重新发放比赛 ID,因此请从最新的 get_ncaa_scoreboard 调用中获取,不要将其保存。没有比赛球队时,get_ncaa_bracket 会返回错误,而非占位对阵表:2020 年赛事已取消,未来的对阵表会在参赛队伍公布后生成。除 get_ncaa_schools 外,所有 get_ncaa_* 命令都依赖 NCAA 的 GraphQL 持久化查询,其哈希值会在 ncaa.com 重新部署时轮换;发生这种情况时,命令会明确说明,而由 ESPN 支持的 get_scoreboard / get_schedule 可覆盖相同的 D1 比赛。

示例

示例 1:当前排名 用户说:“大学篮球排名是多少?” 操作:

  1. 调用 get_rankings() 结果:AP Top 25 和教练投票榜,包含排名、上期排名、战绩和得分

示例 2:联盟排名 用户说:“显示 SEC 篮球排名” 操作:

  1. 根据 currentDate 推算赛季年份
  2. 调用 get_standings(group=23, season=<derived_year>)(group 23 = SEC) 结果:SEC 排名,包含各队的胜负战绩

示例 3:今日比分 用户说:“今天的大学篮球比分是多少?” 操作:

  1. 调用 get_scoreboard() 结果:所有正在进行和近期的 CBB 比赛,包含比分和排名状态

示例 4:球队阵容 用户说:“显示 Duke 的阵容” 操作:

  1. 调用 get_team_roster(team_id="150") 结果:Duke 的完整阵容,包含姓名、位置和球衣号码

示例 5:March Madness 冠军赔率 用户说:“谁最有希望赢得 March Madness?” 操作:

  1. 调用 get_futures(limit=10) 结果:全国冠军的热门竞争者及其赔率值

示例 6:球队统计数据 用户说:“显示 Duke 的球队统计数据” 操作:

  1. 根据 currentDate 推算赛季年份
  2. 调用 get_team_stats(team_id="150", season_year=<derived_year>) 结果:Duke 按类别划分的赛季统计数据,包含数值、排名和场均数据

不存在的命令——绝不要调用

  • get_odds / get_betting_odds——不可用。要查询预测市场赔率,请使用 polymarket 或 kalshi 技能。
  • search_teams——不存在。请改用 get_teams。
  • get_box_score——不存在。请改用 get_game_summary。
  • get_player_ratings——不存在。请改用 get_player_stats。
  • get_ap_poll——不存在。请改用 get_rankings。

如果某个命令未列在上方的 Commands 表格中,则该命令不存在。

错误处理

命令失败时,不要向用户展示原始错误。请改为:

  1. 如果未找到赛事,检查是否处于休赛期(CBB 赛季为 11 月至 4 月)
  2. 如果未指定分组筛选条件且排名为空,请尝试指定具体联盟
  3. March Madness 期间,记分牌会显示锦标赛比赛
  4. 穷尽其他方案后,再用清晰的消息说明失败

故障排除

错误:找不到 sports-skills 命令 原因:未安装软件包 解决方案:运行 pip install sports-skills

错误:记分牌上没有比赛 原因:CBB 具有季节性(11 月至 4 月);休赛期的记分牌将为空 解决方案:全年使用 get_rankings 或 get_news;使用 get_schedule 查看赛季何时恢复

错误:返回的比赛太多,难以筛选 原因:赛季期间,每天安排的比赛超过 50 场 解决方案:使用 --group 按联盟筛选,或使用 --limit 限制结果数量

错误:排名为空 原因:排名仅在赛季期间(11 月至 3 月)每周发布 解决方案:休赛期使用 get_news;排名将于 11 月恢复

评论

支持 Markdown