MCP.Market

Turnale MCP server

online · 100% uptime
by turnale.app·app.turnale/turnale·v0.1.2

Run racket-sport tournaments from your AI assistant: fair draws, scores, live standings.

B75/100grade B
What users say
No reviews yet
Be the first
Safety scan
B75/100

full report

Adoption
New

0 stars

Reviews

Write one

Nobody has reviewed Turnale yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Turnale tools (30, 5 write)

write = sends, deletes, buys or posts
  • add_playersFree

    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 an unlocked draw exists it is regenerated automatically.

  • create_tournamentwrite actionFree

    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 one, pass it; otherwise omit format — the call then returns a ready-to-show menu of options (nothing is created) for you to relay so the organiser can read and choose in one reply. Players can be added later with add_players. NEVER invent placeholder or fake player names ('Player 1', made-up names): if the organiser only knows the headcount, create with signup_open: true and signup_cap set to it — players add themselves by name via the page link. If the organiser gives a time budget instead of rounds (e.g. 'we have 2 hours'), derive rounds ≈ total minutes ÷ (match + break minutes) and confirm. If they ask for a format that is not listed, offer to note it with record_feedback. Returns the organiser key (tk_…): relay it with the warning that it cannot be recovered, plus the shareable page link.

  • delete_tournamentwrite actionFree

    Soft-delete the whole tournament (recoverable by support for 7 days, then gone). Preview first; confirm: true to apply.

  • end_tournamentFree

    Finish the tournament. If matches are still pending it ends early and current standings freeze as the final results. Preview first, confirm to apply.

  • generate_drawFree

    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 rounds_text — SHOW it to the organiser as-is, in whatever language they are writing to you in (it is English already, so relay it unchanged unless they are writing something else) so they can check who plays whom — and the seed that produced the draw: preview first, then confirm with that SAME seed to apply exactly the previewed draw. Free until the first result is recorded; after that this DISCARDS recorded results and requires BOTH confirm: true and discard_results: true. If the organiser asks for a format that is not supported, offer to note it with record_feedback. Optional overrides adjust the format first.

  • get_audit_logFree

    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.

  • get_briefingFree

    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.

  • get_exportFree

    Full structured export of the tournament document (players, draws, results) — for the organiser's own records or data portability.

  • get_pdfFree

    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 boxes, player sheet, standings/results when they exist). "results" and "plan" are deprecated pre-merge variants kept for comparison. For a lighter response, get_pdf_link returns download URLs instead.

  • get_pdf_linkFree

    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 deprecated pre-merge variants kept for comparison.

  • get_player_templateFree

    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 rather work in a spreadsheet than paste names into chat. Needs no key. The file comes back both as a download link and as an attachable file. Reading a filled-in sheet needs no tool: parse it yourself and send the rows to add_players.

  • get_resultsFree

    Final placements (or placements-so-far for a tournament that ended early).

  • get_scheduleFree

    Upcoming matches in playing order with courts and estimated times.

  • get_standingsFree

    Current standings per group/structure, tiebreak-ordered (wins → head-to-head → set diff → game diff; americano: total points).

  • list_matchesFree

    Matches with sides, scores, courts and times. Filter by state or round; paginate with after_match_number for large tournaments.

  • list_playersFree

    Full roster with status, level, and doubles partner.

  • pingFree

    Health check. Returns a static confirmation that the Turnale MCP server is reachable.

  • promote_playerFree

    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.

  • record_feedbackFree

    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. Describe the missing capability in general terms — NEVER include player names, contact details, or tournament keys.

  • record_resultsFree

    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 result and returns the match to scheduled (the fix for a mis-entered score). Corrections simply re-record. Winner (a|b = first|second listed side) only needed when the score alone does not decide.

  • remove_playerwrite actionFree

    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.

  • replace_playerFree

    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 using levels). Unknown substitute names are added to the roster automatically.

  • rescheduleFree

    Shift the start time, add a delay, or move one match to a specific court/slot. Played matches never move.

  • set_pairsFree

    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.

  • suggest_formatFree

    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 explaining — then relay the `menu` text as-is instead of asking an open 'which format?' question. SINGLES OR DOUBLES IS A PREREQUISITE: omit `discipline` and this returns the question to put to the organiser rather than a menu, because it decides which formats exist at all (americano and mexicano are doubles). Never infer it from the sport. Needs no key.

  • swap_partnersFree

    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 late arrival, an injury, or two friends who want a game together. One of them may be sitting that round, which is how you put a late arrival on court. Preview first, confirm to apply: the preview names any partnership or meeting the swap would repeat. Results already played never move.

  • undo_last_changeFree

    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 later change are discarded in one step, so a burst of unwanted calls unwinds with a single revert. Preview lists exactly what would be discarded; confirm: true applies. A follow-up plain undo restores what the previous undo discarded.

  • update_playerwrite actionFree

    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 approving each one and left the roster half-updated when some were mis-tapped. The whole batch applies or none of it does.

  • update_settingswrite actionFree

    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.

  • withdraw_playerFree

    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.

