An MCP (Model Context Protocol) server that provides live football match data from Sofascore. Connect it to Claude Desktop, Cursor, or any MCP-compatible client.
Ask Claude about any football match and get:
- Formations
- Injuries and suspensions
- Betting odds
- League positions
- Match date/time
Example:
"Get me the match data for Arsenal vs Man Utd 25 Jan 2026"
Returns:
Arsenal vs Man United — 25 Jan 2026, 17:30 @ Emirates Stadium
Formations:
- Arsenal: 4-3-3 (1st in table)
- United: 4-2-3 (4th in table)
Odds:
- Arsenal win: 1.53
- Draw: 4.50
- Man Utd win: 5.75
Injuries:
- Arsenal: Calafiori (Out)
- United: De Ligt (Out), Dowman (Out), Zirkzee (Doubtful)
- Bun
- Serper API key (free tier available)
- Claude Desktop
git clone https://github.com/YOUR_USERNAME/mcp-sofascore.git
cd mcp-sofascore
bun install
bunx playwright install chromiumFind your config file:
- Mac:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add the server:
{
"mcpServers": {
"sofascore": {
"command": "/path/to/bun",
"args": ["/path/to/mcp-sofascore/server.ts"],
"env": {
"SERPER_API_KEY": "your-serper-key"
}
}
}
}Replace:
/path/to/bunwith output ofwhich bun/path/to/mcp-sofascorewith your actual path
Restart Claude Desktop.
In any Claude conversation, ask about a match:
- "Get match data for Liverpool vs Chelsea 15 Mar 2026"
- "What are the lineups for Wolves vs Arsenal 18 Feb 2026"
- "Show me injuries for the Manchester derby this weekend"
Include the date for best results - otherwise it may find the wrong match.
- Searches Google via Serper for the Sofascore match page
- Scrapes the page with Playwright
- Extracts formations, injuries, odds, positions
- Returns structured data to Claude
| Name | Description |
|---|---|
get_match_data |
Get match info from Sofascore. Input: team names with date (e.g., "Wolves vs Arsenal 18 Feb 2026") |
- Runtime: Bun
- MCP SDK: @modelcontextprotocol/sdk
- Scraping: Playwright
- Search: Serper API
- Only works for matches Sofascore has data for
- Requires date for accurate match lookup
- Scraping may break if Sofascore changes their site structure
MIT