skills/sports-news/SKILL.md
Sports news via RSS/Atom feeds and Google News. Fetch headlines, search by query, filter by date. Covers football news, transfer rumors, match reports, and any sport via Google News. Use when: user asks for recent news, headlines, transfer rumors, or articles about any sport. Good for "what's the latest on [team/player]" questions. Supports any Google News query and curated RSS feeds (BBC Sport, ESPN, The Athletic, Sky Sports). Don't use when: user asks for structured data like standings, scores, statistics, or xG — use the sport-specific skill instead: football-data (soccer), nfl-data (NFL), nba-data (NBA), wnba-data (WNBA), nhl-data (NHL), mlb-data (MLB), tennis-data (tennis), golf-data (golf), cricket-data (cricket), cfb-data (college football), cbb-data (college basketball), or fastf1 (F1). Don't use for prediction market odds — use polymarket or kalshi. News results are text articles, not structured data.
npx skillsauth add machina-sports/sports-skills sports-newsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Before writing queries, consult references/api-reference.md for command parameters and references/rss-feeds.md for curated feed URLs.
Prefer the CLI — it avoids Python import path issues:
sports-skills news fetch_items --google_news --query="Arsenal transfer" --limit=5
sports-skills news fetch_feed --url="https://feeds.bbci.co.uk/sport/football/rss.xml"
Python SDK (alternative):
from sports_skills import news
articles = news.fetch_items(google_news=True, query="Arsenal transfer news", limit=10)
feed = news.fetch_feed(url="https://feeds.bbci.co.uk/sport/football/rss.xml")
CRITICAL: Before calling any news command, verify:
currentDate — never hardcoded.google_news=True is always paired with a query parameter.sort_by_date=True is set for any "recent" or "latest" query.Derive the current date from the system prompt's date (e.g., currentDate: 2026-02-16 means today is 2026-02-16).
after = today - 7 daysafter = today - 3 days| Command | Required | Optional | Description |
|---|---|---|---|
| fetch_feed | url | | Fetch an RSS/Atom feed by URL |
| fetch_items | | google_news, query, url, limit, after, before, sort_by_date | Fetch news from Google News or an RSS feed |
fetch_items --google_news --query="<topic>" --limit=5 --sort_by_date=Truefetch_items --google_news --query="<topic>" --after=<7_days_ago> --sort_by_date=True --limit=10fetch_feed --url="<rss_url>".fetch_items --google_news --query="<sport> results" --after=<7_days_ago> --limit=5.Example 1: Transfer news search User says: "What's the latest Arsenal transfer news?" Actions:
after from currentDate: today minus 3 daysfetch_items(google_news=True, query="Arsenal transfer news", after=<derived_date>, sort_by_date=True, limit=10)
Result: Recent Arsenal transfer headlines with source, date, and linksExample 2: Curated RSS feed User says: "Show me BBC Sport football headlines" Actions:
fetch_feed(url="https://feeds.bbci.co.uk/sport/football/rss.xml")
Result: BBC Sport football feed title, last updated, and recent articlesExample 3: Date-filtered news User says: "Any Champions League news from this week?" Actions:
after from currentDate: today minus 7 daysfetch_items(google_news=True, query="Champions League", after=<derived_date>, sort_by_date=True, limit=10)
Result: Champions League articles from the last 7 days, sorted newest firstget_news~~ — does not exist. Use fetch_feed (for RSS) or fetch_items (for Google News search).search_news~~ — does not exist. Use fetch_items with google_news=True and a query parameter.get_headlines~~ — does not exist. Use fetch_items with google_news=True.If a command is not listed in the Commands table above, it does not exist.
Error: Google News returns empty results
Cause: query is missing or too narrow, or google_news=True is not set
Solution: Ensure google_news=True AND a query are both set. Try broader keywords (e.g., "Arsenal" instead of "Arsenal vs Chelsea goal")
Error: RSS feed returns an error
Cause: The feed URL may be temporarily down or the URL format has changed
Solution: Use Google News (fetch_items with google_news=True) as a fallback for the same topic
Error: Articles returned are old despite using "recent" query
Cause: sort_by_date=True is not set, or the after date filter is missing
Solution: Add sort_by_date=True and after=<today - 3 days> to ensure newest articles appear first
development
Sports metadata via TheSportsDB free API (key=3). Team logos and badges, player photos, stadium info, league info, and biographical data across 100+ leagues. No API key required, zero config. Use when: user asks for a team logo, crest, badge, banner, jersey, kit, player photo or headshot, stadium info, club description, or wants to search for teams or players by name across sports. Good for enriching responses from other skills with images and visual identifiers. Don't use when: user asks for scores, standings, fixtures, stats, or odds — use the sport-specific skill instead: football-data (soccer), nfl-data (NFL), nba-data (NBA), wnba-data (WNBA), nhl-data (NHL), mlb-data (MLB), tennis-data (tennis), golf-data (golf), cricket-data (cricket), cfb-data (college football), cbb-data (college basketball), fastf1 (F1), volleyball-data (Dutch volleyball), xctf-data (NCAA XC/TF). Don't use for prediction markets — use polymarket or kalshi.
development
Cricket data via ESPN public endpoints and Cricsheet open data — live-ish series scoreboards, standings, match summaries and news (ESPN), plus historical ball-by-ball, player stats, and player registry (Cricsheet, ODC-BY 1.0). Zero config, no API keys. Use when: user asks about cricket scores, IPL/BBL/PSL/international series, points tables, match details, cricket news, ball-by-ball history, or player career stats. Don't use when: user asks about other sports — use football-data (soccer), nfl-data (NFL), nba-data (NBA), wnba-data (WNBA), nhl-data (NHL), mlb-data (MLB), tennis-data (tennis), golf-data (golf), cfb-data (college football), cbb-data (college basketball), or fastf1 (F1). For betting odds use polymarket or kalshi. For general news use sports-news. Don't use for ICC rankings — no free source exists (v1 limitation).
development
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.
development
Dutch volleyball data (Eredivisie, Topdivisie, Superdivisie, and the full Dutch pyramid) via the Nevobo API. Standings, schedules, results, clubs, tournaments, and news. Zero config, no API keys. Use when: user asks about Dutch volleyball, Eredivisie volleyball, Nevobo, volleyball standings, volleyball match results, volleyball schedules, or Dutch volleyball clubs. Don't use when: user asks about other sports — use football-data (soccer), nfl-data (NFL), nba-data (NBA), wnba-data (WNBA), nhl-data (NHL), mlb-data (MLB), golf-data (golf), cricket-data (cricket), cfb-data (college football), cbb-data (college basketball), tennis-data (tennis), or fastf1 (F1). For betting odds use polymarket or kalshi. For general news use sports-news.