Categories › Knowledge & Everyday › Games, entertainment & hobbies
Run small tennis & pickleball tournaments from your AI assistant: brackets, schedules, results.
Remote server: your requests and data go to pofa.app. Claude Code: claude mcp add --transport http pofa-tournaments https://pofa.app/mcp/ · Claude app: Settings → Connectors → Add custom connector.
The tools this server listed when we connected to it, in its own words.
search_tournaments — Find POFA tournaments (tennis & pickleball) by keyword, city, or start date. Returns each event's id, name and one-line summary. Start here get_tournament — Get one tournament's full public details: format, dates, location, entry fee, description and its public share_url. Use after search_tournamget_schedule — Get a tournament's published schedule as stored: dates, court count, start time and bracket_rounds. When the schedule was created through thget_bracket — Read a tournament's full bracket exactly as stored: every round and match with match_id, both players, winner, score, structured score_sets,get_roster — Read a tournament's roster as structured data: every player's name and stable player_id, in seed order. Pass the tournament's manage_code asregister_player — Register one player into a tournament (player-side sign-up; no manage code needed). Duplicate-checked by email within the same division: thecreate_tournament — Create a NEW tournament as an organizer — step 1 of the organizer flow: create_tournament → import_players → generate_bracket → schedule_matimport_players — Bulk-add players to a tournament's roster (organizer step 2, right after create_tournament; needs that tournament's manage_code). Each playegenerate_bracket — Generate the bracket for a tournament (organizer step 3, after the roster is in; needs manage_code). SINGLE-ELIMINATION ONLY in this versionschedule_matches — Assign the bracket's matches to courts and start times (organizer step 4, after generate_bracket; needs manage_code). Scheduling is dependenreport_result — Report a match result (organizer step 5, on match day; needs manage_code). Recording a score advances the winner into the next round automatscreen_show — Put ONE match on the venue call screen FOR ITS COURT — every court has its own screen with its own link, and the screen_url this tool returnscreen_clear — Take a match off the venue call screen (needs manage_code). Pass a court to clear only that court's screen — the other courts keep showing tget_screen — Read what a tournament's venue call screens are currently showing: every court's on-screen match (screens), plus court_screens — one screen get_activity_log — Read a tournament's activity log — the same audit trail the organizer console shows: event creation, roster changes, draw and schedule commidelete_tournament — Delete a tournament as its organizer (needs manage_code). PREVIEW FIRST: call without confirm_preview_id to get a preview_id and a summary oget_event_context — Get a whole tournament in ONE call: event facts, roster, stored bracket (plus any unconfirmed bracket preview), schedule, call screens, receopen_tournament_console — Open the visual tournament console (MCP Apps): returns the full event snapshot for the console UI to render — bracket, roster, schedule, calNot tested by KitScout yet. When our harness runs it, pros, cons and the tasks we tried appear here, with the date and evidence.