Xctf Data

machina-sports/sports-skills/skills/xctf-data

作者 machina-sports09eb7e8566f4MIT242 个星标收录于 2026年10月8日更新于 2026年10月8日仓库3天前更新

NCAA cross country and track & field athlete data via TFRRS (tfrrs.org) and news via The Stride Report. Fetch athlete profiles including all personal records (PRs), eligibility year, school, full season-by-season results history, and XC/TF news. Zero config, no API keys. Use when: user asks about NCAA cross country, NCAA track and field, college running, TFRRS athlete profiles, personal records, PRs, XC or TF season results, individual athlete performance history, or XC/TF news. Don't use when: user asks about professional track, Diamond League, or other sports — use nfl-data, nba-data, wnba-data, nhl-data, mlb-data, golf-data, cricket-data, cfb-data, cbb-data, tennis-data, fastf1, or volleyball-data. For betting use polymarket or kalshi.

包含脚本Data & Analytics
AI 生成的概览

从 TFRRS 获取 NCAA 越野跑和田径运动员数据,并从 The Stride Report 获取新闻。

功能
提供命令行工具和 Python SDK,用于从 TFRRS 公开页面和 The Stride Report RSS 源获取 NCAA 越野跑与田径信息。可返回包含个人最好成绩、参赛资格、学校和逐赛季比赛成绩的运动员档案,以及团队名单、含团体得分的比赛结果、运动员搜索和最新新闻文章。该技能附带参数校验脚本和供模型阅读的 API 参考文档。
适用场景
当用户询问 NCAA 越野跑或田径、大学跑步、TFRRS 运动员档案、个人最好成绩、赛季成绩、团队名单、比赛结果或越野跑/田径新闻时使用。不适用于职业田径、钻石联赛、其他运动或博彩。
运行要求
需要 Python 3.10+ 以及访问 tfrrs.org 和 thestridereport.com 的网络连接。需通过 pip 安装 sports-skills 包,也可从 GitHub 安装。无需 API 密钥。附带可执行校验脚本和参考文档。

XC/TF Data (TFRRS — NCAA Cross Country & Track and Field)

Before writing queries, consult references/api-reference.md for parameters, URL conventions, and return shapes.

Setup

Before first use, check if the CLI is available:

bash
which sports-skills || pip install sports-skills

If pip install fails, install from GitHub:

bash
pip install git+https://github.com/machina-sports/sports-skills.git

Requires Python 3.10+. No API keys required. All data comes from TFRRS public pages and The Stride Report RSS feed.

Quick Start

CLI (preferred):

bash
sports-skills xctf get_athlete_profile --athlete_id=9230145 --school=BYU --name=Jane_Hedengrensports-skills xctf get_news --limit=5

Python SDK:

python
from sports_skills import xctf
profile = xctf.get_athlete_profile(    athlete_id="9230145",    school="BYU",    name="Jane_Hedengren",)

CRITICAL: Before Any Query

All three parameters are required and must match the athlete's TFRRS URL exactly:

https://www.tfrrs.org/athletes/{athlete_id}/{school}/{name}.html
  • athlete_id — numeric ID (e.g. 9230145)
  • school — school slug with underscores, not spaces (e.g. BYU)
  • name — athlete name slug (e.g. Jane_Hedengren)

Do NOT guess slugs. Find them by navigating to the athlete on tfrrs.org and copying the URL.

Commands

CommandDescription
search_athleteSearch the current team roster by name; returns athlete_id, school, and name slugs for use with get_athlete_profile. Searches both genders automatically. Current athletes only — graduated athletes require a direct TFRRS URL
get_athlete_profileAthlete name, school, eligibility, all PRs, and full season-by-season meet results
get_team_rosterFull XC and/or TF roster for a team
get_meet_resultsAll event results and team scores from a TFRRS meet
get_newsRecent XC/TF articles from The Stride Report (thestridereport.com)

See references/api-reference.md for full parameter details and return shapes.

Examples

Example 1: Look up a current athlete's PRs User says: "What are Jane Hedengren's PRs?" Actions:

  1. Call search_athlete(name="Jane Hedengren", school="UT_college_f_BYU") Result: data.matches contains entries with athlete_id, school, name slugs
  2. Call get_athlete_profile(athlete_id="9230145", school="BYU", name="Jane_Hedengren") Result: data.prs contains all personal records by event (e.g. {"1500": "4:10.24", "5000": "14:44.79", "6K (XC)": "18:29.6", ...})

Example 2: Get a runner's cross country season User says: "Show me Jane Hedengren's 2025 XC season results" Actions:

  1. Call search_athlete(name="Jane Hedengren", school="UT_college_f_BYU")
  2. Call get_athlete_profile with the matched athlete params
  3. Filter data.meets for entries whose date falls in the fall of 2025 (Sep–Nov 2025) Result: List of meets with dates, events, marks, and places

Example 3: Graduated or transferred athlete User says: "What are Katelyn Vuong's PRs from UC Davis?" Actions:

  1. Call search_athlete(name="Katelyn Vuong", school="CA_college_f_UC_Davis") Result: data.matches is empty — athlete has graduated
  2. Tell the user: "Katelyn Vuong is not on UC Davis's current roster. Please find her profile URL on tfrrs.org (e.g. search 'Katelyn Vuong UC Davis tfrrs') and share it."
  3. User provides: https://www.tfrrs.org/athletes/7899206/UC_Davis/Katelyn_Vuong.html
  4. Extract params from the URL and call get_athlete_profile(athlete_id="7899206", school="UC_Davis", name="Katelyn_Vuong") Note: TFRRS creates separate profiles for XC and TF. If both exist, fetch both IDs for complete PRs.

