Set up the Live Tennis MCP server in your client
Pick your client below and copy the snippet. Run the server on your own machine with npx, and your API key goes from there to our API and nowhere else. Or point the client at our hosted endpoint, which takes the key with each request.
Typing your API key is optional. If you do, this page writes it into the snippet in your browser. Nothing is sent to us or saved, and a reload clears it. Leave the field empty and the snippet shows twjp_YOUR_KEY for you to replace. An API key in a terminal command stays in your shell history. On a shared machine, keep the placeholder and set the variable yourself.
Get a free keyRead the MCP docs
Which setup should I use?
On your machine, the client starts the livetennisapi-mcp package with npx. It needs Node.js 20 or newer. The server reads LIVETENNISAPI_KEY from its environment and sends the key only to api.livetennisapi.com.
Hosted, the client sends the key to https://mcp.livetennisapi.com/mcp in an Authorization header. Nothing to install.
Both give the same read-only tools. Each call runs on your key, so it reaches what your plan reaches. A tool above your plan says which plan it needs.
Every snippet, by client
The same snippets as the tool above, with the placeholder key. The link under each client goes to its own MCP documentation.
Claude Code
On your machine
Run it in a terminal. To have it in every project, add --scope user before the --.
claude mcp add --transport stdio livetennis --env LIVETENNISAPI_KEY=twjp_YOUR_KEY -- npx -y livetennisapi-mcp
Hosted endpoint
Run it in a terminal. Add --scope user to have it in every project.
claude mcp add --transport http livetennis https://mcp.livetennisapi.com/mcp --header "Authorization: Bearer twjp_YOUR_KEY"
Claude Desktop
On your machine
Settings, Developer, Edit Config. The file is claude_desktop_config.json: ~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows. Quit and reopen Claude Desktop after you save.
{
"mcpServers": {
"livetennis": {
"command": "npx",
"args": ["-y", "livetennisapi-mcp"],
"env": { "LIVETENNISAPI_KEY": "twjp_YOUR_KEY" }
}
}
}
Hosted endpoint
Add a custom connector in Claude and paste this URL. We do not log an API key sent in a URL. The CDN in front of the endpoint still sees it, and the connector stores it. Use the local setup if that matters to you.
https://mcp.livetennisapi.com/mcp?token=twjp_YOUR_KEY
Cursor
On your machine
~/.cursor/mcp.json for every project, or .cursor/mcp.json in one project.
{
"mcpServers": {
"livetennis": {
"command": "npx",
"args": ["-y", "livetennisapi-mcp"],
"env": { "LIVETENNISAPI_KEY": "twjp_YOUR_KEY" }
}
}
}
Hosted endpoint
~/.cursor/mcp.json for every project, or .cursor/mcp.json in one project.
{
"mcpServers": {
"livetennis": {
"url": "https://mcp.livetennisapi.com/mcp",
"headers": { "Authorization": "Bearer twjp_YOUR_KEY" }
}
}
}
VS Code
On your machine
.vscode/mcp.json in your project, or run MCP: Open User Configuration for every project. VS Code asks for your API key the first time the server starts and keeps it, so the file never holds it.
{
"inputs": [
{
"type": "promptString",
"id": "livetennisapi-key",
"description": "Live Tennis API key",
"password": true
}
],
"servers": {
"livetennis": {
"type": "stdio",
"command": "npx",
"args": ["-y", "livetennisapi-mcp"],
"env": { "LIVETENNISAPI_KEY": "${input:livetennisapi-key}" }
}
}
}
Hosted endpoint
.vscode/mcp.json in your project, or run MCP: Open User Configuration for every project. VS Code asks for your API key the first time the server starts and keeps it, so the file never holds it.
{
"inputs": [
{
"type": "promptString",
"id": "livetennisapi-key",
"description": "Live Tennis API key",
"password": true
}
],
"servers": {
"livetennis": {
"type": "http",
"url": "https://mcp.livetennisapi.com/mcp",
"headers": { "Authorization": "Bearer ${input:livetennisapi-key}" }
}
}
}
Zed
On your machine
Install the Live Tennis MCP extension from Zed's extensions page, then add this to your Zed settings.json. The extension installs the npm package and keeps it up to date.
{
"context_servers": {
"livetennis-mcp": {
"settings": { "api_key": "twjp_YOUR_KEY" }
}
}
}
Hosted endpoint
Your Zed settings.json.
{
"context_servers": {
"livetennis": {
"url": "https://mcp.livetennisapi.com/mcp",
"headers": { "Authorization": "Bearer twjp_YOUR_KEY" }
}
}
}
Gemini CLI
On your machine
Run it in a terminal. The extension reads the key from the environment, so put the export line in your shell profile.
export LIVETENNISAPI_KEY=twjp_YOUR_KEY
gemini extensions install https://github.com/livetennisapi/gemini-cli-livetennis
Hosted endpoint
~/.gemini/settings.json for every project, or .gemini/settings.json in one project.
{
"mcpServers": {
"livetennis": {
"httpUrl": "https://mcp.livetennisapi.com/mcp",
"headers": { "Authorization": "Bearer twjp_YOUR_KEY" }
}
}
}
Codex
On your machine
Run it in a terminal. It writes the server to ~/.codex/config.toml, which the Codex CLI, the IDE extension and the desktop app share.
codex mcp add livetennis --env LIVETENNISAPI_KEY=twjp_YOUR_KEY -- npx -y livetennisapi-mcp
Hosted endpoint
Run it in a terminal. Codex reads the key from the environment each time, so the config file never holds it. Put the export line in your shell profile.
export LIVETENNISAPI_KEY=twjp_YOUR_KEY
codex mcp add livetennis --url https://mcp.livetennisapi.com/mcp --bearer-token-env-var LIVETENNISAPI_KEY
How do I check it works?
Ask the assistant "What tennis matches are live right now?" If it answers with matches, the server is connected. If it says it has no key, run the check_api_status tool. It reports whether the API is reachable and which plan your key is on.
The server is open source under the MIT licence: livetennisapi-mcp on GitHub.
Snippets checked against each client's documentation on 8 November 2026.