FIFA WORLD CUP 2026
Group AMexico·Czechia·South Africa·South KoreaGroup BBosnia & Herzegovina·Canada·Qatar·SwitzerlandGroup CBrazil·Haiti·Morocco·ScotlandGroup DAustralia·Paraguay·Türkiye·USAGroup ECuraçao·Ecuador·Germany·Côte d'IvoireGroup FJapan·Netherlands·Sweden·TunisiaGroup GBelgium·Egypt·Iran·New ZealandGroup HCabo Verde·Saudi Arabia·Spain·UruguayGroup IFrance·Iraq·Norway·SenegalGroup JAlgeria·Argentina·Austria·JordanGroup KColombia·DR Congo·Portugal·UzbekistanGroup LCroatia·England·Ghana·Panama Group AMexico·Czechia·South Africa·South KoreaGroup BBosnia & Herzegovina·Canada·Qatar·SwitzerlandGroup CBrazil·Haiti·Morocco·ScotlandGroup DAustralia·Paraguay·Türkiye·USAGroup ECuraçao·Ecuador·Germany·Côte d'IvoireGroup FJapan·Netherlands·Sweden·TunisiaGroup GBelgium·Egypt·Iran·New ZealandGroup HCabo Verde·Saudi Arabia·Spain·UruguayGroup IFrance·Iraq·Norway·SenegalGroup JAlgeria·Argentina·Austria·JordanGroup KColombia·DR Congo·Portugal·UzbekistanGroup LCroatia·England·Ghana·Panama
Open full hub →
Growing Discord community — direct access to the developer, live coverage & picks. Join the Discord Join now →
Leagues Matches Predictions Value Bets Stats
MCP Server Hub

MCP for AI Agents.

The Model Context Protocol (MCP) lets AI assistants like Claude or ChatGPT call your sports data API as a tool — no manual API calls needed. Ask your AI "who plays tonight?" and it finds out itself.

What is MCP?

MCP (Model Context Protocol) is a standard that lets AI assistants call external tools in real time. When you connect our MCP server to Claude Desktop (or any compatible client), the AI can call tools like list_matches or get_prediction during a conversation — without you needing to copy-paste API responses. The AI reads the data and answers your question directly.

All of our sport MCP servers speak JSON-RPC 2.0 over HTTP POST. They use the same API keys as the REST API — no extra sign-up needed.

Authentication

Use the same Bearer token you use for the REST API. Pass it in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Get a key at sports.bzzoiro.com/register/.

Connect to Claude Desktop

Add each sport you want to Claude Desktop's config file. The config lives at:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add one entry per sport under mcpServers. Here's a full example with all four sports:

{ "mcpServers": { "bsd-tennis": { "command": "npx", "args": ["-y", "mcp-remote"], "env": { "MCP_SERVER_URL": "https://sports.bzzoiro.com/tennis/mcp", "MCP_AUTH_TOKEN": "YOUR_API_KEY" } }, "bsd-csgo": { "command": "npx", "args": ["-y", "mcp-remote"], "env": { "MCP_SERVER_URL": "https://sports.bzzoiro.com/csgo/mcp", "MCP_AUTH_TOKEN": "YOUR_API_KEY" } }, "bsd-darts": { "command": "npx", "args": ["-y", "mcp-remote"], "env": { "MCP_SERVER_URL": "https://sports.bzzoiro.com/darts/mcp", "MCP_AUTH_TOKEN": "YOUR_API_KEY" } }, "bsd-hockey": { "command": "npx", "args": ["-y", "mcp-remote"], "env": { "MCP_SERVER_URL": "https://sports.bzzoiro.com/hockey/mcp", "MCP_AUTH_TOKEN": "YOUR_API_KEY" } } } }

After saving the file, restart Claude Desktop. You'll see each sport server listed in the tools panel.

Tennis MCP

🎾 Tennis https://sports.bzzoiro.com/tennis/mcp
ToolDescriptionKey inputs
list_matchesGet matches filtered by status, tournament or datestatus, tournament_id, date_from, date_to
get_matchFull match detail with live score and set breakdownmatch_id
list_playersSearch players by nameq (search query)
get_playerPlayer profile with ranking and countryplayer_id
list_predictionsWin/set/game ML predictions for upcoming matchesupcoming (boolean)
get_predictionFull prediction detail for one matchprediction_id
list_tournamentsActive ATP/WTA tournamentsactive (boolean)
list_rankingsATP or WTA world rankingsgender (m/w), limit

CS2 MCP

🎮 CS2 / Esports https://sports.bzzoiro.com/csgo/mcp
ToolDescriptionKey inputs
list_matchesCS2 matches with map scores and BO formatstatus, tournament_id
get_matchMatch detail with full map-by-map breakdownmatch_id
list_teamsSearch CS2 teams by nameq (search query)
get_teamTeam profile with ELO, country and rosterteam_id
list_playersSearch CS2 players by name or teamq, team_id
get_playerPlayer KD ratio, damage, headshot rateplayer_id
list_predictionsCatBoost win predictionsupcoming (boolean)
get_predictionFull prediction for one matchprediction_id
list_tournamentsCS2 tournaments (ESL, BLAST, FACEIT, etc.)active (boolean)

Darts MCP

🎯 Darts https://sports.bzzoiro.com/darts/mcp
ToolDescriptionKey inputs
list_matchesPDC darts matches by statusstatus
get_matchMatch detail with set and leg scoresmatch_id
list_playersAll darts players with ELO and PDC rankinglimit, offset
get_playerFull player profile with recent formplayer_id
list_predictionsELO-based predictions with High/Medium/Low confidence
get_predictionPrediction detail for one matchprediction_id
list_rankingsCurrent PDC world rankingslimit

Hockey MCP

🏒 Hockey https://sports.bzzoiro.com/hockey/mcp
ToolDescriptionKey inputs
list_matchesHockey matches with OT/SO flags and period scoresstatus
get_matchFull match detail including period breakdownmatch_id
list_teamsAll hockey teamslimit, offset
get_teamTeam profile and recent resultsteam_id
list_predictionsML win predictions for upcoming hockey matches
get_predictionPrediction detail for one matchprediction_id

HTTP transport

Each MCP endpoint accepts HTTP POST with a JSON-RPC 2.0 body. You don't need this section to use Claude Desktop — it's for developers building their own MCP clients.

import requests MCP_URL = "https://sports.bzzoiro.com/tennis/mcp" HEADERS = { "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" } # List available tools r = requests.post(MCP_URL, headers=HEADERS, json={ "jsonrpc": "2.0", "method": "tools/list", "id": 1 }) tools = r.json()["result"]["tools"]

Tool call format

# Call a specific tool r = requests.post(MCP_URL, headers=HEADERS, json={ "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "list_matches", "arguments": {"status": "live"} }, "id": 2 }) result = r.json()["result"]["content"][0]["text"] import json matches = json.loads(result)