← Developer Blog

Give Claude live tennis data with MCP

Connect Claude, Cursor or any MCP client to real-time tennis scores, odds and model win-probability with one command — 12 read-only tools over the Live Tennis API.

Large language models do not know today's tennis scores. The Model Context Protocol fixes that by giving the model tools it can call. This connects Claude to live tennis data in one command.

Setup

Claude Code

claude mcp add livetennis -e LIVETENNISAPI_KEY=twjp_… -- npx -y livetennisapi-mcp

Claude Desktop — add to claude_desktop_config.json:

{
  "mcpServers": {
    "livetennis": {
      "command": "npx",
      "args": ["-y", "livetennisapi-mcp"],
      "env": { "LIVETENNISAPI_KEY": "twjp_…" }
    }
  }
}

Cursor, Zed and any other MCP client take the same command and the same environment variable. There is nothing to install — npx fetches it on demand.

Then just ask

What tennis matches are live right now?

Who's winning the Alcaraz match, and what does the model give him?

Show me Sinner's ranking and recent results.

The 12 tools

Tool Returns Plan
get_live_matches Matches in progress with live scores BASIC
get_upcoming_matches Matches starting soon BASIC
get_match Full detail for one match BASIC
get_match_score Current score only — fastest read BASIC
search_players Find players by name BASIC
get_player Profile, ranking, country, handedness BASIC
get_fixtures Forward schedule BASIC
get_recent_results Completed matches and winners BASIC
get_match_events Breaks, games, sets, momentum runs PRO
get_match_odds Match-winner prices, bid / ask / mid PRO
get_match_analysis Model thesis and win probability ULTRA
check_api_status Reachability and which plan your key is on

Everything is read-only. No tool can modify anything.

A design decision worth explaining

The API gates endpoints by plan and returns a bare 403 {"error":"upgrade_required"}. Hand that to a language model and it will usually invent a reason or retry pointlessly — neither of which helps you.

So every tool that can hit a plan wall returns a plain-English explanation instead, as a normal result rather than an error:

This data requires the ULTRA plan, and the configured API key is on a lower tier. Nothing is wrong with the key — the endpoint is simply not included in the current plan.

Marking it as an error makes MCP clients retry or bail, which loses the one piece of information you actually need. check_api_status also probes upward to report which plan your key is really on, so you can diagnose it without guessing.

Your key stays local

The server runs on your machine. The key is read from the environment by that process and is sent only to api.livetennisapi.com.

Where to go next

Built with the Live Tennis API — real-time scores, players, odds and model win-probability for ATP, WTA, Challenger and ITF.

API reference SDKs on GitHub Plans from $9.99/mo