{"name":"sh.kicksma/kicksmash","slug":"kicksmash","title":null,"description":"Padel matches for people and agents: create, share one link, join, americano schedules, levels.","url":"https://mcp.market/server/kicksmash","rating":null,"grade":"B","score":80,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-09-19T12:05:28.000Z","license":"Apache-2.0"},"uptime":{"percent":100,"checks":5,"ok":5,"last_checked_at":"2026-09-20T19:01:26.918Z","last_ok_at":"2026-09-20T19:01:26.918Z","latency_ms":1651},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/evhg/padel-matchup","website":"https://kicksma.sh/developers","version":"1.1.0","remotes":[{"type":"streamable-http","url":"https://kicksma.sh/mcp"}],"packages":[],"tools":[{"name":"about_kicksmash","description":"What Kicksmash is and how to use it: matches, levels, groups, boards, the API and what we ask of assistants. Read this once before acting.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"book_lesson","description":"Book one lesson at a free start for an accepted student (their personal token). Draws from their open package when they have one. Confirm the time with the person first.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"handle":{"type":"string","minLength":2,"maxLength":40,"description":"The coach's handle from their page URL, e.g. 'olga' in kicksma.sh/c/olga."},"token":{"type":"string","minLength":8,"maxLength":64,"description":"The student's personal token (from request_coach or any earlier call). The coach must have accepted them."},"startsAt":{"type":"string","minLength":10,"description":"A start from coach_slots, ISO 8601."}},"required":["handle","token","startsAt"]}},{"name":"cancel_lesson","description":"Cancel a student's lesson under the coach's rules; the outcome says whether it was refunded, covered by a free pass, or counted. Say the rule to the person before cancelling late.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"lessonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"The lesson id from book_lesson."},"token":{"type":"string","minLength":8,"maxLength":64,"description":"The student's personal token."}},"required":["lessonId","token"]}},{"name":"coach_slots","description":"Free starts inside a coach's hours for the next days (default 14). Only accepted students can book them: request_coach first.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"handle":{"type":"string","minLength":2,"maxLength":40,"description":"The coach's handle from their page URL, e.g. 'olga' in kicksma.sh/c/olga."},"days":{"description":"How many days ahead, default 14.","type":"integer","minimum":1,"maximum":30}},"required":["handle"]}},{"name":"create_api_key","description":"Get a free key instantly for roomier limits and webhooks. Shown once. Not needed for reading or for a few writes a day.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80,"description":"Who or what will use the key."},"agent":{"description":"Your name as an assistant, e.g. 'claude'.","type":"string","maxLength":80},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"required":["name"]}},{"name":"create_match","description":"Create a padel match (4 players) or an americano tournament for a person. Returns the share link for the players and the organizer's private links. Give the person all links; keep personalToken and manageUrl private. Ask before creating; one request, one match.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"type":{"default":"match","description":"A match is exactly four players. A tournament is an americano with 4 to 64 players in fours.","type":"string","enum":["match","tournament"]},"startsAt":{"type":"string","minLength":10,"maxLength":40,"description":"ISO 8601 date-time. With an offset or Z it is absolute; without one it is read in tz. Example: 2026-09-11T19:00"},"tz":{"type":"string","minLength":1,"maxLength":64,"description":"IANA time zone the players live in, for example Asia/Singapore or Asia/Bangkok."},"venue":{"description":"Club or court name. Enables the venue board and the booking link.","type":"string","maxLength":80},"venueMapUrl":{"type":"string","maxLength":500,"format":"uri"},"court":{"description":"Court within the venue, e.g. \"3\".","type":"string","maxLength":40},"capacity":{"description":"Tournaments only, a multiple of 4. Matches are always 4.","type":"integer","minimum":4,"maximum":64},"format":{"description":"Tournaments only. americano: partners rotate, everyone plays everyone. mexicano: courts by standings after round 1. king: winners move up a court, losers down.","type":"string","enum":["americano","mexicano","king"]},"pointsPerMatch":{"description":"Tournaments only: fixed points per match (16, 21, 24, 32). Omit for free scoring; mexicano defaults to 24.","type":"integer","minimum":4,"maximum":99},"whenFull":{"default":"waitlist","type":"string","enum":["waitlist","closed"]},"levelMin":{"description":"Level range 0 to 7 (Playtomic-style). Omit both for any level.","anyOf":[{"type":"number","minimum":0,"maximum":7},{"type":"null"}]},"levelMax":{"anyOf":[{"type":"number","minimum":0,"maximum":7},{"type":"null"}]},"verifiedLevelsOnly":{"default":false,"description":"With a range: only levels confirmed by an organizer, a coach or a club walk in; declared levels inside the range ask to join.","type":"boolean"},"title":{"type":"string","maxLength":80},"note":{"type":"string","maxLength":500},"bookingUrl":{"description":"The club's booking page or confirmation link, shown to players.","type":"string","maxLength":500,"format":"uri"},"cost":{"description":"What each player pays, as free text: 400 THB, €8, split 4 ways.","type":"string","maxLength":40},"listOnVenueBoard":{"default":false,"description":"Show the match on the public venue board (/v/{venue-slug}). Off by default.","type":"boolean"},"organizer":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40,"description":"First name is enough."},"token":{"description":"Personal token of an existing Kicksmash player, returned by earlier calls, so the same person organizes again.","type":"string","minLength":8,"maxLength":64},"email":{"description":"Optional. Gets the organizer link and calendar invite by email.","type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"level":{"type":"number","minimum":0,"maximum":7}},"required":["name"]},"organizerPlays":{"default":true,"description":"Seat the organizer in the match (default). False when they only organize.","type":"boolean"}},"required":["startsAt","tz","organizer"]}},{"name":"find_clubs","description":"Club pages that clubs manage themselves: booking link and platform, courts, today's free courts when the club shares its calendar, founding status. Filter by city (phuket, singapore) or ask for one club by name.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"city":{"description":"phuket or singapore","type":"string","maxLength":40},"name":{"description":"One club by name; the slug is derived","type":"string","maxLength":80}}}},{"name":"find_coaches","description":"Padel coaches who listed their page: clubs, lesson length, languages, the rules students book under (cancellation cutoff, free late passes, notice). Filter by city. Prices are the coach's to tell; nothing is paid through Kicksmash.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"city":{"description":"phuket or singapore; omit for every listed coach","type":"string","maxLength":40}}}},{"name":"find_matches","description":"Open, organizer-listed matches at a venue (its public board), with spots left and level ranges. Give the venue name; the slug is derived.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"venue":{"type":"string","minLength":2,"maxLength":80,"description":"Venue name or its slug, e.g. 'Padel Indoor BCN' or 'padel-indoor-bcn'."}},"required":["venue"]}},{"name":"find_series","description":"Tournament series: same weekday and time every week, fortnight or month, with the next edition to sign up for and the past podiums. Filter by city, or pass a slug for one series. Players sign up on the edition's match page.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"city":{"description":"phuket or singapore; omit for every active series","type":"string","maxLength":40},"slug":{"description":"One series by slug: its next edition and past podiums","type":"string","maxLength":60}}}},{"name":"generate_schedule","description":"Rounds of rotating-partner doubles for 4 to 64 players. Exact when the field is in fours (every pair partners once in players−1 rounds), fair sit-outs otherwise. Nothing is stored.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"players":{"description":"Number of players; ignored when names are given.","type":"integer","minimum":4,"maximum":64},"names":{"minItems":4,"maxItems":64,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"courts":{"description":"Defaults to floor(players / 4).","type":"integer","minimum":1,"maximum":16},"rounds":{"description":"Defaults to players − 1 when the field is in fours (every pair partners once), else players.","type":"integer","minimum":1,"maximum":40},"format":{"default":"americano","type":"string","enum":["americano"]},"seed":{"description":"Same seed, same schedule.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}}}},{"name":"get_group","description":"A crew that plays together: members with levels, weekly slot, upcoming matches, calendar feed.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"code":{"type":"string","minLength":4,"maxLength":6,"description":"The code from the link."}},"required":["code"]}},{"name":"get_match","description":"A match or tournament by its 4-character code: players with levels, spots left, venue, time, level range, result. Public data only.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"code":{"type":"string","minLength":4,"maxLength":6,"description":"The code from the link."}},"required":["code"]}},{"name":"join_match","description":"Put a person into a match by first name (or by their personal token from an earlier call). Handles waitlists and level ranges; when the level is outside the range, the organizer is asked to approve.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"code":{"type":"string","minLength":4,"maxLength":4,"description":"The 4-character match code from the link, e.g. kicksma.sh/AB12 → AB12."},"name":{"description":"Required unless token is given.","type":"string","minLength":1,"maxLength":40},"token":{"description":"Personal token of an existing player.","type":"string","minLength":8,"maxLength":64},"email":{"description":"Optional. Sends a calendar invite that updates itself.","type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"level":{"description":"Needed once when the match has a level range and the player has no level yet.","type":"number","minimum":0,"maximum":7}},"required":["code"]}},{"name":"request_coach","description":"Ask a coach to accept a person as their student, by first name or personal token. The coach answers with one tap. Keep the returned personalToken private to the student; book_lesson needs it. Ask the person before calling.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"handle":{"type":"string","minLength":2,"maxLength":40,"description":"The coach's handle from their page URL, e.g. 'olga' in kicksma.sh/c/olga."},"name":{"description":"The student's first name. Required unless token is given.","type":"string","minLength":1,"maxLength":40},"token":{"description":"Personal token of an existing Kicksmash player.","type":"string","minLength":8,"maxLength":64}},"required":["handle"]}}],"scan":{"score":80,"grade":"B","scanned_at":"2026-09-20T00:27:24.242Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T00:27:24.223Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1417ms"]},"poisoning":{"score":15,"max":15,"notes":["15 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 4 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":7,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://kicksma.sh/mcp","reachable":true,"authRequired":false,"latencyMs":1417,"serverInfo":{"name":"kicksmash","version":"1.0.0"}}],"packages":[],"repo":{"found":true,"owner":"evhg","repo":"padel-matchup","archived":false,"pushedAt":"2026-09-19T12:05:28Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/82141378?v=4","ownerCreatedAt":"2021-04-08T07:24:05Z","license":"Apache-2.0"},"icon":{"url":"https://kicksma.sh/icon.svg?6d7ec2c51ad070a5","source":"site"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"Apache-2.0","lastPushAt":"2026-09-19T12:05:28.000Z","score":23}}}},"grade_history":[],"reviews":[]}