Polymarket Tennis
livetennisapi/livetennisapi-mcp
Build observe-only Polymarket and Kalshi tennis market tooling on the polymarket-tennis Python package (MIT) plus the Live Tennis API free tier.
Dutch volleyball data (Eredivisie, Topdivisie, Superdivisie, and the full Dutch pyramid) via the Nevobo API.
$ npx skills add machina-sports/sports-skills --skill volleyball-data -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install machina-sports/sports-skills volleyball-data --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/machina-sports/sports-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/volleyball-data .claude/skills/volleyball-data && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "volleyball-data" agent skill from https://github.com/machina-sports/sports-skills/tree/main/skills/volleyball-data into .claude/skills/volleyball-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "volleyball-data", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/machina-sports/sports-skills/tree/main/skills/volleyball-dataType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add machina-sports/sports-skills --skill volleyball-data -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install machina-sports/sports-skills volleyball-data --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/machina-sports/sports-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/volleyball-data .agents/skills/volleyball-data && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "volleyball-data" agent skill from https://github.com/machina-sports/sports-skills/tree/main/skills/volleyball-data into .agents/skills/volleyball-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "volleyball-data", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add machina-sports/sports-skills --skill volleyball-data -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install machina-sports/sports-skills volleyball-data --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/machina-sports/sports-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/volleyball-data .cursor/skills/volleyball-data && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "volleyball-data" agent skill from https://github.com/machina-sports/sports-skills/tree/main/skills/volleyball-data into .cursor/skills/volleyball-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "volleyball-data", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/machina-sports/sports-skills.git --path skills/volleyball-data--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add machina-sports/sports-skills --skill volleyball-data -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install machina-sports/sports-skills volleyball-data --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/machina-sports/sports-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/volleyball-data .gemini/skills/volleyball-data && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "volleyball-data" agent skill from https://github.com/machina-sports/sports-skills/tree/main/skills/volleyball-data into .gemini/skills/volleyball-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "volleyball-data", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install machina-sports/sports-skills volleyball-dataInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add machina-sports/sports-skills --skill volleyball-data -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/machina-sports/sports-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/volleyball-data .github/skills/volleyball-data && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "volleyball-data" agent skill from https://github.com/machina-sports/sports-skills/tree/main/skills/volleyball-data into .github/skills/volleyball-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "volleyball-data", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add machina-sports/sports-skills --skill volleyball-data -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install machina-sports/sports-skills volleyball-data --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/machina-sports/sports-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/volleyball-data .opencode/skills/volleyball-data && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "volleyball-data" agent skill from https://github.com/machina-sports/sports-skills/tree/main/skills/volleyball-data into .opencode/skills/volleyball-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "volleyball-data", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
volleyball-dataDutch volleyball data (Eredivisie, Topdivisie, Superdivisie, and the full Dutch pyramid) via the Nevobo API.
Volleyball Data is an agent skill from machina-sports/sports-skills. 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…
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/api-reference.md` and `references/competition-ids.md`).
It sits in Data & Analytics. It works with Kalshi, Polymarket and Python. The repository describes itself as: Open-source agent skills for live sports data and prediction markets. Football, F1, Kalshi, Polymarket. Zero API keys. SKILL.md format. The licence is MIT.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 09eb7e8. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pippython3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Volleyball Data loads about 2k tokens when it runs, and up to ~3.5k if it reads all its reference files. Until then it costs about 190 tokens; SKILL.md has 778 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from machina-sports/sports-skills at commit 09eb7e8, republished under its MIT licence (© machina-sports). 778 words, ~1,984 tokens.
.claude/skills/volleyball-data/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Before writing queries, consult references/api-reference.md for endpoints, ID conventions, and data shapes.
Before first use, check if the CLI is available:
which sports-skills || pip install sports-skillsIf pip install fails (package not found or Python version error), install from GitHub:
pip install git+https://github.com/machina-sports/sports-skills.gitThe package requires Python 3.10+. If your default Python is older, use a specific version:
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-skillsNo API keys required. All data comes from the Nevobo (Nederlandse Volleybalbond) open API.
Prefer the CLI — it avoids Python import path issues:
sports-skills volleyball get_competitions
sports-skills volleyball get_standings --competition_id=nevobo-eredivisie-heren
sports-skills volleyball get_results --competition_id=nevobo-eredivisie-dames
sports-skills volleyball get_schedule --competition_id=nevobo-topdivisie-heren-aPython SDK (alternative):
from sports_skills import volleyball
standings = volleyball.get_standings(competition_id="nevobo-eredivisie-heren")
results = volleyball.get_results(competition_id="nevobo-eredivisie-dames")CRITICAL: Before calling any data endpoint, verify:
competition_id uses a valid value from references/competition-ids.md — never guess.club_id (use get_clubs to find one — the organisatiecode field).get_competitions or get_clubs to discover them.competition_id Parameter8 leagues across the top 3 tiers of Dutch volleyball are pre-configured. The competition_id follows the pattern nevobo-<league>-<gender>[-<pool>]:
nevobo-eredivisie-heren, nevobo-eredivisie-damesnevobo-topdivisie-heren-a, nevobo-topdivisie-heren-b, nevobo-topdivisie-dames-a, nevobo-topdivisie-dames-bnevobo-superdivisie-heren, nevobo-superdivisie-damesFor lower divisions (1e/2e/3e Divisie, regional, youth, beach — 6,400+ poules), use get_poules to discover them.
See references/competition-ids.md for the full reference with team counts and the Dutch volleyball pyramid.
| Command | Description |
|---|---|
get_competitions | List all available competitions and leagues |
get_standings | League table (rank, team, matches, points) |
get_schedule | Upcoming matches (teams, venue, date) |
get_results | Match results (score, set-by-set scores) |
get_clubs | List volleyball clubs (name, city, province) |
get_club_schedule | Club's upcoming matches across all teams |
get_club_results | Club's results across all teams |
get_poules | Browse Nevobo poules (for lower divisions discovery) |
get_tournaments | Tournament calendar |
get_news | Federation news |
See references/api-reference.md for full parameter lists and return shapes.
Current season only. Nevobo removes past-season poules and exports, so get_standings, get_schedule and get_results always cover the current season. Their optional season ("2026-2027" or 2026) returns a clear error for any other season. Matches without a date yet have date: null; cancelled matches carry status: "vervallen".
Example 1: Eredivisie standings User says: "What are the current Dutch volleyball standings?" Actions:
get_standings(competition_id="nevobo-eredivisie-heren") for menget_standings(competition_id="nevobo-eredivisie-dames") for women
Result: League tables with rank, team name, matches played, and pointsExample 2: Recent match results User says: "Show me recent Eredivisie volleyball results" Actions:
get_results(competition_id="nevobo-eredivisie-heren")
Result: Match results with home/away teams, match score (e.g. "3-1"), and set scores (e.g. ["25-21", "25-18", "21-25", "25-20"])Example 3: Club schedule User says: "What matches does LSV have coming up?" Actions:
get_clubs(limit=10) and find LSV's organisatiecode (CKL5C67)get_club_schedule(club_id="CKL5C67")
Result: Upcoming matches for all of LSV's teams with venues and datesExample 4: Second tier standings User says: "Show me the Topdivisie standings" Actions:
get_standings(competition_id="nevobo-topdivisie-heren-a") for men pool Aget_standings(competition_id="nevobo-topdivisie-heren-b") for men pool B
Result: Two pool tables with 10 teams eachExample 5: Discover lower divisions User says: "What divisions are available in Dutch volleyball?" Actions:
get_poules(regio="nationale-competitie", limit=20)
Result: List of national-level poules including 1e/2e/3e Divisie with their abbreviations and descriptionsget_scoreboardget_results for recent match results.get_rankingsget_standings for league tables.get_team_rosterget_clubs for club information.get_player_infoIf a command is not listed in the Commands table above, it does not exist.
When a command fails, do not surface raw errors to the user. Instead:
get_clubs to find the organisatiecode firstget_competitions to verify available leaguesError: sports-skills command not found
Cause: Package not installed
Solution: Run pip install sports-skills. If not on PyPI, install from GitHub: pip install git+https://github.com/machina-sports/sports-skills.git
Error: Standings returns empty list
Cause: The competition's regular season phase may have ended, or the season hasn't started yet
Solution: Use get_results to check recent results, or get_poules to discover current active poule paths
Error: Schedule returns 0 matches Cause: The competition phase has completed and no more matches are scheduled for that poule Solution: This is expected between season phases. Check other leagues (Topdivisie/Superdivisie may still be active)
Error: Club schedule/results returns error
Cause: The club_id may be incorrect
Solution: Use get_clubs to find valid club IDs (the organisatiecode field, e.g. "CKL5C67")
Error: Connection errors or timeouts Cause: The Nevobo API may be temporarily unavailable Solution: Wait a moment and retry. The API is public and unauthenticated but may have brief outages
© machina-sports, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in skills/volleyball-data of machina-sports/sports-skills.
Open the folder on GitHubat commit 09eb7e8
Volleyball Data next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Volleyball Data this skillmachina-sports/sports-skills | 243 | — | ~2k | Automated safety check: Pass | MIT | |
| Polymarket Tennislivetennisapi/livetennisapi-mcp | 152 | — | ~3k | Automated safety check: Pass | MIT | |
| Prediction MarketsBlockRunAI/blockrun-mcp | 391 | — | ~3.7k | Automated safety check: Pass | MIT | |
| Predexon Prediction Market DataBlockRunAI/ClawRouter | 6.6k | — | ~4.7k | Automated safety check: Pass | MIT | |
| Surf Crypto Data APIBlockRunAI/blockrun-mcp | 391 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Scikit LearnzLanqing/codex-claude-academic-skills | 4.7k | 16 repos | ~3.9k | Automated safety check: Pass | BSD-3-Clause |
livetennisapi/livetennisapi-mcp
Build observe-only Polymarket and Kalshi tennis market tooling on the polymarket-tennis Python package (MIT) plus the Live Tennis API free tier.
BlockRunAI/blockrun-mcp
A skill your agent uses when the user asks about event probabilities, prediction market odds, what people are betting on, Polymarket/Kalshi prices, sports markets — or about the things you CANNOT…
BlockRunAI/ClawRouter
Reads structured prediction market data for Polymarket, Kalshi and other venues through a local BlockRun gateway: markets, search, leaderboards, wallet analytics and odds.
BlockRunAI/blockrun-mcp
Routes crypto market, on-chain, wallet and prediction-market lookups to the Surf data API through a local ClawRouter, paid per call.
zLanqing/codex-claude-academic-skills
Machine learning in Python with scikit-learn. An agent skill from zLanqing/codex-claude-academic-skills.
google-research/timesfm
Forecasts any univariate time series zero-shot with Google's TimesFM model, returning point forecasts and calibrated prediction intervals without training.
machina-sports/sports-skills
College Basketball (CBB) data via ESPN public endpoints and the NCAA's official endpoints — scores, standings, rosters, schedules, game summaries, play-by-play, win probability, rankings, futures…
machina-sports/sports-skills
College Football (CFB) data via ESPN public endpoints and the NCAA's official endpoints — scores, standings, rosters, schedules, game summaries, play-by-play, rankings, injuries, futures…
machina-sports/sports-skills
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…
machina-sports/sports-skills
Formula 1 data — race schedules, results, lap timing, driver and team info.
machina-sports/sports-skills
PGA Tour, LPGA, and DP World Tour golf data via ESPN public endpoints — tournament leaderboards, scorecards, season schedules, golfer profiles/overviews, and news.
machina-sports/sports-skills
Kalshi prediction markets — events, series, markets, trades, and candlestick data.
Works with
Categories
Dutch volleyball data (Eredivisie, Topdivisie, Superdivisie, and the full Dutch pyramid) via the Nevobo API. Volleyball Data is an agent skill from machina-sports/sports-skills. Dutch volleyball data (Eredivisie, Topdivisie, Superdivisie, and the full Dutch pyramid) via the Nevobo API.
Volleyball Data fits situations like: : user asks about Dutch volleyball; eredivisie volleyball; volleyball standings; volleyball match results.
Run `npx skills add machina-sports/sports-skills --skill volleyball-data -a claude-code`. Or copy the skill folder (skills/volleyball-data in machina-sports/sports-skills) into .claude/skills/volleyball-data in your project. Claude Code loads it when a task matches its description.
Run `npx skills add machina-sports/sports-skills --skill volleyball-data -a codex`. Or copy the skill folder (skills/volleyball-data in machina-sports/sports-skills) into .agents/skills/volleyball-data in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add machina-sports/sports-skills --skill volleyball-data -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/volleyball-data, .gemini/skills/volleyball-data, .github/skills/volleyball-data and .opencode/skills/volleyball-data in your project.
Going by SKILL.md and its folder, Volleyball Data needs the command-line tools its instructions call (pip and python3). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Volleyball Data is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Volleyball Data: Polymarket Tennis (livetennisapi/livetennisapi-mcp, 152 stars), Prediction Markets (BlockRunAI/blockrun-mcp, 391 stars), Predexon Prediction Market Data (BlockRunAI/ClawRouter, 6.6k stars) and Surf Crypto Data API (BlockRunAI/blockrun-mcp, 391 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
machina-sports (a GitHub organization) maintains it in machina-sports/sports-skills, which has 243 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 5, 2026.
Source: machina-sports/sports-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.