MCP server

Table tennis data inside your AI assistant.

Add one address to Claude, ChatGPT, Cursor or any app that takes MCP servers. Ask in plain words; it picks the right tool and calls the API with your key, on your plan.

Your MCP addresshttps://tabletennisapi.com/mcp/your-key
Your assistantExample
How has Wang Chuqin done against Tomokazu Harimoto?
Used find_players head_to_head

Wang Chuqin leads 7-2 in their 9 meetings since December 2024, winning 29 games to 17.

Champions Macao, quarter-final4-1 Wang
Grand Smash Singapore, final2-4 Harimoto
Champions Chongqing, semi-final4-3 Wang

Three of their meetings went to a deciding game.

Set up in a minute

The address has your key in it, so the assistant can call the API as you. Keep it as private as the key.

1

Get a key

Sign up with Google. Your key and its MCP address show together, once, when the key is made.

2

Add the address

Paste it where your app adds connectors or MCP servers. The examples below show where.

3

Ask

"Who won the women's final in Macao?" The assistant picks the tools and shows what it used.

Claude and ChatGPT

Add a custom connector in the app's settings and paste the address as its URL. No sign-in is needed: the key is in the address.

https://tabletennisapi.com/mcp/your-key

Claude Code

One command in your terminal adds it to your project.

claude mcp add --transport http tabletennis \
  https://tabletennisapi.com/mcp/your-key

Cursor

Add it to .cursor/mcp.json in your project, or the global one.

{"mcpServers": {"tabletennis": {
  "url": "https://tabletennisapi.com/mcp/your-key"
}}}

Your own agent

Any MCP client that speaks streamable HTTP. The key can go in a header instead of the address.

POST https://tabletennisapi.com/mcp
Authorization: Bearer your-key

To teach an agent the whole API as well, give it the agent skill: save it as ~/.claude/skills/tabletennisapi/SKILL.md, or upload it as a skill in Claude's settings.

14 tools, one for each question

Each tool is one API endpoint, so answers are the same data your code would get. The free key covers results, events and players.

live_matches

Every match being played now, with the score in games and the points in the game in progress.

Live, Complete
find_matches

Matches on a day or across dates, filtered by discipline, age group, tier or status.

Every plan
get_match

One match: both sides, the score of every game, length and table.

Every plan
results_yesterday

Yesterday's official results, every event.

Every plan
find_events

Events past, running and scheduled, by name, country, tier or dates.

Every plan
get_event

One event: dates, place, tier and its draws.

Every plan
event_matches

An event's matches, by draw and round.

Every plan
find_players

Players by name or country.

Every plan
get_player

One player and their record by discipline.

Every plan
player_matches

A player's matches, newest first.

Live, Archive, Complete
head_to_head

Two players against each other: wins, games and every meeting.

Live, Archive, Complete
world_rankings

The world rankings for a week: the top 100 of any list, with points and movement.

Every plan
player_rankings

A player's world ranking week by week.

Live, Archive, Complete
match_points

Point by point for a match followed live: every score, with who served.

Every plan

Good to know

Does it use my allowance?

Yes. Each tool call is one API call on your key, with your plan's daily and per-minute limits. Your dashboard shows them with the rest of your calls.

What if my plan does not include a tool?

The assistant is told which plans include it, with a link to pricing, and can still answer with the tools you do have.

Someone saw my address. What now?

Revoke that key on your dashboard and make a new one. The old address stops working at once.

Is anything stored about my questions?

No. We see which tool was called and when, like any API call, never what you asked the assistant.

Ask your assistant about tonight's matches

A free key, its MCP address and 50 calls a day, with no card.

Get a free key