Example 4: Get a team's current roster User says: "Show me the UC Davis women's XC roster" Actions:

  1. Call get_team_roster(school="CA_college_f_UC_Davis", sport="xc") Result: List of athletes with name, year, and profile slugs

Example 5: Get results from a meet User says: "Show me the results from the Stanford Invitational" Actions:

  1. Find the meet on tfrrs.org and copy the meet_id and slug from the URL (e.g. tfrrs.org/results/95890/Stanford_Invitational)
  2. Call get_meet_results(meet_id="95890", slug="Stanford_Invitational") Result: All event results and team scores from the meet. Each result has place, name, year, team, marks (the recorded mark, e.g. ["9.72"], or ["DNF"]) and score (team points, null at unscored meets); wind, conversion (imperial mark) and relay athletes appear when the event has them.

For a cross-country meet (URL like tfrrs.org/results/xc/28714/Gans_Creek_Classic) pass sport="xc": get_meet_results(meet_id="28714", slug="Gans_Creek_Classic", sport="xc"). XC team_scores are keyed by race name. XC ids use a separate range, so an XC id without sport="xc" returns an unrelated track meet (flagged in warnings).

Example 6: Get the latest XC/TF news User says: "What's the latest college track news?" Actions:

  1. Call get_news(limit=10) Result: Recent articles from The Stride Report with title, date, summary, and link

Commands that DO NOT exist — never call these

  • get_team_rankings — does not exist. Use get_athlete_profile for individual data.
  • search_athletes — does not exist. The correct command is search_athlete (no trailing 's').
  • fetch_news — does not exist. The correct command is get_news.

If a command is not listed in the Commands table above, it does not exist.

Error Handling

When a command fails, do not surface raw errors to the user. Instead:

  1. For get_athlete_profile: confirm athlete_id, school, and name match the TFRRS URL exactly (case-sensitive)
  2. For search_athlete: verify the team slug is correct by checking the team's TFRRS page URL
  3. For get_meet_results: verify the meet_id and slug match the meet's TFRRS URL exactly
  4. For get_team_roster: verify the school slug is correct
  5. For get_news: if the feed fails, inform the user that The Stride Report may be temporarily unavailable
  6. Report failure with a clean message only after exhausting alternatives

Troubleshooting

sports-skills command not found Run pip install sports-skills or install from GitHub (see Setup above).

HTTP 404 on athlete profile The school or name slug does not match the TFRRS URL exactly. Slugs are case-sensitive and use underscores. Copy directly from tfrrs.org.

prs returns empty dict The athlete's profile page may be very new or structured differently. Check the URL directly on tfrrs.org.

search_athlete returns empty matches The athlete is likely graduated or transferred. See Example 3 above for how to handle this.

get_meet_results returns no events The meet_id or slug may be incorrect. Copy both directly from the meet's TFRRS URL. If the URL contains /results/xc/, pass sport="xc".

get_news fails or returns no articles The Stride Report RSS feed may be temporarily unavailable. Try again later.

Connection errors or timeouts TFRRS may be temporarily unavailable. Requests are throttled to 1 per second automatically — wait a moment and retry.

来源与署名

来源:machina-sports/sports-skills位于skills/xctf-data提交09eb7e8

许可证: MIT

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架

更多来自 machina-sports/sports-skills 的技能

World Cup

machina-sports

Premium FIFA World Cup 2026 market & match intelligence — a hosted, read-only layer that fuses official match truth (fixtures, standings, squads, injuries, player performance) with live prediction markets (Kalshi + Polymarket: prices, order books, price history, movers, cross-venue edges) and AI-grounded context (prematch briefs, move explanations, fan/social pulse). Every entity carries a canonical machina URN cross-walked across api-football, sportradar, opta, entain and ESPN, so a market resolves to a fixture resolves to two teams. This skill is prompt-only and premium: it routes the agent to the hosted World Cup Intelligence project (a per-project Machina MCP server) via `machina-cli`. It runs no code locally and ships no API keys. Use when: the user wants World Cup 2026 odds + match context together, asks "what moved and why", wants a grounded market brief or fan-sentiment read on a fixture, or needs one stable id that joins markets ↔ fixtures ↔ teams across providers. Don't use when: the user wants fr

待分类2423天前更新

Sports Reporter

machina-sports

通过 sports-skills 命令行工具获取实时数据,生成原创体育新闻文章。

包含脚本
Writing & Content2423天前更新

Volleyball Data

machina-sports

通过 Nevobo API 获取荷兰排球数据:积分榜、赛程、赛果、俱乐部、赛事和新闻。

Data & Analytics2423天前更新

Polymarket

machina-sports

只读访问 Polymarket 体育预测市场:赔率、价格、订单簿、赛事与市场搜索。

包含脚本
Business & Finance2423天前更新

Metadata

machina-sports

通过 TheSportsDB 查询球队队徽、球员照片、球场与俱乐部信息,并支持球队和球员名称搜索。

Research & Analysis2423天前更新

Markets

machina-sports

Markets orchestration — connects ESPN live schedules with Kalshi and Polymarket prediction markets. Unified dashboards, odds comparison, entity search, and bet evaluation across platforms. Use when: user wants to see prediction market odds alongside ESPN game schedules, compare odds across platforms, search for a team/player on Kalshi or Polymarket, check for arbitrage between ESPN odds and prediction markets, or evaluate a specific game's market value. Don't use when: user wants raw prediction market data without ESPN context — use polymarket or kalshi directly. For pure odds math (conversion, de-vigging, Kelly) — use betting. For live scores without market data — use the sport-specific skill.

待分类2423天前更新