Skip to main content

Give Claude live sports data in 30 seconds

Install the free SportScore MCP server and your AI assistant can answer live-scores, standings, top-scorer and player-stat questions for football, basketball, cricket and tennis. No API key. No rate-limit sign-up. Works in Claude Desktop, Cursor, Continue, Zed and any MCP-compatible host.

What you'll build

By the end of this tutorial your AI assistant will be able to answer questions like "who's leading the Premier League top scorers?" or "what's the NBA standings right now?" using live data from SportScore. The assistant calls the server automatically — you just ask the question in plain English.

The server is open-source (MIT), published on npm as sportscore-mcp, and runs locally on your machine via npx. No account, no API key, no proxy.

You need: Node.js 18 or newer, and an MCP-compatible AI host.

Install in Claude Desktop

Claude Desktop reads an mcpServers block from a JSON config file. Add the SportScore entry there and restart.

1. Open the config file

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

If the file doesn't exist, create it.

2. Add the SportScore entry

Paste this as the whole file (if it's new) or merge the sportscore entry into your existing mcpServers object:

{ "mcpServers": { "sportscore": { "command": "npx", "args": ["-y", "sportscore-mcp"] } } }

3. Restart Claude Desktop

Quit Claude Desktop entirely and relaunch. The first launch downloads the package — wait 10–20 seconds. Subsequent launches are instant.

4. Confirm it's loaded

Look for the tools icon in the Claude chat input. Click it — you should see 8 tools starting with get_matches, get_standings, get_top_scorers, etc. If they're there, you're done.

Install in Cursor / Continue / Zed

The MCP protocol is the same across hosts — the only difference is which config file holds the mcpServers block. The command and args never change.

Cursor

Settings → MCP → Add server. Name: sportscore. Command: npx. Args: -y sportscore-mcp.

Continue

Add the same mcpServers block to your config.json under the experimental.modelContextProtocolServers key.

Zed

Zed's MCP integration is configured in settings.json under context_servers. Same command and args.

Any other MCP host

Anything that speaks stdio MCP works. Point it at npx -y sportscore-mcp.

Try it — example prompts

Drop these into your assistant. It'll recognise the intent and call the right tool automatically.

Live scores

What Premier League matches are live right now? Show the scores and minute.
Any NBA games on tonight in the Eastern time zone?

Standings

Show me the La Liga table sorted by points.
What's the current NBA Western Conference standings?

Top scorers / assists

Who are the top 5 scorers in the Champions League this season?
Who leads the Premier League in assists?

Team fixtures

When does Barcelona play next, and who against?

Player stats

Pull Lionel Messi's stats for this season.

Tournament brackets

Show me the Champions League knockout bracket as it stands.
Every response includes a Powered by SportScore attribution footer. That's part of the free-tier terms — please keep it in any output you show your users.

What the server can do

Eight tools, covering the 95% case for most sports-data workflows:

  • get_matches — live + recent matches by sport
  • get_match_detail — single match (score, status, timeline, lineups)
  • get_team_schedule — fixtures for a team
  • get_standings — league / competition table
  • get_top_scorers — top scorers and top assisters
  • get_player — player metadata and season stats
  • get_bracket — knockout tournament bracket
  • get_tracker — live match tracker data

Full parameter schemas and response shapes: SportScore developer portal · OpenAPI 3.0 spec.

Troubleshooting

Claude says the tools aren't loaded

Make sure the JSON is valid — one stray comma breaks the whole file. Paste it into any JSON validator. Then fully quit Claude Desktop (not just the window — the tray/menu-bar icon too) and relaunch.

First launch hangs for 20–30 seconds

Normal — that's npx downloading the package. It's cached after the first run. If it hangs longer than a minute, check your Node.js version is 18+ with node --version.

Rate-limited

Free tier is roughly 1000 requests per 24h per IP, with 60-second edge caching. Chat workflows don't come close to that limit — but if you're pulling data in a loop, expect to hit it. Higher volume or commercial use: contact [email protected].

Something else

Open an issue on the GitHub repo — include your OS, Node version, and the exact error text.

Next steps

  • Star the repo on GitHub so other Claude / Cursor users find it.
  • Read the developer portal if you want to hit the REST API directly without an MCP host.
  • The OpenAPI 3.0 spec drops into Postman, Insomnia, or your code-gen tool of choice.
  • Building something commercial? Read the terms — commercial / white-label tiers are available.