Connect Turnale and your agent gets 30 tools, among them add_players, create_tournament, delete_tournament. It answers at https://mcp.turnale.app over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 10 of 10 times since 4 September 2026; the last check, on 17 October 2026, succeeded.
Run racket-sport tournaments from your AI assistant: fair draws, scores, live standings.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
add_players | Add players to the roster in bulk (parse pasted lists or spreadsheets yourself and send structured entries — never invent placeholder names; use signup mode when names aren't known yet). Duplicate names are rejected for disambiguation. If a Inputs: tournament_key, players, request_id |
create_tournament | Create a new tournament. Keep setup SHORT: ask the organiser only for sport, players, court count and start time — sensible defaults cover everything else. FORMAT: never ask an open 'which format?' question. If the organiser clearly named o Inputs: sport, format, name, discipline, players, pairs |
delete_tournament | Soft-delete the whole tournament (recoverable by support for 7 days, then gone). Preview first; confirm: true to apply. Inputs: tournament_key, confirm |
end_tournament | Finish the tournament. If matches are still pending it ends early and current standings freeze as the final results. Preview first, confirm to apply. Inputs: tournament_key, request_id, confirm |
generate_draw | Generate (or regenerate) the draw and schedule. This IS the start action: the first draw moves the tournament from setup to active and closes self-signup — when the organiser says "start the tournament", call this. The result includes round Inputs: tournament_key, seeding, group_count, advance_per_group, third_place_match, points_per_match |
get_audit_log | Chronological record of every change (newest first) — the answer to "who changed that?". Paginate with before_id. Ids are global across all tournaments, so gaps between ids are normal. Inputs: tournament_key, limit, before_id |
get_briefing | Compact full state of the tournament — settings, roster, progress, next matches, standings, page link. Call this first when resuming work in a new conversation with just the key. Inputs: tournament_key |
get_export | Full structured export of the tournament document (players, draws, results) — for the organiser's own records or data portability. Inputs: tournament_key |
get_pdf | The printable PDF itself, returned as a base64 embedded resource — use this when the organiser wants the file handed to them and your client cannot fetch URLs. Default "sheet": the merged tournament document (match sheet with write-in score Inputs: tournament_key, doc |
get_pdf_link | Download links for the printable PDF. pdf_url is the merged tournament document (match sheet with write-in score boxes, player sheet, standings/results when they exist) — hand this to the organiser. results_pdf_url and plan_pdf_url are depr Inputs: tournament_key |
get_player_template | A blank Excel workbook the organiser fills in and hands back: Name, Level, Gender, Comments, one player per row, with a sheet explaining each column. Offer it when the organiser has no list ready, asks how to send their players, or would ra |
get_results | Final placements (or placements-so-far for a tournament that ended early). Inputs: tournament_key |
get_schedule | Upcoming matches in playing order with courts and estimated times. Inputs: tournament_key, limit |
get_standings | Current standings per group/structure, tiebreak-ordered (wins → head-to-head → set diff → game diff; americano: total points). Inputs: tournament_key |
list_matches | Matches with sides, scores, courts and times. Filter by state or round; paginate with after_match_number for large tournaments. Inputs: tournament_key, state, round, after_match_number, limit |
list_players | Full roster with status, level, and doubles partner. Inputs: tournament_key |
ping | Health check. Returns a static confirmation that the Turnale MCP server is reachable. |
promote_player | Move a waitlisted player onto the active roster when a spot opens (signed-in players are notified by email). The cap can be raised with update_settings. Inputs: tournament_key, name, request_id |
record_feedback | Record a request for something Turnale does not support yet (a format, scoring variant, or feature), so it can be considered for the roadmap. Call this only when the organiser asked for something unsupported AND agreed to have it noted. Des Inputs: category, feedback, related_tool |
record_results | Record one or many results. Score is conversational text: "6-4 3-6 10-7" (sets) or "16-8" (americano points). Outcomes: completed (default), walkover, retired (partial score allowed), cancelled, reinstate — reinstate CLEARS a recorded resul Inputs: tournament_key, results, request_id |
remove_player | Remove one or MANY players before any result is recorded (afterwards use withdraw_player or replace_player) — pass player_names to clear several in one call, never loop one-by-one. Regenerates an existing unlocked draw. Inputs: tournament_key, player_name, player_names, request_id |
replace_player | A substitute takes over a player's spot. During play: slot takeover — completed results stay, the change is shown ("Anna, for Kristjan from R3"). Before the first result: choose mode slot_swap (default) or regenerate (re-pair and redraw usi Inputs: tournament_key, out_player_name, in_player, mode, request_id |
reschedule | Shift the start time, add a delay, or move one match to a specific court/slot. Played matches never move. Inputs: tournament_key, start_time, delay_minutes, move_match, request_id |
set_pairs | Fix the doubles pairs: pass explicit pairs by name, or auto-pair (random or level-balanced). Only before results exist. Regenerates an existing unlocked draw. Inputs: tournament_key, pairs, auto, request_id |
suggest_format | Recommend tournament formats in plain language, with the round/time math done by the engine. Call this FIRST when the organiser has not named a format, names one hesitantly, or comes from a background where americano/mexicano need explainin Inputs: players_estimate, discipline, courts, total_minutes, match_minutes, vibe |
swap_partners | Exchange two players' places. Fixed-pair doubles: swaps partners between two pairs permanently (name one player from each pair). Americano/mexicano: pass `round` to swap two players' places in ONE unplayed round — the courtside patch for a Inputs: tournament_key, player_a, player_b, round, request_id, confirm |
undo_last_change | Roll the tournament back. Without to_change_id: restore exactly how it was before the most recent change (tool call or courtside page entry). With to_change_id (an id from get_audit_log): restore to just before that change — it and every la Inputs: tournament_key, to_change_id, request_id, confirm |
update_player | Rename a player or set their gender/level/note. Updates MANY in one call: pass `updates` with one object per player and never loop one-by-one — setting levels for a whole roster used to be one call per player, which on a phone meant approvi Inputs: tournament_key, player_name, new_name, gender, level, note |
update_settings | Change the tournament name, start time, match duration, break/changeover minutes, courts (count or names), house rules, or courtside score entry from the page. Court changes recompute the remaining schedule; played matches never move. Inputs: tournament_key, name, start_time, match_duration_minutes, break_minutes, courts |
withdraw_player | Withdraw a player (or their pair) mid-tournament. Remaining matches become walkovers for the opponents; americano regenerates its future rounds instead. Preview first, confirm to apply. Inputs: tournament_key, player_name, request_id, confirm |
Every block below points at https://mcp.turnale.app. Pick your client and copy.
claude mcp add --transport http turnale https://mcp.turnale.app
{
"mcpServers": {
"turnale": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.turnale.app"]
}
}
}{
"mcpServers": {
"turnale": {
"url": "https://mcp.turnale.app"
}
}
}{
"servers": {
"turnale": {
"type": "http",
"url": "https://mcp.turnale.app"
}
}
}{
"context_servers": {
"turnale": {
"url": "https://mcp.turnale.app"
}
}
}{
"mcpServers": {
"turnale": {
"serverUrl": "https://mcp.turnale.app"
}
}
}{
"mcpServers": {
"turnale": {
"url": "https://mcp.turnale.app"
}
}
}name: Turnale
version: 0.0.1
schema: v1
mcpServers:
- name: Turnale
type: streamable-http
url: https://mcp.turnale.app{
"mcpServers": {
"turnale": {
"httpUrl": "https://mcp.turnale.app"
}
}
}{
"mcpServers": {
"turnale": {
"type": "http",
"url": "https://mcp.turnale.app"
}
}
}{
"mcpServers": {
"turnale": {
"url": "https://mcp.turnale.app"
}
}
}goose://extension?url=https%3A%2F%2Fmcp.turnale.app&type=streamable_http&id=turnale&name=Turnale
It answered our last check on 17 October 2026 in 350 ms. Over 10 checks since 4 September 2026 it answered 10. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by turnale.app and served from mcp.turnale.app, the vendor's own domain: https://mcp.turnale.app.
30, as returned by the server's own tools/list on 9 September 2026: add_players, create_tournament, delete_tournament, end_tournament, generate_draw, get_audit_log, get_briefing, get_export, and 22 more.
It answered our last check on 17 October 2026 in 350 ms. Over 10 checks since 4 September 2026 it answered 10.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://mcp.turnale.app. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: app.turnale. Endpoint host: mcp.turnale.app. ARD identifier: urn:air:app.turnale:mcp:turnale.
First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.