Livetennisapi MCP vs Turnale

A side-by-side look at the Livetennisapi MCP and Turnale MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Livetennisapi MCP logoLivetennisapi MCPSports · Local subprocess (stdio)Real-time tennis for ATP, WTA, Challenger and ITF — live scores, players, fixtures, model win-probability, and match-winner market prices. 12 read-only tools; a plan wall returns a plain-English explanation instead of a bare 403. Free tier, no card. npx -y livetennisapi-mcp50GoodAuth: api key requiredTurnale logoTurnaleSports · Remote HTTP/SSERun racket-sport tournaments from your AI assistant: fair draws, scores, live standings.67GreatAuth: no auth required

Verdict: choose Livetennisapi MCP for sports work as a local process; choose Turnale for sports over a hosted endpoint. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Livetennisapi MCP logoChoose Livetennisapi MCP when

  • You need dedicated capabilities in the Sports domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: API key required.
  • You have the keys it needs: LIVETENNISAPI_KEY.
  • You want tools like get_live_matches, get_upcoming_matches, get_match.
Explore Livetennisapi MCP

Turnale logoChoose Turnale when

  • You need dedicated capabilities in the Sports domain.
  • You prefer a remote HTTP/SSE transport.
  • Its auth model fits you: No auth required.
  • You want tools like ping, create_tournament, add_players.
Explore Turnale

Feature & specification comparison

Rows where the two servers differ are marked.

SpecLivetennisapi MCP logoLivetennisapi MCPTurnale logoTurnale
CategorySportsSports
Quality signal50/100 · Good67/100 · Great
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Remote HTTP/SSE
AuthAPI key requiredNo auth required
PricingFreemiumNot declared
Required env varsLIVETENNISAPI_KEYNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars1520
Directory activity 5 views 0 installs 0 upvotes 1 views 0 installs 0 upvotes
Tools2430

Tools & capabilities

Livetennisapi MCP tools 24

  • get_live_matchesList tennis matches currently in progress, with live scores. Covers ATP, WTA, Challenger, ITF and juniors. Use this for "what tennis is on right now". Works on the FREE plan (no card needed).
  • get_upcoming_matchesList tennis matches scheduled to start soon, with players, tournament and start time. Use this for "who plays next" or to find a match id before it starts. Works on the FREE plan (no card needed).
  • get_matchFull detail for one match by id: players, score, surface, round and status. Includes market prices on PRO and model analysis on ULTRA. Works on the FREE plan (no card needed).
  • get_match_scoreCurrent score for one match — the fastest, lowest-latency read. Use this when you only need the score and already know the match id. Works on the FREE plan (no card needed).
  • search_playersSearch tennis players by name. Returns id, country, ranking and tour. Use the returned id with get_player. Works on the FREE plan (no card needed).
  • get_playerOne player's profile: ranking, country, handedness, date of birth and cached stats. Works on the FREE plan (no card needed).
  • get_fixturesUpcoming scheduled tennis fixtures, earliest first — the forward schedule, filterable by tour, player and date. Use this for "what is on this week". Works on the FREE plan (no card needed).
  • search_tournamentsSearch the tournament catalogue — the stable id space that match objects carry as tournament_id. Returns surface, indoor, host city/country and category where curated. Works on the FREE plan (no card needed).
  • get_tournamentOne tournament by its stable id — the tournament_id carried on match objects. Name, tour, surface, indoor, plus host city/country and category where curated. Works on the FREE plan (no card needed).
  • get_recent_resultsRecently completed tennis matches with final scores and winners. Filterable by tour, player, nationality and play date. Requires the BASIC plan or any History plan.
  • search_archive_matchesSearch the results archive — completed-match RESULTS from 1968 through 2022: ATP and WTA, main draws, qualifying and the ITF/futures tiers. Winner/loser-shaped records with final score, seeds and ranks AT THE TIME of the match. Use this for historical questions ("Borg's Wimbledon finals"); the archive ends 2022-12-31 where our own results (get_recent_results) begin. Requires the BASIC plan or any History plan.
  • get_archive_matchOne result from the results archive (1968–2022), with per-match serve statistics where the era recorded them — stats are null for most rows before 1991, honestly, never synthesised. Requires the BASIC plan or any History plan.
  • +12 more on the listing page

