Livetennisapi MCP vs Ourpr MCP Server

A side-by-side look at the Livetennisapi MCP and Ourpr MCP Server 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 requiredOurpr MCP Server logoOurpr MCP ServerSports · Local subprocess (stdio)Read your own ourpr running history in an AI agent, and put a plan on the week ahead.61GoodAuth: not declared

Verdict: choose Livetennisapi MCP for sports work as a local process; choose Ourpr MCP Server for sports as a local process. 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

Ourpr MCP Server logoChoose Ourpr MCP Server when

  • You need dedicated capabilities in the Sports domain.
  • You prefer a local stdio subprocess transport.
  • You have the keys it needs: OURPR_TOKEN, OURPR_API_URL.
  • You want tools like ourpr_list_runs, ourpr_get_run, ourpr_run_stream.
Explore Ourpr MCP Server

Feature & specification comparison

Rows where the two servers differ are marked.

SpecLivetennisapi MCP logoLivetennisapi MCPOurpr MCP Server logoOurpr MCP Server
CategorySportsSports
Quality signal50/100 · Good61/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthAPI key requiredNot declared
PricingFreemiumNot declared
Required env varsLIVETENNISAPI_KEYOURPR_TOKENOURPR_API_URL
Verified ownerCommunity listingCommunity listing
GitHub stars1520
Directory activity 5 views 0 installs 0 upvotes 1 views 0 installs 0 upvotes
Tools2411

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

Ourpr MCP Server tools 11

  • ourpr_list_runsTraining history between two dates, newest first: date, local start, name, type, miles, pace, time, elevation, average heart rate, and on a runs-only list Friel's efficiency factor and the heartbeats each mile took. Start here for totals, streaks, trends, or finding a run. For one run's splits, use ourpr_get_run with an id from here.
  • ourpr_get_runOne activity in full: mile splits with heart rate, cadence, calories, device. Id comes from ourpr_list_runs. For the profile along the route, use ourpr_run_stream.
  • ourpr_run_streamA run's profile on a 10 m grid — elevation, heart rate, power, cadence — as min, average, max and coverage per channel, not every sample. Also each half by distance with its moving pace, heart rate and efficiency, and the drift between them (aerobic decoupling, Pa:HR). No profile is a normal answer for an indoor run.
  • ourpr_run_lapsThe laps the watch recorded for one run — the runner's own button presses. Laps follow the workout; mile splits follow the mile.
  • ourpr_rep_workoutsInterval sessions found across the history, with reps and distances. Detection is conservative, so a session it misses is still in ourpr_list_runs.
  • ourpr_detect_repsWhether one particular run was an interval session, and its reps.
  • ourpr_similar_terrainStretches of past runs matching a distance and climb — what the runner has already done that resembles a race they are training for.
  • ourpr_training_blocksThe goal race and its Block: race day, distance, goal time, which week of the Block today falls in, and miles for each week. Also the Blocks before past races, each with its result, weeks and peak week. A Block is the race-anchored Monday to Sunday weeks before a race.
  • ourpr_list_racesEvery race ourpr finds in the history, newest first, tune-ups included: date, name, distance, time, pace and run id. Also the fastest result at 5K, 10K, half marathon and marathon among them.
  • ourpr_list_plansThe runner's planned runs between two dates: day, name, miles, time, tag, the runner's note, whether a logged run fulfilled it, and whether ourpr create wrote it. Read it before ourpr_plan_week so a new plan does not land on a day that already holds one.
  • ourpr_plan_weekWrite one planned run, or a week of them, onto days still ahead. Each lands on the runner's week as a plan they can see, edit and remove. Needs a token made with the write scope and ourpr create. Never logs a run.

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"
      }
    }
  }
}

Ourpr MCP Server

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "ourpr-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "ourpr-mcp-server@0.5.0"
      ],
      "env": {
        "OURPR_TOKEN": "YOUR_OURPR_TOKEN_HERE",
        "OURPR_API_URL": "YOUR_OURPR_API_URL_HERE"
      }
    }
  }
}

Frequently asked questions

Livetennisapi MCP is categorized under Sports and uses a local stdio subprocess. Ourpr MCP Server belongs to Sports and uses a local stdio subprocess. Pick Livetennisapi MCP for sports work and Ourpr MCP Server 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. Ourpr MCP Server has no declared pricing — check the project's own site. 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 ourpr-mcp-server 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. Ourpr MCP Server has 61/100 (Good) with 1 views, 0 installs and 0 GitHub stars.