MCP server
Let Claude, ChatGPT, Cursor and other MCP apps call the API for you.
The MCP server gives an AI assistant 14 tools, from live_matches to head_to_head. Each tool is one API endpoint and calls it with your key, so it follows your plan and counts against your allowance like any other call. The MCP page lists every tool and the plans that include it.
Your MCP address
Your address is shown with your key when the key is made, on the sign-up page or your dashboard. It ends in the key, so keep it as private as the key; if it is seen, revoke the key on your dashboard and the address stops working.
https://tabletennisapi.com/mcp/YOUR_KEY
Adding it
In Claude or ChatGPT, add a custom connector and paste the address as its URL. In Claude Code:
claude mcp add --transport http tabletennis https://tabletennisapi.com/mcp/YOUR_KEY
In Cursor, in .cursor/mcp.json:
{"mcpServers": {"tabletennis": {"url": "https://tabletennisapi.com/mcp/YOUR_KEY"}}}Your own client
The server speaks MCP's streamable HTTP transport: JSON-RPC 2.0 over POST, with initialize, tools/list, tools/call and ping. You can send the key in a header and use the address without it:
curl -X POST https://tabletennisapi.com/mcp \
-H "Authorization: Bearer $TT_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'When a tool is refused
A refusal comes back as a tool result with isError, never as a protocol error, so the assistant can explain it: a tool outside your plan names the plans that include it and links pricing, and a limit reached says when to try again.