# Machina World Cup Intelligence MCP and APIs, agent.txt Status: developer preview Scope: World Cup 2026 showcase, tournament concluded MCP (SSE): https://worldcup-mcp.org.machina.gg/sse (header: X-Api-Token) Base URL: https://api.machina.gg/world-cup/v1 Human page: https://machina.gg/world-cup-api OpenAPI: https://machina.gg/world-cup-api/openapi.json (complete schemas + one real 200 example for the 11 archived endpoints; live-market/intelligence endpoints partial) Docs: https://worldcup-docs.machina.gg/ ## Product summary World Cup Intelligence MCP and APIs for apps and agents. World Cup 2026 has finished, and this is what the tournament build shipped. Ask anything about a tournament match, get a grounded, source-cited answer. One MCP tool call or one REST request. ## Request contract (archived endpoints) World Cup 2026 is complete: resolve, get-schedule, get-event-context, get-standings, get-squads, get-injuries, get-player-performance-context, get-match-forecast, backtest-forecasts, skills/match-recap and skills/player-spotlight are served from the immutable tournament archive (world-cup-2026-final-v3). No provider, model or write runs. Fixture-scoped endpoints REQUIRE a fixture selector in the JSON body: "event" ("Brazil vs Morocco") | "event_urn" | "provider_event_id" | "team" (+ "opponent" / "date"). get-player-performance-context also needs "player" (or "player_urn" / "player_id"). skills/player-spotlight needs "player"; resolve needs "id". get-standings / backtest-forecasts take no selector (World Cup 2026 only). If the request cannot be answered the API replies with a typed error and does NOT bill: 400 selector_required | selector_ambiguous (error.candidates lists matches) | unsupported_parameter 404 not_found · 503 capability_unavailable (retry later) · 502 archive_error error.reason_code, error.accepted_fields and error.candidates tell you how to fix the call. Every body arrives wrapped in the transport envelope; read the payload from "data": 200 → {"status":"success","meta":{"code":200},"data":{"archive":…,"coverage":…,…}} 4xx → {"status":"error","meta":{"code":400},"data":{},"error":{"type":…,"reason_code":…,"billed":false,…}} The OpenAPI 200 schemas describe the wrapped body (spec 1.5.0). get-match-forecast returns the model's ORIGINAL pre-kickoff forecast. forecast.data_source = "seed" (confidence 0.15) means a side's first match: the FIFA-ranking prior — intended, not a placeholder. "blend" / "results" follow as tournament results accrue. archive.notes repeats this. ## Providers Markets and reasoning: Kalshi, Polymarket, Google Gemini, xAI Grok ## MCP quickstart Ask in plain English, fixtures and players resolve from natural language, and every response echoes the resolved event_urn so the next call can chain on it. Connect (Claude Code shown; any MCP client over SSE works): claude mcp add --transport sse world-cup-intelligence \ https://worldcup-mcp.org.machina.gg/sse \ --header "X-Api-Token: " Then just ask: - "get market context for Brazil vs Morocco" - "fan pulse for Morocco" 15 MCP tools + free health check · four tiers: Discover: - worldcup_resolve - worldcup_get_schedule - worldcup_health Skills: - worldcup_match_preview - worldcup_match_recap - worldcup_player_spotlight - worldcup_fan_pulse - worldcup_market_watch Context & Markets: - worldcup_get_event_context - worldcup_search_markets - worldcup_get_market_state Models & Research: - worldcup_get_match_forecast - worldcup_get_signal - worldcup_find_market_edges - worldcup_explain_market_move - worldcup_backtest_forecasts ## Skills, finished outcome cards - worldcup-match-preview: Match Preview, Grounded preview: form, key men, group context, market snapshot. - worldcup-match-recap: Match Recap, Post-match recap authored after the final whistle. - worldcup-player-spotlight: Player Spotlight, Grounded player card with performance context and narrative. - worldcup-fan-pulse: Fan Pulse, Social and news sentiment around a team, player, or match. - worldcup-market-watch: Market Watch, Biggest movers plus informational market context, summarized. ## APIs, building blocks ### Match & Context Resolve any provider id to a canonical entity, then pull fixtures, standings, squads, injuries, and enriched match context. Endpoints: - worldcup-resolve - worldcup-get-schedule - worldcup-get-event-context - worldcup-get-standings - worldcup-get-squads - worldcup-get-injuries - worldcup-get-player-performance-context ### Markets Search Kalshi and Polymarket in one normalized shape, with live order-book depth, price history, and movers. Endpoints: - worldcup-search-markets - worldcup-get-market-state - worldcup-market-movers - worldcup-compare-market-sources ### Intelligence Grounded briefs, price-move explanations, fan sentiment, and model-vs-market differences, with sources, confidence, and caveats. Informational research only; no selection, ranking, or recommendation of wagers. Endpoints: - worldcup-generate-market-brief - worldcup-explain-market-move - worldcup-fan-sentiment-context - worldcup-find-market-edges ### Models & Research Dixon-Coles probabilities, model-vs-market differences, de-vigged probabilities, and historical backtests for informational research. No selection, ranking, or recommendation of wagers. Endpoints: - worldcup-get-match-forecast - worldcup-get-signal - worldcup-backtest-forecasts ## Authentication API-key auth via Bearer token in the Authorization header: Authorization: Bearer $MACHINA_API_KEY Never hardcode credentials, use environment variables. ## Example request (Skill) curl https://api.machina.gg/world-cup/v1/skills/match-preview \ -H "Authorization: Bearer $MACHINA_API_KEY" \ -d '{ "event": "Brazil vs Morocco" }' ## Example response (example data, not live) { "skill_card": { "headline": "Brazil vs Morocco: Group C heavyweights clash at MetLife Stadium", "summary": "Brazil bring Vinícius Júnior and Endrick; Morocco rely on the tactical discipline that powered their 2022 semi-final run.", "key_players": ["Vinícius Júnior", "Endrick"], "model_forecast": { "home_win": 0.39, "draw": 0.32, "away_win": 0.29, "most_likely_score": "1-1", "confidence": 0.15 }, "team_form": { "home": "Seeded from FIFA/qualifier form.", "away": "Seeded from FIFA/qualifier form." }, "watch_items": ["How Morocco's defense handles Vinícius Júnior and Endrick."] }, "served_from": "cache", "freshness": "FRESH" } ## Pricing, Machina Credits Credits never expire and work across every Machina product. Packs: - Free ($0): 100 credits. Explore and prototype, no card required. - Starter ($50): 5,000 credits. $0.010 / credit. - Pro ($200): 25,000 credits. $0.008 / credit · 20% off. - Scale ($600): 100,000 credits. $0.006 / credit · 40% off. Credit cost by class: - health: free - data: 1 credit - market: 3 credits - social: 8 credits - intelligence: 12 credits - model comparison: 18 credits - skill: 25–60 credits ## Rate limits - Free: 10 requests/min - Starter: 60 requests/min - Pro: 300 requests/min - Scale: custom ## Safety rules - Read-only. These endpoints never place trades, route orders, or recommend bets. - Market and model outputs are informational research only; they do not select, rank, or recommend wagers. - Responses carry confidence, sources, probabilities, backtests, and resolution, liquidity, and freshness caveats. - Demo payloads on the marketing page are example data until backed by live endpoints. - Respect rate limits and credit entitlements for your plan tier. ## Support / contact - Email: support@machina.gg - Talk to the team: https://machina.gg/schedule