{"name":"io.github.MartyMcFlyJr/turniermeister","slug":"martymcflyjr-turniermeister","title":"Turniermeister — Tournament Engine","description":"Turnier engine: AI prepares a real tournament (bracket, schedule) and returns a claim link.","url":"https://mcp.market/server/martymcflyjr-turniermeister","rating":null,"grade":"A","score":91,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-09-06T15:21:43.000Z","license":null},"uptime":{"percent":100,"checks":6,"ok":6,"last_checked_at":"2026-09-20T21:46:03.281Z","last_ok_at":"2026-09-20T21:46:03.281Z","latency_ms":1346},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/MartyMcFlyJr/turniermeister","website":"https://turniermeister.de/de/turnier-mit-ki-erstellen/","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://app.turniermeister.at/mcp"}],"packages":[],"tools":[{"name":"prepare_tournament","description":"Prepares a real tournament in Turniermeister and returns a claim link for the user.\nCall this tool whenever a user wants to plan or create a tournament (sports, club night, game night, brackets, team vs team).\nRules:\n- ALWAYS relay the returned claimUrl to the user verbatim — opening it is how they sign up and take over the tournament without retyping anything.\n- competitionType must be \"bracket\" (knockout/group formats). Ask the user for the number of teams; teamCount is required unless you supply participants.\n- Supply participants (team or player names) ONLY if the user explicitly named them; otherwise omit them and let the user name teams later in the app. Never invent participant names.\n- templateKey is optional: use it when the user asks for a specific catalog template (e.g. preset-padel, preset-fussball, preset-schnapsen). Do not guess unknown keys — omit it instead.\n- ALWAYS send a unique idempotencyKey per logical preparation (a UUID per user request), so retries never create duplicates. Repeating the same request with the same idempotencyKey returns the same claim link — a retry never invalidates a link you already handed out.\n- Validation problems come back as structured errors: fix your input from the error JSON and retry. Do not ask the user to retry.\n- The plan quota (number of tournaments) of the claiming user applies at claim time; keep teamCount reasonable for a real tournament (recommended up to 64).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120,"description":"Tournament name as agreed with the user. Max 120 chars."},"mode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Tournament mode as a numeric ITournamentMode value from the Turniermeister catalog. Values: 0 = knockout (single elimination), 1 = double elimination, 2 = single-day league, 3 = swiss system, 4 = multilevel knockout (placement tournament), 5 = league (round robin), 6 = ladder, 7 = point series, 8 = group stage + knockout, 9 = swiss system + knockout final, 10 = league + playoff final, 11 = best-of-N knockout, 12 = time trial (best time), 13 = time trial (combined), 14 = time trial (single run), 15 = time trial (average), 16 = team match. Default for knockout tournaments: 0. Unknown values are rejected."},"competitionType":{"description":"Fixed to \"bracket\" — other competition types are not exposed yet.","type":"string","const":"bracket"},"templateKey":{"description":"Optional catalog template key (e.g. preset-padel). Omit instead of guessing.","type":"string","maxLength":120},"teamCount":{"description":"Number of teams. Required unless participants are supplied. Must match participants length if both are given. The app supports up to 250 teams (8 for single-day league mode); larger values are rejected during preparation. For real amateur tournaments keep it around 64 or below.","type":"integer","minimum":2,"maximum":250},"participants":{"description":"Participant names, ONLY when the user explicitly provided them. Stored encrypted and migrated at claim time.","maxItems":64,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80,"description":"Team or player name as given by the user."},"email":{"description":"Optional contact email, only when the user supplied one.","type":"string","maxLength":255}},"required":["name"]}},"idempotencyKey":{"type":"string","minLength":8,"maxLength":120,"description":"Unique key for this preparation request (UUID). Same key returns the same preparation instead of a duplicate."},"clientInfo":{"description":"Optional free-form identifier of the calling agent, used for funnel attribution only.","type":"string","maxLength":120}},"required":["name","mode","idempotencyKey"],"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":91,"grade":"A","scanned_at":"2026-09-20T05:05:28.537Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T05:05:28.437Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1895ms"]},"poisoning":{"score":15,"max":15,"notes":["1 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":15,"max":15,"notes":["last push 14 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://app.turniermeister.at/mcp","reachable":true,"authRequired":false,"latencyMs":1895,"serverInfo":{"name":"turniermeister","version":"1.0.0"}}],"packages":[],"repo":{"found":true,"owner":"MartyMcFlyJr","repo":"turniermeister","archived":false,"pushedAt":"2026-09-06T15:21:43Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/6760144?v=4","ownerCreatedAt":"2014-02-23T01:02:07Z"},"icon":{"url":"https://turniermeister.de/favicon-180x180.png","source":"site","width":180,"height":180},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":null,"lastPushAt":"2026-09-06T15:21:43.000Z","score":23}}}},"grade_history":[],"reviews":[]}