Cloudbet Sports MCP Server

Query Cloudbet sports data via AI using the Model Context Protocol.

The Cloudbet Sports MCP Server exposes structured sports betting data to AI models using Model Context Protocol, enabling natural-language queries mapped to live market data.

Why MCP?

  • Query sports data using plain English
  • Receive structured, real-time odds
  • Compatible with Claude, OpenAI, and custom AI runtimes
  • Open-source, extensible, easy to self-host

How It Works

The demo server currently implements a single tool via MCP JSON-RPC:

Tool: findEventsAndMarketsByCompetition

Returns upcoming events and primary markets for a fuzzy-matched competition.

Tool Metadata (tools/list):

{
  "name": "findEventsAndMarketsByCompetition",
  "description": "Finds upcoming events and odds using fuzzy search",
  "inputSchema": {
    "type": "object",
    "properties": {
      "competitionName": { "type": "string" },
      "limit": { "type": "integer" }
    },
    "required": ["competitionName"]
  }
}

Sample Call (tools/call):

{
  "params": {
    "name": "findEventsAndMarketsByCompetition",
    "arguments": {
      "competitionName": "Premier League",
      "limit": 1
    }
  }
}

Sample Response (truncated):

{
  "structuredContent": [
    {
      "Name": "Liverpool vs. AFC Bournemouth",
      "CutoffTime": "2025-08-15T19:00:00Z",
      "markets": {
        "soccer.match_odds": {
          "submarkets": {
            "period=ft": {
              "selections": [
                {
                  "Outcome": "home",
                  "Price": 1.346,
                  "MaxStake": 574.15,
                  "MarketURL": "soccer.match_odds/home"
                },
                {
                  "Outcome": "draw",
                  "Price": 5.238,
                  "MaxStake": 208.02,
                  "MarketURL": "soccer.match_odds/draw"
                },
                {
                  "Outcome": "away",
                  "Price": 6.711,
                  "MaxStake": 208.02,
                  "MarketURL": "soccer.match_odds/away"
                }
              ]
            }
          }
        },
        "soccer.total_goals": { /* includes over/under, Price, MaxStake */ },
        "soccer.asian_handicap": { /* includes line, sides, Price, MaxStake */ }
      }
    }
  ]
}

Supported Sports & Markets

Primary markets selected per sport:

SportMarkets
Soccermatch_odds, asian_handicap, total_goals
Basketballhandicap, moneyline, totals
Tenniswinner, game_handicap, total_games
OthersNFL, Cricket, MMA, Boxing, Ice Hockey

Natural Language Mapping

Fuzzy search maps user queries to competitions using Levenshtein distance:

Example QueryMatch
“Premier League odds”soccer-england-premier-league
“NBA games”basketball-usa-nba
“Champions League”soccer-uefa-champions-league

Getting Started

Self-host

git clone https://github.com/cloudbet/sports-mcp-server
cd sports-mcp-server
go run .

Claude Integration

{
  "mcpServers": {
    "cloudbet-sports": {
      "command": "go",
      "args": ["run", "main.go"],
      "cwd": "/path/to/sports-mcp-server"
    }
  }
}

CURL Example

curl -X POST http://localhost:8080/ -H "Content-Type: application/json" -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "findEventsAndMarketsByCompetition",
    "arguments": { "competitionName": "Premier League", "limit": 3 }
  }
}'

Resources