Claude Marketplaces
SkillsMCP serversMarketplacesPluginsDigestAdvertise
Submit

LLMond Highlights

This week in Claude is LLMond Highlights now. A weekly email, free.

Skills by category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP servers by category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control
Claude Marketplaces

An independent directory of skills, plugins and MCP servers for Claude Code. Not affiliated with Anthropic.

Browse

  • Skills
  • MCP servers
  • Marketplaces
  • Plugins
  • Weekly digest
  • Skill index
  • MCP index
  • Marketplace index
  • Plugin index

Site

  • About
  • Submit
  • Advertise
  • Feedback
  • Privacy
  • llms.txt
  • Plugins reference

Maker

  • Snug
  • Agent Caffeine
  • knobs
  • Wax
  • Vectoys
  • mertduzgun.com
by Mert Düzgün
MCP servers
livetennisapi avatar

Livetennisapi Mcp

livetennisapi/livetennisapi-mcp

Live tennis scores, players, rankings, odds and win-probability. ATP, WTA, Challenger, ITF, juniors.

GitHub stars
138
tools
25
auth
Secret needed
transport
STDIO, HTTP
env var
1
last updated
Oct 28, 2026
View on GitHubSave

Install

From registry metadata
$ npx add-mcp https://mcp.livetennisapi.com/mcp --name livetennisapi-mcp --header 'Authorization: Bearer ${API_TOKEN}'

Run in your terminal. add-mcp asks which agents to add it to, then asks for each value it needs. Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http livetennisapi-mcp https://mcp.livetennisapi.com/mcp --header 'Authorization: YOUR_AUTHORIZATION'

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 25 tools

Verified live against the running server on Nov 13, 2026.

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).4 params

List 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).

Parameters* required
countrystring
Either participant's country: the lowercase 3-letter IOC-style code the Player object returns (e.g. ned, sui, gre), NOT ISO-3166. Players with no recorded country never match.
limitinteger
Maximum matches to return (1-200).default: 20
playerarray
Player ids (from search_players), max 50. Keeps matches where ANY listed player is either participant.
tourstring
Tour filter. Each name covers its doubles variants. Exhibition/team events carry no tour and are excluded whenever the filter is used.one of atp · wta · challenger · itf · juniors
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).6 params

List 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).

Parameters* required
countrystring
Either participant's country: the lowercase 3-letter IOC-style code the Player object returns (e.g. ned, sui, gre), NOT ISO-3166. Players with no recorded country never match.
fromstring
Earliest play date: YYYY-MM-DD (a whole UTC day) or ISO-8601 datetime.
limitinteger
Maximum matches to return (1-200).default: 20
playerarray
Player ids (from search_players), max 50. Keeps matches where ANY listed player is either participant.
tostring
Latest play date: YYYY-MM-DD or ISO-8601. Must not precede from.
tourstring
Tour filter. Each name covers its doubles variants. Exhibition/team events carry no tour and are excluded whenever the filter is used.one of atp · wta · challenger · itf · juniors
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).1 params

Full 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).

Parameters* required
match_id*integer
Match id, as returned by get_live_matches, get_upcoming_matches or get_recent_results.
get_match_scoreCurrent score for one match. This is the fastest read, with the lowest latency. Use it when you only need the score and already know the match id. Works on the FREE plan (no card needed).1 params

Current score for one match. This is the fastest read, with the lowest latency. Use it when you only need the score and already know the match id. Works on the FREE plan (no card needed).

Parameters* required
match_id*integer
Match id, as returned by get_live_matches, get_upcoming_matches or get_recent_results.
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).2 params

Search 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).

Parameters* required
limitinteger
Maximum players to return (1-200).default: 10
query*string
Full or partial player name, e.g. "alcaraz".
get_playerOne player's profile: ranking, country, handedness, date of birth and cached stats. Works on the FREE plan (no card needed).1 params

One player's profile: ranking, country, handedness, date of birth and cached stats. Works on the FREE plan (no card needed).

Parameters* required
player_id*integer
Player id, as returned by search_players.
get_fixturesUpcoming scheduled tennis fixtures, earliest first. This is the forward schedule, filterable by tour. Use this for "what is on this week". Works on the FREE plan (no card needed).2 params

Upcoming scheduled tennis fixtures, earliest first. This is the forward schedule, filterable by tour. Use this for "what is on this week". Works on the FREE plan (no card needed).

