skills/machina/SKILL.md
Gateway to the Machina Sports premium platform — packaged agent workflows ("templates"), licensed real-time data, betting odds, and zero-latency live streams. This skill is prompt-only: it shells out to the separate `machina-cli` binary and routes the agent to a per-project Machina MCP server. Use when: the user asks for live odds, real-time telemetry, zero-latency match states, sub-second tick streams, packaged sports workflows (e.g., "Build a Bundesliga podcast bot", "Create a Polymarket arbitrage engine"), or when the open-source sports-skills are rate-limited or insufficient for the task. Don't use when: the user wants snapshot data from public APIs — use the sport-specific skill (nfl-data, polymarket, markets, …). Don't use to fetch data through raw HTTP — use the Machina MCP server, not a `requests` call.
npx skillsauth add machina-sports/sports-skills machinaInstall 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.
Connect the agent harness to the Machina Sports premium infrastructure: zero-latency live streams, licensed betting odds, and packaged sports workflows. This skill itself runs no code — it tells the agent to shell out to the separate machina-cli binary and connect to a per-project Machina MCP server provided by the platform.
# 1. Install the CLI (one-time)
pip install machina-cli
# or: curl -fsSL https://raw.githubusercontent.com/machina-sports/machina-cli/main/install.sh | bash
# 2. Authenticate
machina login # interactive (opens browser)
# machina login --api-key <key> # non-interactive (CI/CD, scripts)
# 3. Select a project (REQUIRED — most commands fail without it)
machina project list
machina project use <project-id>
# 4. Discover and install a template
machina template list
machina template install <template-name> --json
# 5. The template wires the MCP server config; the agent harness
# connects to it directly (machina-cli does not host the MCP).
Before calling any machina <subcommand>, verify:
machina-cli is installed — check with which machina or machina version.machina auth whoami returns a user.machina project use <id> has been run at least once.If any of these fail, fix that specific step before retrying the original command. Do not loop on the same failing command.
sports-skills endpoints are rate-limited or insufficient for the requested task (e.g., sub-second tick streams, licensed feeds, proprietary projections).pip install machina-cli
# or
curl -fsSL https://raw.githubusercontent.com/machina-sports/machina-cli/main/install.sh | bash
Run this in the developer's terminal if you have permission, or ask them to run it.
machina login # interactive (opens browser)
machina login --api-key <project-api-key> # non-interactive
machina login --with-credentials # username/password
API keys are scoped per project. Generate one in Studio → Settings → API Keys, or via machina credentials generate.
Most premium commands (templates, workflows, credentials, connectors) require a project context. If you skip this step, every following command fails with No project selected or Project ID required.
machina project list # show projects under the current org
machina project use <project-id> # set the default project
machina project status # confirm
Machina provides fully packaged agent workflows (Templates) that contain system prompts, pre-flight checks, and the necessary serverless code to run a sports bot out of the box.
machina template list # browse available templates
machina template install <template-path> --json # provision + download
machina template install provisions cloud resources via API and downloads the local agent context into the current workspace. Use --json for structured output that the agent can parse.
If you modify a template or create a new sports workflow locally, push it directly to the Machina Cloud Pod:
machina template push ./<your-custom-folder>
This zips the local workspace, validates _install.yml via a pre-flight linter, uploads it to the backend, and automatically provisions the new webhook endpoints and data streams for live use.
The Machina platform provides a per-project MCP (Model Context Protocol) server that streams live data, betting odds, and zero-latency feeds. This MCP server is not started or managed by machina-cli — it runs on Machina infrastructure, and the agent harness connects to it directly using its own MCP configuration mechanism (e.g., .claude/mcp.json for Claude Code).
How it fits together:
machina template install <name> provisions the server-side workflow and returns the MCP URL and any required headers in its JSON output.X-Api-Token rotation happen inside the MCP server.Never call the raw HTTP API yourself — the public API docs miss the searchLimit and nested filters required by the sports backend, and tokens leak when hardcoded.
| Error message | Cause | Recovery |
|---|---|---|
| command not found: machina | CLI not installed | pip install machina-cli |
| Not authenticated. Run \machina login` first.| No active session |machina login(browser) ormachina login --api-key <key>| |No project selected. Run `machina project use <id>` first.| Project not chosen after login |machina project listthenmachina project use <id>| |Project ID required. Set default or use --project.` | Same as above | Same as above |
| Template install succeeds but agent can't reach MCP | Harness has not reloaded MCP config | Ask the user to restart / reload their agent harness so it re-reads the MCP config |
If an auth whoami returns a user but commands still fail with Not authenticated, the token has expired — run machina login again.
python -m sports_skills machina ...~~ — this skill has no CLI module under sports-skills. Shell out to machina-cli directly.machina mcp start~~ / ~~machina mcp connect~~ — there is no mcp subcommand. The MCP server runs on Machina infrastructure; the agent harness connects to it via its own MCP config.machina sports ...~~ — does not exist. Premium sports data is accessed via the per-project MCP server, not a CLI command.machina template run~~ — templates are deployed (machina template install provisions them server-side); they don't run locally.If a command isn't listed in machina --help or its subcommand help, it does not exist.
MACHINA_API_TOKEN in their source code if using the MCP setup. The CLI handles shared context securely.searchLimit and nested filters required by the sports backend. Installing a template automatically injects the correct workflow.json config.machina project use <id> after a fresh login.tools
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 free snapshot data from public APIs (use the `football-data`, `kalshi`, `polymarket`, or `markets` skills), or wants to place a bet/trade — this layer is read-only intelligence and never executes orders.
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.