Machina World Cup Intelligence
World Cup 2026 match, team, player and market context from Machina Sports, the sports AI platform.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"world-cup-intelligence": {
"url": "https://worldcup-mcp.org.machina.gg/sse"
}
}
}Remote endpoints
https://worldcup-mcp.org.machina.gg/ssesseWhat it can do
Tool inventory
Tools (16)
🟢worldcup_health(include_connectors)
Whoami/smoke check — verifies your API key and the product surface. Cost: FREE (0 credits). Call this first to validate setup before spending credits. Example: worldcup_health() Args: include_connectors: also report upstream connector reachability.
Input Schema
{
"type": "object",
"properties": {
"include_connectors": {
"default": false,
"title": "Include Connectors",
"type": "boolean"
}
},
"title": "worldcup_healthArguments"
}🟢worldcup_get_schedule(team, opponent, date_from, date_to, status, ...)
Tournament fixtures with their event_urn — the discovery primitive every per-fixture tool builds on. Cost: 1 credit (data). Example: worldcup_get_schedule(team="Brazil") Args: team: filter by team name (e.g. "Brazil"). opponent: filter by opponent name. date_from: ISO date lower bound (YYYY-MM-DD). date_to: ISO date upper bound (YYYY-MM-DD). status: fixture status filter (e.g. "scheduled", "finished"). limit: max fixtures returned (default 20).
Input Schema
{
"type": "object",
"properties": {
"team": {
"default": "",
"title": "Team",
"type": "string"
},
"opponent": {
"default": "",
"title": "Opponent",
"type": "string"
},
"date_from": {
"default": "",
"title": "Date From",
"type": "string"
},
"date_to": {
"default": "",
"title": "Date To",
"type": "string"
},
"status": {
"default": "",
"title": "Status",
"type": "string"
},
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
}
},
"title": "worldcup_get_scheduleArguments"
}🟢worldcup_resolve(id)
Resolve ANY provider id or free-text name (team, player, fixture) to the canonical Machina entity + URN via the identity crosswalk. Cost: 1 credit (data). Example: worldcup_resolve(id="sr:competitor:4715") Args: id: provider id (Sportradar/Opta/api-football/...) or a name like "Vinicius Jr" / "Brazil vs Morocco".
Input Schema
{
"type": "object",
"properties": {
"id": {
"title": "Id",
"type": "string"
}
},
"required": [
"id"
],
"title": "worldcup_resolveArguments"
}🟢worldcup_get_event_context(event, event_urn, team, opponent, date, ...)
Enriched single-fixture context: form, group standings slice, injuries, optional research extras. Cost: 1 credit (data). Example: worldcup_get_event_context(event="Brazil vs Morocco") Args: event: natural fixture description ("Brazil vs Morocco") — or get event_urn from worldcup_get_schedule. event_urn: canonical fixture URN (preferred when known). team: team name (alternative to event). opponent: opponent name (with team). date: fixture date YYYY-MM-DD (disambiguates rematches). provider_event_id: a provider's raw event id (auto-resolved). include_prematch_research: add grounded pre-match research. include_social_pulse: add a social sentiment slice.
Input Schema
{
"type": "object",
"properties": {
"event": {
"default": "",
"title": "Event",
"type": "string"
},
"event_urn": {
"default": "",
"title": "Event Urn",
"type": "string"
},
"team": {
"default": "",
"title": "Team",
"type": "string"
},
"opponent": {
"default": "",
"title": "Opponent",
"type": "string"
},
"date": {
"default": "",
"title": "Date",
"type": "string"
},
"provider_event_id": {
"default": "",
"title": "Provider Event Id",
"type": "string"
},
"include_prematch_research": {
"default": false,
"title": "Include Prematch Research",
"type": "boolean"
},
"include_social_pulse": {
"default": false,
"title": "Include Social Pulse",
"type": "boolean"
}
},
"title": "worldcup_get_event_contextArguments"
}🟢worldcup_search_markets(query, team, source, status, limit, ...)
Search Kalshi + Polymarket World Cup markets in one normalized shape. Cost: 3 credits (market). Example: worldcup_search_markets(team="Brazil") Args: query: free-text market search. team: filter markets involving a team. source: "kalshi" or "polymarket" (default: both). status: market status filter (e.g. "open"). limit: max markets returned (default 20). force_live: bypass the cache and hit the venues live.
Input Schema
{
"type": "object",
"properties": {
"query": {
"default": "",
"title": "Query",
"type": "string"
},
"team": {
"default": "",
"title": "Team",
"type": "string"
},
"source": {
"default": "",
"title": "Source",
"type": "string"
},
"status": {
"default": "",
"title": "Status",
"type": "string"
},
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
},
"force_live": {
"default": false,
"title": "Force Live",
"type": "boolean"
}
},
"title": "worldcup_search_marketsArguments"
}🟢worldcup_get_market_state(market_id, include_book, include_history, include_trades, history_hours, ...)
Live state of ONE market: price, order-book depth, optional candles/trades history. Cost: 3 credits (market). Get market_id from worldcup_search_markets. Example: worldcup_get_market_state(market_id="KXWC26-BRA", include_history=True) Args: market_id: the market id/ticker from worldcup_search_markets. include_book: include order-book depth (default true). include_history: include price history candles. include_trades: include recent trades. history_hours: history window in hours (default 24). history_interval: candle interval (e.g. "1h").
Input Schema
{
"type": "object",
"properties": {
"market_id": {
"title": "Market Id",
"type": "string"
},
"include_book": {
"default": true,
"title": "Include Book",
"type": "boolean"
},
"include_history": {
"default": false,
"title": "Include History",
"type": "boolean"
},
"include_trades": {
"default": false,
"title": "Include Trades",
"type": "boolean"
},
"history_hours": {
"default": 24,
"title": "History Hours",
"type": "integer"
},
"history_interval": {
"default": "",
"title": "History Interval",
"type": "string"
}
},
"required": [
"market_id"
],
"title": "worldcup_get_market_stateArguments"
}🟢worldcup_get_match_forecast(event_urn, include_reasoning, min_gap_bps)
Dixon-Coles model forecast for one fixture (1X2 probabilities, model-vs-market gaps). Cost: 12 credits (intelligence). Get event_urn from worldcup_get_schedule. Example: worldcup_get_match_forecast(event_urn="urn:machina:...:wor") Args: event_urn: canonical fixture URN (required). include_reasoning: include the model's reasoning trace. min_gap_bps: only report model-vs-market gaps above this (bps).
Input Schema
{
"type": "object",
"properties": {
"event_urn": {
"title": "Event Urn",
"type": "string"
},
"include_reasoning": {
"default": false,
"title": "Include Reasoning",
"type": "boolean"
},
"min_gap_bps": {
"default": 0,
"title": "Min Gap Bps",
"type": "integer"
}
},
"required": [
"event_urn"
],
"title": "worldcup_get_match_forecastArguments"
}🟢worldcup_backtest_forecasts(league, season)
Historical accuracy report of the model over played fixtures (calibration + CLV ledger). Cost: 12 credits (intelligence). Example: worldcup_backtest_forecasts() Args: league: league/competition filter (default: World Cup). season: season filter.
Input Schema
{
"type": "object",
"properties": {
"league": {
"default": "",
"title": "League",
"type": "string"
},
"season": {
"default": "",
"title": "Season",
"type": "string"
}
},
"title": "worldcup_backtest_forecastsArguments"
}🟢worldcup_explain_market_move(market_id, window_hours, min_move_bps, include_reasoning)
Grounded explanation of WHY a market moved: price history + live research, source-cited. Cost: 12 credits (intelligence). Get market_id from worldcup_search_markets or worldcup_market_watch. Example: worldcup_explain_market_move(market_id="KXWC26-BRA") Args: market_id: the market id/ticker to explain (required). window_hours: move window to analyze in hours (default 24). min_move_bps: ignore moves smaller than this (basis points). include_reasoning: include the reasoning trace.
Input Schema
{
"type": "object",
"properties": {
"market_id": {
"title": "Market Id",
"type": "string"
},
"window_hours": {
"default": 24,
"title": "Window Hours",
"type": "integer"
},
"min_move_bps": {
"default": 0,
"title": "Min Move Bps",
"type": "integer"
},
"include_reasoning": {
"default": false,
"title": "Include Reasoning",
"type": "boolean"
}
},
"required": [
"market_id"
],
"title": "worldcup_explain_market_moveArguments"
}🟢worldcup_find_market_edges(min_edge_bps, limit, include_reasoning, status)
Scan open markets for model-vs-market gaps (informational edge candidates across the tournament). Cost: 18 credits (edge). Informational only — never betting advice. Example: worldcup_find_market_edges(min_edge_bps=300) Args: min_edge_bps: minimum edge in basis points (default 200). limit: max candidates returned (default 10). include_reasoning: include per-candidate reasoning. status: market status filter (e.g. "open").
Input Schema
{
"type": "object",
"properties": {
"min_edge_bps": {
"default": 200,
"title": "Min Edge Bps",
"type": "integer"
},
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
},
"include_reasoning": {
"default": false,
"title": "Include Reasoning",
"type": "boolean"
},
"status": {
"default": "",
"title": "Status",
"type": "string"
}
},
"title": "worldcup_find_market_edgesArguments"
}🟢worldcup_get_signal(event, event_urn, team, opponent, date, ...)
Per-fixture betting signal: fuses the model forecast with the best market price into recommendation + edge% + EV + fractional-Kelly stake. Cost: 18 credits (edge). Informational decision support — never a guaranteed bet. Example: worldcup_get_signal(event="Brazil vs Morocco") Args: event: natural fixture description ("Brazil vs Morocco") — or get event_urn from worldcup_get_schedule. event_urn: canonical fixture URN (preferred when known). team: team name (alternative to event). opponent: opponent name (with team). date: fixture date YYYY-MM-DD (disambiguates rematches). bankroll: optional bankroll for stake sizing. kelly_fraction: fraction of full Kelly (default 0.25). min_edge_bps: minimum edge in basis points to surface (default 200). fee_bps: market fee in basis points (default 0). include_reasoning: include the signal's reasoning trace.
Input Schema
{
"type": "object",
"properties": {
"event": {
"default": "",
"title": "Event",
"type": "string"
},
"event_urn": {
"default": "",
"title": "Event Urn",
"type": "string"
},
"team": {
"default": "",
"title": "Team",
"type": "string"
},
"opponent": {
"default": "",
"title": "Opponent",
"type": "string"
},
"date": {
"default": "",
"title": "Date",
"type": "string"
},
"bankroll": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": "",
"title": "Bankroll"
},
"kelly_fraction": {
"default": 0.25,
"title": "Kelly Fraction",
"type": "number"
},
"min_edge_bps": {
"default": 200,
"title": "Min Edge Bps",
"type": "integer"
},
"fee_bps": {
"default": 0,
"title": "Fee Bps",
"type": "integer"
},
"include_reasoning": {
"default": false,
"title": "Include Reasoning",
"type": "boolean"
}
},
"title": "worldcup_get_signalArguments"
}🟢worldcup_market_watch(force_regen)
Tournament-wide market-watch card: biggest market movers and informational edges across World Cup markets. Cost: 40 credits (skill card). ~20 min cache. Example: worldcup_market_watch() Args: force_regen: bypass the ~20min cache and regenerate now.
Input Schema
{
"type": "object",
"properties": {
"force_regen": {
"default": false,
"title": "Force Regen",
"type": "boolean"
}
},
"title": "worldcup_market_watchArguments"
}🟢worldcup_fan_pulse(event, event_urn, team, opponent, date, ...)
Social/news fan-sentiment card (buzz, narratives, breaking news) via live X/web search. Tournament-wide by default, or scoped to a team or fixture. Cost: 40 credits (skill card). ~1h cache. Example: worldcup_fan_pulse(event="Brazil vs Morocco") Args: event: natural fixture description ("Brazil vs Morocco") — or get event_urn from worldcup_get_schedule. event_urn: canonical fixture URN (preferred when known). team: scope the pulse to one team. opponent: opponent name (with team). date: fixture date YYYY-MM-DD (disambiguates rematches). query: free-text subject when no event/team is given. lookback_hours: search window in hours (0 = workflow default). force_regen: bypass the cache and regenerate now.
Input Schema
{
"type": "object",
"properties": {
"event": {
"default": "",
"title": "Event",
"type": "string"
},
"event_urn": {
"default": "",
"title": "Event Urn",
"type": "string"
},
"team": {
"default": "",
"title": "Team",
"type": "string"
},
"opponent": {
"default": "",
"title": "Opponent",
"type": "string"
},
"date": {
"default": "",
"title": "Date",
"type": "string"
},
"query": {
"default": "",
"title": "Query",
"type": "string"
},
"lookback_hours": {
"default": 0,
"title": "Lookback Hours",
"type": "integer"
},
"force_regen": {
"default": false,
"title": "Force Regen",
"type": "boolean"
}
},
"title": "worldcup_fan_pulseArguments"
}🟢worldcup_match_preview(event, event_urn, team, opponent, date, ...)
Grounded match preview card: form, key men, group context, market snapshot — source-cited, ready to publish. Cost: 40 credits (skill card). Example: worldcup_match_preview(event="Brazil vs Morocco") Args: event: natural fixture description ("Brazil vs Morocco") — or get event_urn from worldcup_get_schedule. event_urn: canonical fixture URN (preferred when known). team: team name (alternative to event). opponent: opponent name (with team). date: fixture date YYYY-MM-DD (disambiguates rematches). force_regen: bypass the cache and regenerate now.
Input Schema
{
"type": "object",
"properties": {
"event": {
"default": "",
"title": "Event",
"type": "string"
},
"event_urn": {
"default": "",
"title": "Event Urn",
"type": "string"
},
"team": {
"default": "",
"title": "Team",
"type": "string"
},
"opponent": {
"default": "",
"title": "Opponent",
"type": "string"
},
"date": {
"default": "",
"title": "Date",
"type": "string"
},
"force_regen": {
"default": false,
"title": "Force Regen",
"type": "boolean"
}
},
"title": "worldcup_match_previewArguments"
}🟢worldcup_match_recap(event, event_urn, team, opponent, date, ...)
Post-match recap card, authored once the final whistle blows — result, narrative, market settlement. Cost: 40 credits (skill card). Example: worldcup_match_recap(event="Brazil vs Morocco") Args: event: natural fixture description ("Brazil vs Morocco") — or get event_urn from worldcup_get_schedule. event_urn: canonical fixture URN (preferred when known). team: team name (alternative to event). opponent: opponent name (with team). date: fixture date YYYY-MM-DD (disambiguates rematches). force_regen: bypass the cache and regenerate now.
Input Schema
{
"type": "object",
"properties": {
"event": {
"default": "",
"title": "Event",
"type": "string"
},
"event_urn": {
"default": "",
"title": "Event Urn",
"type": "string"
},
"team": {
"default": "",
"title": "Team",
"type": "string"
},
"opponent": {
"default": "",
"title": "Opponent",
"type": "string"
},
"date": {
"default": "",
"title": "Date",
"type": "string"
},
"force_regen": {
"default": false,
"title": "Force Regen",
"type": "boolean"
}
},
"title": "worldcup_match_recapArguments"
}🟢worldcup_player_spotlight(player, team, player_urn, force_regen)
Grounded player card: performance context + narrative, source- cited. Cost: 40 credits (skill card). Example: worldcup_player_spotlight(player="Vinicius Jr", team="Brazil") Args: player: player name (e.g. "Vinicius Jr"). team: the player's national team (disambiguates homonyms). player_urn: canonical player URN (from worldcup_resolve). force_regen: bypass the cache and regenerate now.
Input Schema
{
"type": "object",
"properties": {
"player": {
"default": "",
"title": "Player",
"type": "string"
},
"team": {
"default": "",
"title": "Team",
"type": "string"
},
"player_urn": {
"default": "",
"title": "Player Urn",
"type": "string"
},
"force_regen": {
"default": false,
"title": "Force Regen",
"type": "boolean"
}
},
"title": "worldcup_player_spotlightArguments"
}Community
Evidence