Public scan report

scanner v0.1.9 · 2026-09-24 · same rubric, same numbers if you re-run it

1 high
  • –Code scanremote-only server, no package to scann/a
  • Live reliabilityremote reachable in 1364ms20/20
  • Tool poisoning30 tool descriptions checked15/15
  • Auth qualityopen endpoint exposes 5 write-action tools with no auth3/15
  • Maintenancelast push 51 days ago12/15
  • Maintainer identitynamespace and repository owner differ; website matches verified namespace6/10

Findings (1)

  • highWrite-action tools reachable without authenticationauth.open-write
Overall 75/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Turnale compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
75/100
higher than 45% of 48,255 servers
Tools
30
the typical server has 7
Tools that change things
17%
typical: 0%. Fewer write tools means less an agent can break
Uptime
100%
of our recent checks; the typical remote server answers 100%
Response time
2,036 ms
faster than 5% of 30,031 servers

What its tools let an agent do: 21 read · 3 create · 4 change · 2 delete

Install Turnale in Claude Code, Cursor or VS Code

claude mcp add --transport http turnale https://mcp.turnale.app
Add to Cursor

What the publisher says

From the Turnale repository's README, as published. We do not edit it. Read it on GitHub

Turnale

Run recreational racket-sport tournaments from chat.

This repository holds the client integration manifests for Turnale — the Claude Code plugin, the Gemini CLI extension, and the organiser skill. The server itself is a hosted service at https://mcp.turnale.app and is not open source.

What Turnale does

Turnale lets an organiser run an entire recreational tournament by talking to their AI assistant. Tell it who's playing and you get a fair draw, a schedule, and a shareable web page with live standings that players follow from their phones.

Tennis, padel, pickleball, badminton, squash and table tennis.

Formats clubs actually play

Americano and mexicano (rotating-partner doubles), round robin, groups + playoff, and knockout with an optional 3rd-place match — as singles or fixed pairs, with random or level-balanced pairing. The assistant explains the options with the round and time maths already done by the engine.

Last-minute chaos is one sentence

Dropouts, substitutions, partner swaps, late arrivals, court changes, and ending early with the standings frozen as the final result. Every change can be previewed before it lands and undone afterwards.

Honest scores

Walkovers and retirements are recorded as exactly that, and the games actually played still count towards the standings.

One link for players

The shareable page carries the order of play, live scores, standings and self-signup, with an optional cap and waitlist. Printable order-of-play and results PDFs cover the clubhouse noticeboard.

Connecting

Point your assistant at https://mcp.turnale.app and start straight away.

{
  "mcpServers": {
    "turnale": {
      "type": "http",
      "url": "https://mcp.turnale.app"
    }
  }
}

Creating a tournament returns an unguessable organiser key plus the shareable page link. The key is the only credential and is relayed in chat with a cannot-be-recovered warning; the page link on its own is view-only.

Per-platform connect steps for Claude, ChatGPT, Le Chat, Perplexity, Grok and the Gemini CLI are at turnale.app/docs.

Install as a Claude Code plugin

/plugin marketplace add turnale-app/turnale
/plugin install turnale

Install as a Gemini CLI extension

gemini extensions install https://github.com/turnale-app/turnale

Example prompts

  • Run a padel americano for 12 players on 3 courts, 2 hours.
  • Set up Thursday's tennis night — no player list yet, let people sign up via a link.
  • Jonas can't come, replace him with Emil from round 3.
  • Court 1: 9–7, Court 2: 11–5. Who plays whom next?
  • We have to stop early — freeze the standings and give me the final results.

Links

Website · Docs · Demo · Privacy · Terms

Nothing above is checked by us. What we check is on the safety report.

Turnale: common questions

Is Turnale MCP server safe?
Mostly: it is graded B (75/100). Read the Turnale safety report
How do I install Turnale?
It runs remotely at mcp.turnale.app. Add it to Claude Code, Cursor, VS Code or Claude Desktop with the snippets above, or call it through the mcp.market gateway without installing anything.
Does Turnale need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is Turnale maintained?
The last commit was 93 days ago (2026-08-03). The latest release is v0.1.2.
Is Turnale up?
100% of our last 28 checks got an answer. We check remote servers about four times a day.
What can I use instead of Turnale?
Servers from other publishers that do the same job: draw.io MCP server.
How does Turnale compare with other MCP servers?
safety score 75/100 (higher than 45% of 48,255 servers); tools 30 (the typical server has 7); tools that change things 17% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to Turnale

Same job from other publishers: the closest match first, then the best rated.

  • draw.io
    Create draw.io diagrams in chat from Mermaid or XML, shown live and interactive. 10,000+ shapes.
    B