Turnale tools 30

  • pingHealth check. Returns a static confirmation that the Turnale MCP server is reachable.
  • create_tournamentCreate a new tournament. Keep setup SHORT: ask the organiser only for sport, players, court count and start time — sensible defaults cover everything else. FORMAT: never ask an open 'which format?' question. If the organiser clearly named one, pass it; otherwise omit format — the call then returns a ready-to-show menu of options (nothing is created) for you to relay so the organiser can read and choose in one reply. Players can be added later with add_players. NEVER invent placeholder or fake player names ('Player 1', made-up names): if the organiser only knows the headcount, create with signup_open: true and signup_cap set to it — players add themselves by name via the page link. If the organiser gives a time budget instead of rounds (e.g. 'we have 2 hours'), derive rounds ≈ total minutes ÷ (match + break minutes) and confirm. If they ask for a format that is not listed, offer to note it with record_feedback. Returns the organiser key (tk_…): relay it with the warning that it cannot be recovered, plus the shareable page link.
  • add_playersAdd players to the roster in bulk (parse pasted lists or spreadsheets yourself and send structured entries — never invent placeholder names; use signup mode when names aren't known yet). Duplicate names are rejected for disambiguation. If an unlocked draw exists it is regenerated automatically. Americano/mexicano take late arrivals even after results exist: americano rebuilds the rounds nobody has started, mexicano pairs them into the next round.
  • update_playerRename a player or set their gender/level/note. Updates MANY in one call: pass `updates` with one object per player and never loop one-by-one — setting levels for a whole roster used to be one call per player, which on a phone meant approving each one and left the roster half-updated when some were mis-tapped. The whole batch applies or none of it does.
  • remove_playerRemove one or MANY players before any result is recorded (afterwards use withdraw_player or replace_player) — pass player_names to clear several in one call, never loop one-by-one. Regenerates an existing unlocked draw.
  • set_pairsFix the doubles pairs: pass explicit pairs by name, or auto-pair (random or level-balanced). Only before results exist. Regenerates an existing unlocked draw.
  • update_settingsChange the tournament name, start time, match duration, break/changeover minutes, courts (count or names), house rules, or courtside score entry from the page. Court changes recompute the remaining schedule; played matches never move.
  • promote_playerMove a waitlisted player onto the active roster when a spot opens (signed-in players are notified by email). The cap can be raised with update_settings. Once results exist only americano/mexicano can take them — the unstarted rounds follow the roster.
  • generate_drawGenerate (or regenerate) the draw and schedule. This IS the start action: the first draw moves the tournament from setup to active and closes self-signup — when the organiser says "start the tournament", call this. The result includes rounds_text — SHOW it to the organiser as-is, in whatever language they are writing to you in (it is English already, so relay it unchanged unless they are writing something else) so they can check who plays whom — and the seed that produced the draw: preview first, then confirm with that SAME seed to apply exactly the previewed draw. Free until the first result is recorded; after that this DISCARDS recorded results and requires BOTH confirm: true and discard_results: true. If the organiser asks for a format that is not supported, offer to note it with record_feedback. Optional overrides adjust the format first.
  • get_briefingCompact full state of the tournament — settings, roster, progress, next matches, standings, page link. Call this first when resuming work in a new conversation with just the key.
  • list_playersFull roster with status, level, and doubles partner.
  • list_matchesMatches with sides, scores, courts and times. Filter by state or round; paginate with after_match_number for large tournaments.
  • +18 more on the listing page

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Livetennisapi MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "livetennisapi-livetennisapi-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "livetennisapi-mcp"
      ],
      "env": {
        "LIVETENNISAPI_KEY": "YOUR_LIVETENNISAPI_KEY_HERE"
      }
    }
  }
}

Turnale

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "turnale-2": {
      "url": "https://mcp.turnale.app"
    }
  }
}

Frequently asked questions

Livetennisapi MCP is categorized under Sports and uses a local stdio subprocess. Turnale belongs to Sports and uses a remote HTTP/SSE transport. Pick Livetennisapi MCP for sports work and Turnale for sports.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

Livetennisapi MCP is listed as freemium — a free tier with paid plans. Auth: api key required. Turnale has no declared pricing — check the project's own site. Auth: no auth required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add livetennisapi-livetennisapi-mcp and turnale-2 as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Livetennisapi MCP has a quality signal of 50/100 (Good) with 5 views, 0 installs and 152 GitHub stars. Turnale has 67/100 (Great) with 1 views, 0 installs and 0 GitHub stars.