About mcp-tennis-match-data
mcp-tennis-match-data retrieves ATP and WTA match results, schedules, and current rankings through Apify. MCP clients can filter matches by dates, tours, tournaments, and players, then receive match-level records.
Key features
- 01Retrieve results and schedules by date
- 02Query ATP and WTA rankings
- 03Filter by tour, tournament, and player
- 04Return players, rounds, status, and set scores
Use cases
- 01Review ATP or WTA results for a date
- 02Find matches involving a specific player
- 03Retrieve current ranking lists
MCP support
The MCP server provides the get_tennis_match_data tool for retrieving match data or rankings. It starts the Mamba Labs data actor on Apify and returns dataset rows.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @mambalabsdev/mcp-tennis-match-dataAPIFY_TOKENSecretApify API token from https://console.apify.com/account/integrationsLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
1Saved tool list · updated 2d ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| mode | enum | No | matches (default) reads results and schedules by date. rankings returns the current ATP and WTA lists.matches | rankings |
| draws | array | No | mens-singles, womens-singles, mens-doubles, womens-doubles, mixed-doubles, or the shortcuts singles and doubles. Empty means all. |
| top_n | number | No | Rankings mode: rows per tour, up to 150. Default 100. |
| tours | array | No | atp, wta, or both (default both). Mixed doubles appears under either. |
| date_to | string | No | Last UTC date. Empty means the same as date from. A run reads at most 366 days. |
| players | array | No | Keep matches with a player whose name holds one of these words, such as sinner. |
| statuses | array | No | final, retired, walkover, in_progress, scheduled, other, or the shortcuts finished, live, and upcoming. Empty means all. |
| date_from | string | No | First UTC date as YYYY-MM-DD, or today, yesterday, or tomorrow. Needed in matches mode. |
| max_matches | number | No | The most match rows in a run. Default 500. |
| tournaments | array | No | Keep tournaments whose name holds one of these words, such as wimbledon. |
| max_charge_usd | string | No | Optional. The run stops before a charge that would pass this amount. Summary rows are always returned. |
| whole_tournament | string | No | no (default) keeps matches played on the dates asked for. yes returns every match of each tournament running on those dates. |
| include_qualifying | string | No | yes (default) or no. |
Details
From the project READMETennis Match Data MCP Server
An MCP server for the Mamba Labs Tennis Match Data actor on Apify. ATP and WTA results, schedules, and rankings by date.
What's Inside
- What it does
- Quick start
- Prerequisites
- Example prompts
- Tool
- Inputs
- Pricing
- Full actor documentation
- License
What it does
Give a date or date range. The actor reads the public ESPN tennis scoreboard and returns one row per match with players, seeds, round, status, and set scores. It can also return the current ATP and WTA rankings. Refused reads and summary rows are free.
All of the work runs on Apify. This package is a thin client that starts the actor run, waits for it, and hands back the dataset rows.
Quick start
You need Node.js 18 or newer and an Apify account with an API token.
Add this to your Claude Desktop config (claude_desktop_config.json), Cursor, or any MCP client:
{
"mcpServers": {
"mamba-tennis-match-data": {
"command": "npx",
"args": [
"-y",
"@mambalabsdev/mcp-tennis-match-data"
],
"env": {
"APIFY_TOKEN": "your-apify-token"
}
}
}
}
Restart the client. The get_tennis_match_data tool appears.
Prerequisites
- Node.js 18 or newer.
- An Apify API token from console.apify.com/account/integrations, set as
APIFY_TOKEN. The server lists its tool without a token; a call needs one.
Example prompts
- "Get the ATP and WTA results from yesterday."
- "Show every Jannik Sinner match in July 2025."
- "Get the top 50 WTA rankings."
Tool
get_tennis_match_data. One tool. Example arguments:
{
"date_from": "2025-07-13",
"tours": [
"atp"
],
"draws": [
"singles"
],
"max_matches": 10
}
Inputs
Every buyer facing input of the actor. Omitted inputs take the actor's own defaults.
| Input | Type | Required | Description |
|---|---|---|---|
mode | string | no | matches (default) reads results and schedules by date. rankings returns the current ATP and WTA lists. |
date_from | string | no | First UTC date as YYYY-MM-DD, or today, yesterday, or tomorrow. Needed in matches mode. |
date_to | string | no | Last UTC date. Empty means the same as date from. A run reads at most 366 days. |
tours | array | no | atp, wta, or both (default both). Mixed doubles appears under either. |
draws | array | no | mens-singles, womens-singles, mens-doubles, womens-doubles, mixed-doubles, or the shortcuts singles and doubles. Empty means all. |
statuses | array | no | final, retired, walkover, in_progress, scheduled, other, or the shortcuts finished, live, and upcoming. Empty means all. |
tournaments | array | no | Keep tournaments whose name holds one of these words, such as wimbledon. |
players | array | no | Keep matches with a player whose name holds one of these words, such as sinner. |
include_qualifying | string | no | yes (default) or no. |
whole_tournament | string | no | no (default) keeps matches played on the dates asked for. yes returns every match of each tournament running on those dates. |
max_matches | number | no | The most match rows in a run. Default 500. |
top_n | number | no | Rankings mode: rows per tour, up to 150. Default 100. |
max_charge_usd | string | no | Optional. The run stops before a charge that would pass this amount. Summary rows are always returned. |
Pricing
Pay per event on Apify, billed to your Apify account. Prices in USD.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
match-row, one match | $0.0018 | $0.00171 | $0.00162 | $0.00153 |
ranking-row, one ranked player | $0.001 | $0.00095 | $0.0009 | $0.00085 |
empty-read, one date and tour with no fitting match, after the first 2 free | $0.002 | $0.0019 | $0.0018 | $0.0017 |
apify-actor-start, per run start | $0.006 | $0.006 | $0.006 | $0.006 |
Summary rows, refused reads, refused input, and the first 2 empty reads are free. Mamba Labs pays the platform costs of the run. Mamba Labs pays the platform costs of the run, Apify proxy traffic included.
Full actor documentation
apify.com/mambalabs/tennis-match-data
License
MIT. See LICENSE.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.