Machina World Cup Intelligence MCP
An official MCP server by Machina Sports providing World Cup 2026 match, team, player, and market context. It allows agents to query grounded, source-cited answers, match previews, recaps, player spotlights, fan sentiment, and market data via SSE transport.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://worldcup-mcp.org.machina.gg/sseWhat you can do with it
- Get grounded match previews and recaps
- Query player spotlights and fan sentiment
- Access market context and odds data
- Perform health checks on the World Cup API
Source and maintenance
Protocol and capabilities
- Server
- World Cup Intelligence API 1.28.1
- MCP protocol
- 2025-06-18
- Tools
- 16 advertised
- Resources
- 9 advertised
- Resource templates
- 0 advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
},
"experimental": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
16 advertised
worldcup_health
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.
{
"type": "object",
"title": "worldcup_healthArguments",
"properties": {
"include_connectors": {
"type": "boolean",
"title": "Include Connectors",
"default": false
}
}
}{
"title": "Health Check",
"readOnlyHint": true
}worldcup_get_schedule
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).
{
"type": "object",
"title": "worldcup_get_scheduleArguments",
"properties": {
"team": {
"type": "string",
"title": "Team",
"default": ""
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 20
},
"status": {
"type": "string",
"title": "Status",
"default": ""
},
"date_to": {
"type": "string",
"title": "Date To",
"default": ""
},
"opponent": {
"type": "string",
"title": "Opponent",
"default": ""
},
"date_from": {
"type": "string",
"title": "Date From",
"default": ""
}
}
}{
"title": "Get Match Schedule",
"readOnlyHint": true
}worldcup_resolve
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".
{
"type": "object",
"title": "worldcup_resolveArguments",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"title": "Id"
}
}
}{
"title": "Resolve Team, Player or Match",
"readOnlyHint": true
}worldcup_get_event_context
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.
{
"type": "object",
"title": "worldcup_get_event_contextArguments",
"properties": {
"date": {
"type": "string",
"title": "Date",
"default": ""
},
"team": {
"type": "string",
"title": "Team",
"default": ""
},
"event": {
"type": "string",
"title": "Event",
"default": ""
},
"opponent": {
"type": "string",
"title": "Opponent",
"default": ""
},
"event_urn": {
"type": "string",
"title": "Event Urn",
"default": ""
},
"provider_event_id": {
"type": "string",
"title": "Provider Event Id",
"default": ""
},
"include_social_pulse": {
"type": "boolean",
"title": "Include Social Pulse",
"default": false
},
"include_prematch_research": {
"type": "boolean",
"title": "Include Prematch Research",
"default": false
}
}
}{
"title": "Get Match Context",
"readOnlyHint": true
}worldcup_search_markets
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.
{
"type": "object",
"title": "worldcup_search_marketsArguments",
"properties": {
"team": {
"type": "string",
"title": "Team",
"default": ""
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 20
},
"query": {
"type": "string",
"title": "Query",
"default": ""
},
"source": {
"type": "string",
"title": "Source",
"default": ""
},
"status": {
"type": "string",
"title": "Status",
"default": ""
},
"force_live": {
"type": "boolean",
"title": "Force Live",
"default": false
}
}
}{
"title": "Search Prediction Markets",
"readOnlyHint": true
}worldcup_get_market_state
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").
{
"type": "object",
"title": "worldcup_get_market_stateArguments",
"required": [
"market_id"
],
"properties": {
"market_id": {
"type": "string",
"title": "Market Id"
},
"include_book": {
"type": "boolean",
"title": "Include Book",
"default": true
},
"history_hours": {
"type": "integer",
"title": "History Hours",
"default": 24
},
"include_trades": {
"type": "boolean",
"title": "Include Trades",
"default": false
},
"include_history": {
"type": "boolean",
"title": "Include History",
"default": false
},
"history_interval": {
"type": "string",
"title": "History Interval",
"default": ""
}
}
}{
"title": "Get Market State",
"readOnlyHint": true
}worldcup_get_match_forecast
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).
{
"type": "object",
"title": "worldcup_get_match_forecastArguments",
"required": [
"event_urn"
],
"properties": {
"event_urn": {
"type": "string",
"title": "Event Urn"
},
"min_gap_bps": {
"type": "integer",
"title": "Min Gap Bps",
"default": 0
},
"include_reasoning": {
"type": "boolean",
"title": "Include Reasoning",
"default": false
}
}
}{
"title": "Get Match Forecast",
"readOnlyHint": true
}worldcup_backtest_forecasts
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.
{
"type": "object",
"title": "worldcup_backtest_forecastsArguments",
"properties": {
"league": {
"type": "string",
"title": "League",
"default": ""
},
"season": {
"type": "string",
"title": "Season",
"default": ""
}
}
}{
"title": "Backtest Forecasts",
"readOnlyHint": true
}worldcup_explain_market_move
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.
{
"type": "object",
"title": "worldcup_explain_market_moveArguments",
"required": [
"market_id"
],
"properties": {
"market_id": {
"type": "string",
"title": "Market Id"
},
"min_move_bps": {
"type": "integer",
"title": "Min Move Bps",
"default": 0
},
"window_hours": {
"type": "integer",
"title": "Window Hours",
"default": 24
},
"include_reasoning": {
"type": "boolean",
"title": "Include Reasoning",
"default": false
}
}
}{
"title": "Explain Market Move",
"readOnlyHint": true
}worldcup_find_market_edges
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").
{
"type": "object",
"title": "worldcup_find_market_edgesArguments",
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 10
},
"status": {
"type": "string",
"title": "Status",
"default": ""
},
"min_edge_bps": {
"type": "integer",
"title": "Min Edge Bps",
"default": 200
},
"include_reasoning": {
"type": "boolean",
"title": "Include Reasoning",
"default": false
}
}
}{
"title": "Find Market Edges",
"readOnlyHint": true
}worldcup_get_signal
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.
{
"type": "object",
"title": "worldcup_get_signalArguments",
"properties": {
"date": {
"type": "string",
"title": "Date",
"default": ""
},
"team": {
"type": "string",
"title": "Team",
"default": ""
},
"event": {
"type": "string",
"title": "Event",
"default": ""
},
"fee_bps": {
"type": "integer",
"title": "Fee Bps",
"default": 0
},
"bankroll": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Bankroll",
"default": ""
},
"opponent": {
"type": "string",
"title": "Opponent",
"default": ""
},
"event_urn": {
"type": "string",
"title": "Event Urn",
"default": ""
},
"min_edge_bps": {
"type": "integer",
"title": "Min Edge Bps",
"default": 200
},
"kelly_fraction": {
"type": "number",
"title": "Kelly Fraction",
"default": 0.25
},
"include_reasoning": {
"type": "boolean",
"title": "Include Reasoning",
"default": false
}
}
}{
"title": "Get Market Signal",
"readOnlyHint": true
}worldcup_market_watch
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.
{
"type": "object",
"title": "worldcup_market_watchArguments",
"properties": {
"force_regen": {
"type": "boolean",
"title": "Force Regen",
"default": false
}
}
}{
"title": "Market Watch Digest",
"readOnlyHint": true
}worldcup_fan_pulse
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.
{
"type": "object",
"title": "worldcup_fan_pulseArguments",
"properties": {
"date": {
"type": "string",
"title": "Date",
"default": ""
},
"team": {
"type": "string",
"title": "Team",
"default": ""
},
"event": {
"type": "string",
"title": "Event",
"default": ""
},
"query": {
"type": "string",
"title": "Query",
"default": ""
},
"opponent": {
"type": "string",
"title": "Opponent",
"default": ""
},
"event_urn": {
"type": "string",
"title": "Event Urn",
"default": ""
},
"force_regen": {
"type": "boolean",
"title": "Force Regen",
"default": false
},
"lookback_hours": {
"type": "integer",
"title": "Lookback Hours",
"default": 0
}
}
}{
"title": "Fan Sentiment Pulse",
"readOnlyHint": true
}worldcup_match_preview
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.
{
"type": "object",
"title": "worldcup_match_previewArguments",
"properties": {
"date": {
"type": "string",
"title": "Date",
"default": ""
},
"team": {
"type": "string",
"title": "Team",
"default": ""
},
"event": {
"type": "string",
"title": "Event",
"default": ""
},
"opponent": {
"type": "string",
"title": "Opponent",
"default": ""
},
"event_urn": {
"type": "string",
"title": "Event Urn",
"default": ""
},
"force_regen": {
"type": "boolean",
"title": "Force Regen",
"default": false
}
}
}{
"title": "Match Preview Card",
"readOnlyHint": true
}worldcup_match_recap
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.
{
"type": "object",
"title": "worldcup_match_recapArguments",
"properties": {
"date": {
"type": "string",
"title": "Date",
"default": ""
},
"team": {
"type": "string",
"title": "Team",
"default": ""
},
"event": {
"type": "string",
"title": "Event",
"default": ""
},
"opponent": {
"type": "string",
"title": "Opponent",
"default": ""
},
"event_urn": {
"type": "string",
"title": "Event Urn",
"default": ""
},
"force_regen": {
"type": "boolean",
"title": "Force Regen",
"default": false
}
}
}{
"title": "Match Recap Card",
"readOnlyHint": true
}worldcup_player_spotlight
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.
{
"type": "object",
"title": "worldcup_player_spotlightArguments",
"properties": {
"team": {
"type": "string",
"title": "Team",
"default": ""
},
"player": {
"type": "string",
"title": "Player",
"default": ""
},
"player_urn": {
"type": "string",
"title": "Player Urn",
"default": ""
},
"force_regen": {
"type": "boolean",
"title": "Force Regen",
"default": false
}
}
}{
"title": "Player Spotlight Card",
"readOnlyHint": true
}Prompts
0 advertised
Resources
9 advertised
get_server_status
Get MCP server status information
resource://statusget_swagger_spec
Get the OpenAPI/Swagger specification for the API
resource://swaggerget_api_docs
Get the API documentation in markdown format
resource://api-docsget_readme
Get the main project README
resource://readmeget_request_examples
Get HTTP request examples for testing the API
resource://request-examplesget_documents_guide
Get comprehensive guide for document operations including config options
resource://documents-guideget_connectors_guide
Get comprehensive guide for connector installation and troubleshooting. When creating new connectors, instructions found in this resource should be followed.
resource://connectors-guideget_mappings_guide
Get comprehensive guide for mapping creation/installation. When creating or using mappings, instructions found in this resource should be followed.
resource://mappings-guideget_vault_guide
Get comprehensive guide for vault/secrets management operations
resource://vault-guide30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 868 ms
- 95th percentile latency
- 868 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 868 ms · metadata changed · 16 tool(s), 9 resource(s), 0 resource template(s), 0 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport sse machina-world-cup-intelligence-mcp https://worldcup-mcp.org.machina.gg/sseCline
{
"mcpServers": {
"machina-world-cup-intelligence-mcp": {
"type": "sse",
"url": "https://worldcup-mcp.org.machina.gg/sse",
"disabled": false
}
}
}Gemini CLI
gemini mcp add --transport sse machina-world-cup-intelligence-mcp https://worldcup-mcp.org.machina.gg/sseLet your agent find its tools
Find servers like Machina World Cup Intelligence MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other ai and machine learning servers
Do you run Machina World Cup Intelligence MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.