Parameters* required
limitinteger
Maximum fixtures to return (1-200).default: 20
tourstring
Tour filter. Each name covers its doubles variants. Exhibition/team events carry no tour and are excluded whenever the filter is used.one of atp · wta · challenger · itf · juniors
search_tournamentsSearch the tournament catalogue. Its ids are the tournament_id that match objects carry. Returns surface, indoor, host city/country and category where curated. Works on the FREE plan (no card needed).3 params

Search the tournament catalogue. Its ids are the tournament_id that match objects carry. Returns surface, indoor, host city/country and category where curated. Works on the FREE plan (no card needed).

Parameters* required
limitinteger
Maximum tournaments to return (1-200).default: 20
querystring
Full or partial tournament name, e.g. "wimbledon". Omit to list all.
tourstring
Restrict to one tour.one of atp · wta · challenger · itf · juniors
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).1 params

One 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).

Parameters* required
tournament_id*string
Stable tournament id, as returned by search_tournaments or carried on a match as tournament_id.
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.6 params

Recently completed tennis matches with final scores and winners. Filterable by tour, player, nationality and play date. Requires the BASIC plan or any History plan.

Parameters* required
countrystring
Either participant's country: the lowercase 3-letter IOC-style code the Player object returns (e.g. ned, sui, gre), NOT ISO-3166. Players with no recorded country never match.
fromstring
Earliest play date: YYYY-MM-DD (a whole UTC day) or ISO-8601 datetime.
limitinteger
Maximum matches to return (1-200).default: 20
playerarray
Player ids (from search_players), max 50. Keeps matches where ANY listed player is either participant.
tostring
Latest play date: YYYY-MM-DD or ISO-8601. Must not precede from.
tourstring
Tour filter. Each name covers its doubles variants. Exhibition/team events carry no tour and are excluded whenever the filter is used.one of atp · wta · challenger · itf · juniors
search_archive_matchesSearch the results archive: completed-match RESULTS from 1968 through 2022. ATP and WTA, main draws, qualifying and the ITF/futures tiers. Each record has winner and loser, final score, and seeds and ranks AT THE TIME of the match. Use this for historical questions ("Borg's Wi...7 params

Search the results archive: completed-match RESULTS from 1968 through 2022. ATP and WTA, main draws, qualifying and the ITF/futures tiers. Each record has winner and loser, final score, and seeds and ranks AT THE TIME of the match. Use this for historical questions ("Borg's Wi...

Parameters* required
fromstring
Earliest tournament START date, YYYY-MM-DD.
levelstring
Tier code: G=grand slam, M=masters, A=tour, F=finals, D=davis cup, C=challenger, O=olympics. Or a futures category code (e.g. 15).
limitinteger
Maximum results to return (1-200).default: 20
player_namestring
Case-insensitive fragment of EITHER player's name, min 3 chars, e.g. "borg".
roundstring
Round code, e.g. F for finals.one of F · SF · QF · R16 · R32 · R64
tostring
Latest tournament START date, YYYY-MM-DD.
tourstring
atp or wta.one of atp · wta
get_archive_matchOne result from the results archive (1968 to 2022), with per-match serve statistics where the era recorded them. Stats are null for most rows before 1991, never synthesised. Requires the BASIC plan or any History plan.1 params

One result from the results archive (1968 to 2022), with per-match serve statistics where the era recorded them. Stats are null for most rows before 1991, never synthesised. Requires the BASIC plan or any History plan.

Parameters* required
archive_match_id*integer
Archive match id, as returned by search_archive_matches.
search_archive_playersThe people of the results archive (1968 to 2022): hand, date of birth, country, height, and career-high rank with the week it was first reached. Their ids are corpus person ids (the winner/loser player_id on archive results), not roster ids. For current players use search_play...3 params

The people of the results archive (1968 to 2022): hand, date of birth, country, height, and career-high rank with the week it was first reached. Their ids are corpus person ids (the winner/loser player_id on archive results), not roster ids. For current players use search_play...

Parameters* required
limitinteger
Maximum players to return (1-200).default: 10
query*string
Full or partial player name, min 3 chars, e.g. "navratilova".
tourstring
atp or wta.one of atp · wta
get_archive_careerOne player's whole career over the results archive (1968 to 2022). W-L record in total and by surface/level/year, titles, and summed serve statistics. The corpus records serve stats from 1991 only, so matches_with_stats says how many matches the serve block covers. The name mu...1 params

One player's whole career over the results archive (1968 to 2022). W-L record in total and by surface/level/year, titles, and summed serve statistics. The corpus records serve stats from 1991 only, so matches_with_stats says how many matches the serve block covers. The name mu...

Parameters* required
name*string
Player name fragment, min 3 chars. Must resolve to exactly one person.
get_h2hThe all-time record between two players, across BOTH halves of the product. That is the results archive (1968 to 2022) plus the completed matches from 2023 onward. Names are the keys. An ambiguous fragment returns the candidate list to choose from, and nothing is guessed. Tota...2 params

The all-time record between two players, across BOTH halves of the product. That is the results archive (1968 to 2022) plus the completed matches from 2023 onward. Names are the keys. An ambiguous fragment returns the candidate list to choose from, and nothing is guessed. Tota...

Parameters* required
player1*string
First player name (fragment, min 3 chars), e.g. "federer".
player2*string
Second player name (fragment, min 3 chars), e.g. "nadal".
get_match_eventsTimeline of events for a match: breaks, games won, sets won, momentum runs. Requires the PRO plan.2 params

Timeline of events for a match: breaks, games won, sets won, momentum runs. Requires the PRO plan.

Parameters* required
limitinteger
Maximum events to return (1-200).default: 30
match_id*integer
Match id, as returned by get_live_matches, get_upcoming_matches or get_recent_results.
get_match_oddsMatch-winner market prices for a match: implied probability per player, with bid, ask and mid. Requires the PRO plan. Match rows carry has_market, so check it first. A match with no market mapped has no prices to return.2 params

Match-winner market prices for a match: implied probability per player, with bid, ask and mid. Requires the PRO plan. Match rows carry has_market, so check it first. A match with no market mapped has no prices to return.

Parameters* required
limitinteger
Maximum price points to return (1-200).default: 10
match_id*integer
Match id, as returned by get_live_matches, get_upcoming_matches or get_recent_results.
get_rankingsThe FULL published ranking table in rank order for one system, from the newest week at or before as_of. Rows carry player_name as published and a null player_id for players outside our roster, so the table has no silent holes. ATP/WTA history runs deep. The ITF circuits begin...3 params

The FULL published ranking table in rank order for one system, from the newest week at or before as_of. Rows carry player_name as published and a null player_id for players outside our roster, so the table has no silent holes. ATP/WTA history runs deep. The ITF circuits begin...

Parameters* required
as_ofstring
YYYY-MM-DD. Serves the newest published week at or before this date. Omit for latest.
limitinteger
Maximum ranking rows to return (1-200).default: 20
system*string
Ranking system to list. utr has no listing, because it is a rating, not a ranking.one of atp · wta · itf_jt · itf_mt · itf_wt
player_statsOne player's record over completed singles matches from 2023 onward, by default the last 365 days. It gives W/L overall, over the last 12 months and by surface, venue, level and season. It also gives tiebreaks, deciding sets, the record after winning or losing the first set, c...6 params

One player's record over completed singles matches from 2023 onward, by default the last 365 days. It gives W/L overall, over the last 12 months and by surface, venue, level and season. It also gives tiebreaks, deciding sets, the record after winning or losing the first set, c...

Parameters* required
fromstring
Window start: YYYY-MM-DD (start of that day) or a UTC ISO-8601 instant. Default to minus 365 days.
lastinteger
How many recent matches to list, newest first (1-50, default 20).
levelstring
The match tour. A match with no stated tour matches no level.one of atp · wta · challenger · itf · juniors
player_id*integer
Player id, as returned by search_players.
surfacestring
hard, clay or grass read the match surface; indoor keeps matches stated indoor, on any surface.one of hard · clay · grass · indoor
tostring
Window end: YYYY-MM-DD (the whole of that day) or a UTC ISO-8601 instant. Default now.
get_match_analysisModel analysis for a match: predicted win probability, the model's thesis and the main factors behind it. Requires the ULTRA plan. Match rows carry has_analysis, so check it first. A match with no thesis or profile has nothing to return.1 params

Model analysis for a match: predicted win probability, the model's thesis and the main factors behind it. Requires the ULTRA plan. Match rows carry has_analysis, so check it first. A match with no thesis or profile has nothing to return.

Parameters* required
match_id*integer
Match id, as returned by get_live_matches, get_upcoming_matches or get_recent_results.
get_player_rankingsPoint-in-time ranking records for SPECIFIC players. Per system, the newest record in force ON OR BEFORE as_of, never one dated after it. Every other ranking field in this API is the CURRENT value joined at read time. This one is the historical answer. Systems are never collaps...3 params

Point-in-time ranking records for SPECIFIC players. Per system, the newest record in force ON OR BEFORE as_of, never one dated after it. Every other ranking field in this API is the CURRENT value joined at read time. This one is the historical answer. Systems are never collaps...

Parameters* required
as_ofstring
YYYY-MM-DD. The record in force on this date. Omit for the latest known.
player_ids*array
Roster player ids, as returned by search_players. Max 50.
systemstring
Restrict to one system. Omit for every system held for the player.one of atp · wta · itf_jt · itf_mt · itf_wt · utr
get_match_statisticsIn-play (or final) statistics for one match, in TWO families kept separate on purpose. DERIVED is rebuilt from the point-by-point record (holds/breaks, break points, service/return points). MEASURED is counted per match. It includes what no point record can yield: aces, double...1 params

In-play (or final) statistics for one match, in TWO families kept separate on purpose. DERIVED is rebuilt from the point-by-point record (holds/breaks, break points, service/return points). MEASURED is counted per match. It includes what no point record can yield: aces, double...

Parameters* required
match_id*integer
Match id, as returned by get_live_matches, get_upcoming_matches or get_recent_results.
get_charting_playerCareer profile from shot-level charting data, summed over the player's charted matches. Serve placement (deuce/ad x wide/body/T), return depth and outcomes, net play, and clutch break/game/set-point serving. Also winners and errors by wing, and rally-length tendencies. COVERAG...2 params

Career profile from shot-level charting data, summed over the player's charted matches. Serve placement (deuce/ad x wide/body/T), return depth and outcomes, net play, and clutch break/game/set-point serving. Also winners and errors by wing, and rally-length tendencies. COVERAG...

Parameters* required
genderstring
Disambiguates a name charted on both tours.one of men · women
name*string
Player name fragment, min 3 chars. Must resolve to one charted person.
get_charting_matchEvery charting stat family for ONE charted match, both players, with the per-set split (set 1, set 2, ..., Total) exactly as charted. Charting ids are their own id space (1960 to 2026). Most of these matches have no counterpart in the live tables. Requires the ULTRA plan.1 params

Every charting stat family for ONE charted match, both players, with the per-set split (set 1, set 2, ..., Total) exactly as charted. Charting ids are their own id space (1960 to 2026). Most of these matches have no counterpart in the live tables. Requires the ULTRA plan.

Parameters* required
charting_match_id*integer
Charting match id, in its own id space. Not a match_id.
check_api_statusCheck whether the Live Tennis API is reachable and which plan the configured key is on. Use it to find out why other tools are refusing data. Works with no key.

Check whether the Live Tennis API is reachable and which plan the configured key is on. Use it to find out why other tools are refusing data. Works with no key.

No parameters. Call it with no arguments.

Sponsors

Promote your product hereReach 125k+ visitors monthlyPromote your product hereReach 125k+ visitors monthlyAgent CaffeineSponsoredClose your lid, come back to finished workSnugSponsoredThe clipboard manager for the AI eraPromote your product hereReach 125k+ visitors monthlyWaxSponsoredBlock anything with supervision, without erasing your iPhonePromote your product hereReach 125k+ visitors monthlyknobsSponsoredSee your site on any phone, any day, in any language

Configuration

LIVETENNISAPI_KEYsecret

Your Live Tennis API key (twjp_...). Get one free, no card, at https://livetennisapi.com/subscribe/free — the server runs without it but only the status check will work.

Readme

Live Tennis API

livetennisapi-mcp

MCP server for the Live Tennis API.

Give Claude, Cursor, Zed or any MCP client live tennis scores, players and fixtures — for ATP, WTA, Challenger, ITF and juniors. Odds, rankings, match statistics, charting and model win-probability tools are included, and require the PRO and ULTRA plans.

CI npm license

Documentation · Get a free API key


Setup

Claude Code

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

Claude Desktop — add to claude_desktop_config.json:


View the full README on GitHub

Details

Repository
github.com/livetennisapi/livetennisapi-mcp
Website
livetennisapi.com
Package
livetennisapi-mcp
Transport
STDIO, HTTP
Auth
Required
Registry
MCP registry, active
Tools verified
Nov 13, 2026