MCP App Store
by KeenEthics
Basketball Assistant icon

Basketball Assistant

By Kjetil Røed

Get New App Alerts

Overview

Basketball Assistant is a coaching assistant for volunteer basketball coaches — the parents, teachers and club volunteers who run youth practices every week. Ask in plain English and walk into practice with a plan: - A practice plan in seconds — tell it the focus, how long you have, and your team's age and level; it builds a timed session from warm-up to cool-down out of library drills, ready to edit, save and share - 1,000+ coach-reviewed drills and plays, each one complete: step-by-step instructions, coaching points, common errors to watch for, and variations - Plays with court diagrams, play series that teach a whole offense, and drill combos that build one skill step by step - Your team in one place: roster, season calendar and attendance — players and parents can say yes or no to each practice - Training plans for individual players, a court diagram creator, and on-court competitions and tournaments with a scoring page for the phone at the court Answers you can coach from — why a drill works, what to say when it breaks down, how to make it easier for your youngest players. Connect once with your Basketball Assistant account — a new coach creates it in the same step. Built for the love of basketball.

Tools

add_combo_to_practice_plan

ChatGPT
Add a drill combo to a practice plan. The combo expands into individual LINKED drill segments with optional transitions. WHY USE THIS INSTEAD OF ADDING DRILLS ONE-BY-ONE: - Drills are automatically linked to library content (linked_drill_id populated) - Proper sequencing preserved from curated combo design - Optional water breaks between drills (include_transitions: true) - Each segment tracks its combo origin for reporting - Pedagogically sound progression built by coaching experts WORKFLOW: 1. search_drill_combos to find appropriate progression 2. get_drill_combo_details to preview the drill sequence 3. add_combo_to_practice_plan with combo_id RESULT: All drills from combo are added as linked segments. Response shows drills_added count.

add_organization_member

ChatGPT
Add a member to an organization (requires authentication and owner/admin role)

add_player

ChatGPT
Add a player to a team (the player needs no account). Perfect for coaches managing rosters without requiring players to register. Players can optionally register later to link their account. Stores the player's name (one string, e.g. "Ola Nordmann" or a single name) and an optional jersey number.

add_practice_segment

ChatGPT
Add a segment to an existing practice plan. Drill and play segments MUST link to library content OR set is_custom: true. SMART NAME LOOKUP: When coach mentions a drill by name (e.g., "Mikan drill", "3-man weave"): 1. Search library first: search_all with the drill name as query 2. If coach uses non-English language, translate drill name to English for search (library content is in English) 3. Use the returned drill_id/play_id as linked_drill_id or linked_play_id 4. If no match found, set is_custom: true with custom_reason MULTILINGUAL SUPPORT: Library content is in English. When coaches write in other languages (e.g., "legg til Mikan-drill"), translate the drill/play name to English before searching. AUTO-SUGGESTIONS: If you provide segment_name without linked_*_id or is_custom, this tool returns high-confidence matches from the library. Use those IDs to add linked content. COMBO TIP: For skill-building sequences, consider add_combo_to_practice_plan instead - it expands a curated combo into properly linked drill segments with transitions. Returns: Updated plan with new segment. If linkage missing, returns suggestions with drill_id/play_id.

add_team_member

ChatGPT
Add a member to a team (requires authentication and coach/admin/owner role)

cancel_event

ChatGPT
Cancel a scheduled event, with an optional reason everyone sees ("gym closed"). A cancelled event leaves every player's and parent's view. rest_of_series: true also cancels the later, still-scheduled events created together with it (create_schedule_events).

clone_practice_plan

ChatGPT
Clone an existing practice plan (your own or a public one). Creates a draft copy that you can modify. Completed plans clone too: the copy is a new, active plan.

complete_event

ChatGPT
Mark an event as completed. A completed practice's linked practice plan then counts as completed and leaves the default plan list.

create_competition_session

ChatGPT
Create a TEAM competition session (coach only) from a catalog game (find the uid with find_competitions). Unlike the public pages, a session stores results on the server: you get an on-court runner link with the entrants preloaded — it works offline after loading and syncs results back when online. Final sessions feed get_team_leaderboard. Entrants can be roster players ({player_id} — names come from the roster) and/or ad-hoc names ({name} for guests/siblings). Use player_id for roster players: only their runs reach the player's competition history (get_player_competition_history).

create_drill_combo

ChatGPT
Create a new drill combo (admin only). Creates in draft status; publish separately.

create_event

ChatGPT
Put one event on the calendar: a practice, game, tournament, meeting, social, camp or duty. A team event (team_id) or a club-level event (organization_id, no team) that every team in the club sees. For a whole season of practices, use create_schedule_events instead. Away games ask players and parents how they get there (rsvp_mode transport). A date inside a blackout is allowed but flagged.

create_organization

ChatGPT
Create a new organization (requires authentication)

create_organization_invite

ChatGPT
Create a shareable invite link so someone can join the organization with a given role, even if they don't have an account yet. Owners/admins only. Supports an email restriction, a usage limit, and an expiry. Returns a /join/<code> share URL.

create_organization_team

ChatGPT
Create a team inside an organization — for coaches managing multiple teams under one org. Requires authentication and a coach/admin/owner role. For a single standalone team, use create_team instead.

create_practice_plan

ChatGPT
Create a new practice plan with optional segments. Returns the plan with computed duration and focus breakdowns. LIBRARY-FIRST: For best results, build plans using library content: - Use search_all to find drills before adding drill segments - Consider search_drill_combos for skill progressions (better than individual drills) - Set linked_drill_id/linked_play_id on segments to connect to library content - Use is_custom: true only for team-specific activities not in the library WORKFLOW: 1. generate_practice_plan for AI-assisted draft (auto-searches library) 2. Or manually: search_all → add segments with linked IDs 3. Use add_combo_to_practice_plan for curated skill progressions

create_schedule_events

ChatGPT
Put a whole season on the calendar in one call: a weekly pattern (e.g. Tuesdays and Thursdays 18:00–19:30) between two dates. Skips blackout periods (set_blackouts: holidays, a closed gym), the skip_dates given, and dates already scheduled at that time, and reports what it skipped. Events created together share a series_id, so cancel_event can cancel the rest of the series. Omit weekly to use the team's stored training days (update_team_preferences). At most 200 events per call.

create_team

ChatGPT
Create a standalone basketball team (no organization required) — the default for volunteer coaches managing a single team. For organization-based teams (managing several teams together), use create_organization_team instead.

create_team_invite

ChatGPT
Generate a shareable invite code for joining a team. Coaches can create invites with various types: player_registration (new player signup), player_link (link existing user to roster), parent_link (link parent to child), assistant_coach, or team_manager. Supports email restrictions, usage limits, and expiration.

create_tournament

ChatGPT
Build a multi-competition tournament — the "Game Center" for a night in the gym or a 5-competition challenge with friends. Pick competitions as rounds (uids from find_competitions), add people once, and get back a Game Center link. Returns TWO links: a SCORER link for the helpers/adults running it (they tap results), and a read-only PLAYERS link (live standings, rules, and prizes — no scoring). Both open the full-screen Game Center, work offline, and sync. The leaderboard sums placement points across rounds (1st 10 · 2nd 7 · 3rd 5 · 4th 3 · everyone else 1). Add rules and overall prizes so players can see what they're playing for, and a poster (logo, backdrop/split image, sponsor logos) to print a QR poster for each court. No team required (friends at the park). Pass team_id only to add roster players by id.

create_training_plan

ChatGPT
Create a player's individual training plan (coach only). Each player has exactly ONE current plan — if one exists, use update_training_plan instead (it keeps a revision history). Items can link library drills (kind: "drill") or be free-form (kind: "custom"); max 8 items, 6 fits on one printed page. Tip: generate_training_plan drafts one automatically from the team's training pool.

decide_tournament_registration

ChatGPT
Approve or reject a sign-up. Approve adds the person as an entrant (carrying their division) and emails them a confirmation. Reject declines them (no email). Creator only.

delete_account

ChatGPT
Permanently delete your account and personal data (GDPR erasure). Irreversible. Requires the confirmation phrase "delete my account" — always confirm with the user before calling. Sole owners of organizations with other members must transfer ownership first.

delete_competition_session

ChatGPT
Delete a competition session and its results (coach only). The team leaderboard recomputes without it. This cannot be undone.

delete_diagram

ChatGPT
Delete one of your saved diagrams. This cannot be undone (share links to it stop working).

delete_practice_plan

ChatGPT
Archive a practice plan (soft delete). The plan is hidden but not permanently removed.

delete_team

ChatGPT
Delete a team (requires authentication and owner/admin role)

delete_tournament

ChatGPT
Delete a tournament and all its rounds, entrants, and results (creator only). This cannot be undone.

delete_training_plan

ChatGPT
Delete a player’s individual training plan and its revision history (coach only). This cannot be undone.

export_my_data

ChatGPT
Export the personal data Basketball Assistant stores about your account as structured JSON (profile, organizations, teams, players, attendance, practice plans, ratings). GDPR data access. Roster details coaches keep privately are not included in the chat; the result says how to get a complete copy.

find_competitions

ChatGPT
Find on-court basketball competitions (Layup 60s, Around the World, Killer, team relays, …) and link to their public runner pages. Each link opens an interactive page anyone can use on a phone at the court — timers, hit/miss scoring, knockout wheels — with NO account needed; results stay on the device. Works for teams at practice, a player on the driveway, or friends at the park. Filter by where it's played, group size, and the group's age band. Share the returned URLs directly.

generate_practice_plan

ChatGPT
AI-assisted practice plan generation. Automatically searches the drill library matching focus areas and the group's age and skill level, builds a structured draft plan with linked library drills. Describe the group with age_group + skill_level, or pass team_id to use the context of one of the coach's teams instead. HOW IT WORKS: 1. Searches the library once per focus area (matching the group's skill level/age) and shares the drill slots between the areas 2. Builds draft with warmup, main drills grouped by focus area (linked to library), a water break about every 20 minutes, a scrimmage finisher (sessions 45 min and up), and a short cooldown 3. Returns draft segments with linked_drill_id populated from search results — the refs carry the save-ready practice_segments and each drill's id + slug 4. Coach reviews draft, then save with create_practice_plan (pass the refs' practice_segments) AFTER GENERATION: - Review the drills in the refs to see what was found - Use get_drill_details on any drill for full instructions/coaching points - Consider replacing individual drills with drill combos for better progression COMBO ALTERNATIVE: For focused skill sessions, search_drill_combos + add_combo_to_practice_plan may provide better curated progressions than AI generation.

generate_training_plan

ChatGPT
AI-draft an individual training plan for a player (coach only). Picks drills from the team's training pool first (get_training_pool), pads from the drill library matching focus areas + team age/skill (another level only when nothing at the team's level fits an area), and sizes the session to the target duration (~6 exercises max — one printed page). Every focus area gets at least one exercise; when no drill fits an area, the draft holds a placeholder exercise for it instead of failing. The setting shapes the draft: with hoop false, drills that need a hoop are left out; library drills that need a partner are left out unless training_partner is true; drills that use the equipment named (e.g. cones) come first. Ask the coach these questions only when they matter to them. The draft is NOT saved. Review/tweak, then save with create_training_plan (or update_training_plan if the player already has one — the old version stays in the change register). The refs carry the save-ready items with their drill ids. Up to 30 AI drafts a month; manual editing is always unlimited.

get_attendance_for_event

ChatGPT
View attendance records for a specific practice event with summary stats. Renders an interactive Attendance Tracker (tap each player to set present / late / absent / excused) over the full team roster. Each player also shows their pre-practice RSVP (rsvp: yes / no / null) so the coach can reconcile "said yes, wasn't here".

get_child_attendance

ChatGPT
View your child's attendance history (requires can_view_attendance permission)

get_child_schedule

ChatGPT
View your child's upcoming practices, games, meetings and the club's events (next 30 days by default; pass days_ahead: 365 for the year or whole_season: true for everything scheduled), with the blackout periods. Renders the Parent Home (child switcher + upcoming events). Each event carries the child's RSVP (my_rsvp: yes / no / null) and, for away games, how they get there (my_transport) — answer for them with set_event_rsvp (player_id = the child), or by tapping Yes / No and the transport chips on the card.

get_child_teams

ChatGPT
View your children's teams and basic info (parent view)

get_child_training_plan

ChatGPT
Get your child’s individual training plan (parent view, read-only). Omit player_id if you have one linked child; otherwise the tool lists your children so you can pick.

get_club_calendar

ChatGPT
The whole club in one calendar: every team's practices, games and other events plus the club-level ones (parent meetings, socials) and the blackout periods, for anyone in the organization (next 30 days by default; days_ahead up to 365, whole_season, from_date for a later window; team_ids and types to filter). Renders an interactive Club Calendar with a colour per team, team and type filters, and — for the owner and admins — a form for club-level events. Omit organization_id when you belong to one club.

get_competition_session

ChatGPT
Get a competition session with entrants, results, and live standings. While the session is open, it also returns the session's on-court runner link — the same link on every call until it nears expiry, when a new one is minted. Use it to reopen the runner on any phone.

get_component_specs

ChatGPT
Get CSS implementation specs for specific UI components. Only fetch components needed for the current task. Returns base styles, variants, states, sizes, and HTML templates.

get_design_tokens

ChatGPT
Get design tokens (fonts, colors, spacing, shadows, animations, accessibility) for a style. Call this at conversation start before generating any UI. Pass the user's style preference (shown in their profile); defaults to 'pro' (Pro Baller).

get_diagram

ChatGPT
Open a saved diagram (yours, or one shared with your organization) in the Diagram Creator with its cached SVG.

get_drill_combo_details

ChatGPT
Get full details of a drill combo including all drills in sequence, coaching notes, transitions, and rating summary. Look up by combo_slug (PREFERRED) or combo_id. A "(slug: …)" combo reference in the conversation goes straight into combo_slug — no search round trip. Draft combos are visible only to their creator. USE THIS BEFORE ADDING COMBO TO PLAN: - Preview the full drill sequence - Review coaching notes and transition tips - Check expected outcomes and difficulty progression - See rating summary from other coaches RESPONSE INCLUDES: drills (ordered), coaching_notes, transition_tips, expected_outcomes, rating_summary WORKFLOW: 1. search_drill_combos finds matching combos 2. get_drill_combo_details to inspect before adding 3. add_combo_to_practice_plan to insert into practice

get_drill_details

ChatGPT
Get full drill details including instructions, coaching points, common errors, and variations. Look up by drill_slug (PREFERRED) or drill_id. WHEN TO USE: - The message asks to show/open a drill and gives a slug, e.g. 'the drill details for "Dribble Tag" (slug: dribble-tag)' → call THIS tool directly with drill_slug — do NOT call search_all first (a SEARCH request like 'find similar drills' still goes to search_all) - After search_all → call with the slug from its Refs block as drill_slug - Before presenting drill info to coach → get full coaching content - Building practice plan artifacts → need complete instructions RESPONSE INCLUDES: Full instructions, coaching emphasis, common errors, variations, duration, equipment, space requirements. MCP UI: Response includes metadata.mcp_ui.template_uri for drill card rendering, in the user's Pro Baller or Street Baller style. WORKFLOW WITH PRACTICE PLANS: search_all finds drill → get_drill_details (by slug) for coaching content → add_practice_segment with linked_drill_id

get_drill_ratings

ChatGPT
Get aggregated ratings for a drill. Returns average rating, breakdown by skill level and age group, and common feedback tags. Individual ratings are not exposed for privacy.

get_my_attendance

ChatGPT
View your own attendance history with stats

get_my_schedule

ChatGPT
View your upcoming practices, games, meetings and club events across all your teams (player view; next 30 days by default; pass days_ahead: 365 for the year or whole_season: true for everything scheduled), with the blackout periods. Renders an interactive Player Home (upcoming events + your attendance). Each event carries your RSVP (my_rsvp: yes / no / null) and, for away games, how you get there (my_transport) — answer with set_event_rsvp, or by tapping Yes / No and the transport chips on the card.

get_my_team_info

ChatGPT
View team info and roster as a player: team details plus names, jerseys and positions

get_my_teams

ChatGPT
Get all teams for the authenticated user. Shows both standalone teams and organization teams. Renders an interactive Team Hub (switch active team, create/edit teams, and jump to roster / schedule / plans / invites).

get_my_training_plan

ChatGPT
Get YOUR individual training plan (player view). Works when your account is linked to a player on a team roster. Read-only — your coach maintains the plan.

get_organization

ChatGPT
Get organization details (requires authentication and membership)

get_organization_attendance_report

ChatGPT
Aggregated attendance report across all teams in the organization

get_organization_dashboard

ChatGPT
Cross-team overview for organization admins: teams, members, plans, upcoming events. Renders an interactive Org Dashboard (KPIs, team grid, create team, and links to members / attendance / plans).

get_organization_members

ChatGPT
Get all members of an organization (requires authentication and membership)

get_organization_practice_plans

ChatGPT
View all practice plans across the organization

get_organization_preferences

ChatGPT
Get organization coaching preferences including philosophy, preferred offensive/defensive systems, and play style tags

get_organization_teams

ChatGPT
Get all teams in an organization (requires authentication and membership)

get_organization_teams_overview

ChatGPT
Get overview of all teams in organization with alignment status. Shows which teams have custom preferences vs using org defaults, and which teams are fully configured.

get_play_details

ChatGPT
Get full details of a basketball play including diagrams, execution steps, reads/options, and coaching points. Look up by play_slug (PREFERRED) or play_id. WHEN TO USE: - The message asks to show/open a play and gives a slug, e.g. '(slug: horns-flare)' → call THIS tool directly with play_slug — do NOT call search_all first (a SEARCH request like 'find similar plays' still goes to search_all) - After search_all returns a play → call with the slug from its Refs block as play_slug - Coach mentions a play by name only (no slug) → search_all, then get_play_details - Creating play diagram artifacts → fetch diagram frames RESPONSE INCLUDES: Play diagrams with player movements, step-by-step execution, reads and decision points, common errors, formation and spacing. WORKFLOW WITH PRACTICE PLANS: 1. search_all (content_types: ['play']) to find plays 2. get_play_details (by slug) for full execution info 3. add_practice_segment with linked_play_id

get_play_series_details

ChatGPT
Get full details of a play series by series_slug (PREFERRED) or series_id. A series groups related plays together (e.g., "Triangle Offense Variations"). A "(slug: …)" series reference in the conversation goes straight into series_slug — no search needed.

get_player_attendance_history

ChatGPT
View a specific player's attendance history with aggregate stats

get_player_competition_history

ChatGPT
A player's competition results over time: every saved run from team competition sessions and tournament rounds, grouped by competition (and by the time limit or other settings it was played with), newest first. Each run shows makes, misses, attempts, make %, the time limit, the time used, seconds per attempt and the result; finished events add the player's place ("2nd of 8"). Use it to track progression on the same challenge. Coaches pass player_id (from get_roster, or a leaderboard row). Players see their own results and parents their child's: omit player_id (a parent with several children gets a list to pick from). For every run of one competition, pass competition_uid with a higher limit.

get_practice_plan

ChatGPT
Get a practice plan by ID with computed breakdowns (focus areas, intensity, duration). Renders an interactive viewer with segment reorder/remove and share / make public / clone actions.

get_roster

ChatGPT
Get team roster with all players and coaches: names, jerseys and positions, and which players have accounts vs. coach-managed. Renders an interactive Roster Manager (add / edit / remove players). Team staff can open the full roster page on the website with open_roster_page.

get_team_attendance_report

ChatGPT
Get aggregated attendance report for all players on a team over a period. Shows attendance rates per player. Renders an interactive Attendance Report (rate bars, date-range, per-player drill-down).

get_team_leaderboard

ChatGPT
Season competition leaderboard for a team, computed from FINISHED sessions (status final). Points per competition: 1st 10 · 2nd 7 · 3rd 5 · 4th 3 · everyone else 1 (showing up counts). Roster players aggregate across sessions even if a coach renames an ad-hoc entry. Optionally limit to a date range. For one player's runs over time (makes, misses, time used), call get_player_competition_history with their player_id.

get_team_members

ChatGPT
Get all members of a team (requires authentication and organization membership)

get_team_preferences

ChatGPT
Get team preferences including skill focus areas, training schedule, gym constraints, and available equipment. Also includes organization defaults for comparison.

get_tournament

ChatGPT
Get a tournament: rounds, entrants, per-round standings, and the overall leaderboard. Mints a fresh Game Center link while it is open.

get_training_plan

ChatGPT
Get a player’s current individual training plan with exercises, focus areas, and each exercise’s focus (coach/staff view). Renders an interactive editor (add from pool/library/custom, reorder, per-exercise focus, history with restore, share/print). Returns NOT_FOUND if the player has no plan yet — suggest create_training_plan or generate_training_plan.

get_training_plan_history

ChatGPT
Change register for a player's training plan: the last 5 revisions with who changed it, when, an optional change summary, and the full snapshot of each version.

get_training_pool

ChatGPT
Get the team’s individual-training drill pool — drills the coach has marked as good for home/individual training. generate_training_plan picks from this pool first. Returns drill names, categories, difficulty, duration, and equipment.

get_upcoming_schedule

ChatGPT
View a team's upcoming events — practices, games, meetings and the rest, plus the club-level events of its organization and the blackout periods in the window (next 30 days by default; pass days_ahead: 365 for the year or whole_season: true for everything scheduled; types to filter, e.g. ["game"]). Renders an interactive Season Calendar (create / edit / cancel / complete events, repeat weekly, link plans, take attendance). Each event carries the RSVP headcount from players and parents, e.g. "4 of 11 attending · 2 not coming · 5 no reply", and for away games the rides: "2 cars, 6 seats · 1 still needs a ride".

get_user_organizations

ChatGPT
Get all organizations you are a member of (requires authentication)

get_user_profile

ChatGPT
Get your user profile (requires authentication). Renders an interactive Profile & Settings (brand switcher Pro/Street, profile edit, stats, quick start).

get_user_statistics

ChatGPT
Get your usage statistics, including practice plans used this month and your current monthly limits (requires authentication)

get_welcome_message

ChatGPT
Get personalized welcome message with getting started instructions. Shows setup status, next steps, and feature overview tailored to user role and configuration state. Perfect for first-time users and as a quick reference guide.

list_blackouts

ChatGPT
List the blackout periods a team sees (its own and its club's) or a club's, from today on (or from from_date).

list_competition_sessions

ChatGPT
List a team’s competition sessions (newest first), optionally by status. Use get_competition_session for standings and the runner link.

list_drill_combos

ChatGPT
List drill combos with optional filters. Returns summary info without full drill details.

list_my_diagrams

ChatGPT
Your saved diagrams (newest first) as a visual gallery. Set include_org_shared to also see diagrams shared across your organization.

list_organization_invites

ChatGPT
List an organization's invite links (owners/admins only). Set include_inactive to also show revoked/expired ones.

list_practice_plans

ChatGPT
List your practice plans with optional filters. By default only active plans are listed: upcoming, undated or not run yet. Completed plans (already run) stay searchable and clonable — pass status "completed" or "all" to list them. Each plan carries its status: completed_on for completed plans, next_practice_on for dated active ones. Returns a paginated summary (no full segments). Renders an interactive list with per-plan View / Mark completed / Share / Make public / Clone / Delete actions and a Show completed plans button.

list_team_invites

ChatGPT
View all active invites for a team. Only coaches can access this. Returns invite codes, types, usage stats, and expiration info. Optionally include expired invites. Renders an interactive Invites Manager (create / copy / revoke).

list_tournament_registrations

ChatGPT
List the public sign-ups for a tournament (the Participate form on the players link) so you can approve them. Shows status (pending/approved/waitlisted/rejected), name, and division. Creator only.

list_tournaments

ChatGPT
List your tournaments (or a team's, with team_id), newest first. Use get_tournament for standings and the Game Center link.

list_training_plans

ChatGPT
Team overview of individual training plans: every active player with whether they have a plan, its focus areas, exercise count, and last update. Renders an interactive roster grid with per-player Open / Generate actions. Use this to spot players without a plan.

mark_attendance

ChatGPT
Record attendance for multiple players at a practice event. Upserts — safe to call multiple times.

open_roster_page

ChatGPT
Get the link to the team's full roster page on the Basketball Assistant website (team staff only). The page shows the full roster with attendance rates and each player's account, parent and training-plan status, and is where coaches manage roster details beyond name, jersey number and position. Use it when a coach asks for the full roster page. The page asks the coach to sign in with their Basketball Assistant account, and only the team's coaching staff can open it.

rate_drill

ChatGPT
Rate a drill after using it. One rating per coach per drill: rating a drill you have already rated replaces your previous rating rather than adding a second one. Provide team_id to capture contextual data (age group, skill level) for "highly rated for U12" insights. Ratings help other coaches find the best drills for their team.

rate_drill_combo

ChatGPT
Rate a drill combo after using it. One rating per coach per combo: rating a combo you have already rated replaces your previous rating rather than adding a second one. Provide team_id to capture contextual data for insights like "highly rated for U12 teams".

rate_practice_plan

ChatGPT
Rate a practice plan after running it (1-5 stars) with optional coach reflection notes.

redeem_organization_invite

ChatGPT
Join an organization using an invite code. Binds the membership to the signed-in user and grants the invite's role. Idempotent — re-redeeming does nothing if already a member.

redeem_team_invite

ChatGPT
Join a team using an invite code. Validates the invite and creates appropriate team membership based on invite type. For player_registration, creates both team_member and player records. For player_link, links existing user to existing player. For parent_link, creates parent-child relationship.

remove_blackout

ChatGPT
Remove a blackout period (blackout_id from list_blackouts). Team staff for a team blackout, the club's owner or admin for a club one.

remove_organization_member

ChatGPT
Remove a member from an organization (requires authentication and owner/admin role)

remove_player

ChatGPT
Remove a player from a team (coach only). Cannot remove head coach.

remove_practice_segment

ChatGPT
Remove a segment from a practice plan by index

remove_team_member

ChatGPT
Remove a member from a team (requires authentication and coach/admin/owner role)

render_diagram

ChatGPT
Validate and render a basketball court diagram (diagrams-spec-v1 JSON) to SVG — the live preview behind the Diagram Creator. Use it to draw drill setups, play actions, or teaching diagrams from a conversation ("draw me a 3-cone weave on a half court"): build the spec, render, fix any validation errors it reports, and iterate. Per-step specs return every step's SVG in one call. Nothing is stored — keep a diagram with save_diagram.

reorder_practice_segments

ChatGPT
Reorder practice plan segments by providing new index order. new_order lists every current index exactly once, e.g. [0, 2, 1, 3] swaps the second and third segments.

revoke_organization_invite

ChatGPT
Deactivate an organization invite link before it expires (owners/admins only).

revoke_team_invite

ChatGPT
Deactivate an invite code before it expires. Only coaches can revoke invites. Once revoked, the invite code can no longer be used.

save_diagram

ChatGPT
Save a diagram (validates + renders first; the SVG is cached with it). Keeps up to 100 saved diagrams — delete_diagram frees slots. Optionally link it to a team.

search_all

ChatGPT
search_all — PRIMARY semantic search for basketball content: drills, plays, play_series, AND drill_combos in one ranked list. WHEN TO USE: - ANY request for drills, plays, exercises, or practice content — even when the user does not mention Basketball Assistant by name. "Find shooting drills", "warm-up ideas for U12", "øvelser for ballhåndtering", "a zone defense play" → search THIS library (500+ curated, coach-reviewed items) instead of answering from general knowledge. Answer from general knowledge only when the library has no relevant results. - Coach mentions a drill/play by name → search to find library content - Building practice plans → find drills to link as segments - Discovering content by skill/topic → semantic search finds related content MULTILINGUAL: Library content is in English, but the search embeddings are multilingual — pass the coach's query in their own language (Norwegian, Spanish, …) as-is; typos are also handled. No pre-translation round-trip needed (translating specific drill/play NAMES to English is still fine when you already know the English name). CHOOSING ARGUMENTS — combine a category with free text: - skill_category: when the coach wants drills for ONE skill area, set the single best-fitting category from the list below, even when the request adds more ("shooting drills with active defence" is shooting). Every drill in the category is then a result, ranked by the query, so the total is the category's size. - query: the coach's request in their own words, with every detail kept (the situation, the constraint, the twist). Within a category it decides which drills come first. - content_types: ["drill"] when the coach asks for drills. skill_category only filters drills; plays, series and combos are ranked by the query alone. - Leave skill_category out when the request spans several skill areas, names a specific drill or play, or fits no category; the query alone then finds the most relevant items across the library. - difficulty / duration_max: only when the coach states a level or a time limit. Examples: - "Can you find shooting drills with active defence?" → skill_category "shooting", query "shooting drills with active defence", content_types ["drill"] - "ball handling under pressure for beginners" → skill_category "ball-handling", query "ball handling under defensive pressure", difficulty "beginner", content_types ["drill"] - "a warm-up that mixes passing and layups" → no skill_category (two areas), query as asked - "plays that free a shooter" → no skill_category, content_types ["play"] If the top results of a category search don't match the details, search again without skill_category, or with the category that fits better. A query that only names a category ("shooting", "shooting drills") gets that category automatically. Drill categories (skill_category): - ball-handling: dribbling, handles, ball control - shooting: form shooting, jump shots, catch-and-shoot, threes, free throws - finishing: layups, finishes at the rim, contact finishing - passing: passing and catching - footwork: pivots, jump stops, triple threat, post footwork - rebounding: boxing out, offensive and defensive rebounds - defense-individual: stance, on-ball defense, closeouts, 1-on-1 - team-defense: help defense, rotations, shell, zones - team-offense: spacing, cutting, team actions - transition: fast breaks, transition offense and defense - conditioning: fitness, endurance, sprints - agility: quickness, change of direction, speed RESULTS AND PAGING: The result text starts with "Showing 1–20 of <total> results" and the count per type; total counts every result, not just this page. Tell the coach how many there are and lead with the best matches. For more, call search_all again with the same arguments and the offset the text gives. When the list is long, help the coach narrow it (a category, difficulty, duration_max, more specific words) rather than paging through everything. RESULT NAVIGATION (opening a result): The result text ends with a Refs JSON block: {"results":[{"id","slug","type"}]}. To open an item call the deta…

search_drill_combos

ChatGPT
Search for drill combos (curated skill progressions) using natural language. WHEN TO PREFER COMBOS OVER INDIVIDUAL DRILLS: - Coach wants to "work on" or "improve" a skill → combos provide structured progression - Building skill-focused practice segments → combos are pedagogically designed - Need warm-up or cooldown sequences → combos include proper flow EXAMPLES: "shooting progression for beginners", "ball handling warmup", "defensive footwork sequence" MULTILINGUAL: Library content is in English. Translate skill/drill terms to English before searching. WORKFLOW: 1. search_drill_combos to find matching progressions 2. get_drill_combo_details for full drill sequence and coaching notes 3. add_combo_to_practice_plan to insert (auto-expands to linked drill segments) VS INDIVIDUAL DRILLS: Combos are better for skill development and proper sequencing. Individual drills are better for specific activities or filling time gaps.

search_practice_plans

ChatGPT
Search practice plans by name, type, difficulty. Can search your own plans, public plans, or both. Completed plans are included; your own plans carry their status (completed_on or next_practice_on).

set_active_team

ChatGPT
Select a team as the working context: checks that you can access it and returns its details (name, organization) for context-aware search and practice planning. Nothing is stored on the server — keep passing this team_id on later calls.

set_blackouts

ChatGPT
Add blackout periods — dates with no practice: school holidays, a closed gym, a tournament weekend. For a team (team_id, staff) or for the whole club (organization_id, owner/admin; applies to every team). create_schedule_events skips these dates and every calendar shows them. Events already on those dates are not cancelled.

set_event_rsvp

ChatGPT
Answer "are you coming?" for a practice, game or meeting — yes or no — and, for an away game (rsvp_mode transport), how you get there: needs a ride, can drive (with free seats), own transport or public transport. Players answer for themselves (omit player_id), parents for a linked child (player_id from get_child_teams), coaches for any player on the roster. Answering again replaces the earlier reply; remember: true saves the transport answer as the player's usual one for away games. RSVPs are intent BEFORE the event and never change attendance — coaches record what actually happened afterwards with mark_attendance. The coach's calendar shows the headcount ("4 of 11 attending") and the rides ("2 cars, 6 seats · 1 still needs a ride").

set_tournament_no_show

ChatGPT
Mark an entrant as a no-show (DNS) so they're excluded from scoring and shown struck-through, or clear it (dns:false) to count them again. Creator only.

share_diagram

ChatGPT
Create a share link for a saved diagram — opens a printable page in the web-app showing the diagram and its caption. Expires after 1 week by default.

share_practice_plan

ChatGPT
Generate a shareable link for a practice plan. The link opens in the web-app with the user's design style (Pro Baller or Street Baller).

share_training_plan

ChatGPT
Create a share link for a player’s training plan (coach only). The link opens a print-friendly page in the web-app (color-coded exercise cards, 6 per page) — ideal for handing out or sending to parents. Expires after 1 week by default.

submit_product_feedback

ChatGPT
Submit product feedback, a bug report, a feature request, or an improvement idea. Sends a structured email to Basketball Assistant support; requires a signed-in user. Use when the coach wants to reach the team without leaving chat.

update_competition_session

ChatGPT
Update a competition session (coach only): title, config overrides, add/remove entrants, schedule, or status. Status flow: setup → live → final (locks results into the leaderboard; further result submissions are rejected). Cancelled keeps it out of leaderboards. While the session is in setup or live, the result also includes its on-court runner link — the same one get_competition_session returns.

update_diagram

ChatGPT
Update a saved diagram. A new spec is validated and re-rendered. Setting is_shared_with_org: true shares it with your whole organization (available on organization plans); turning it off is always allowed.

update_event

ChatGPT
Change an event: type, title, date, times, meet time, location, address, notes, linked plan, opponent, home/away, RSVP mode or details. Pass null to clear a field (location, notes, times, meet time, address, opponent, home/away, linked plan).

update_notification_preferences

ChatGPT
Update your notification and viewing preferences for a child

update_organization_member_role

ChatGPT
Update an organization member's role (requires authentication and owner/admin role)

update_organization_preferences

ChatGPT
Update organization coaching preferences (requires owner/admin role). Sets offensive/defensive system preferences, coaching philosophy, and play style tags.

update_player

ChatGPT
Update player information (coach only): name or jersey number.

update_practice_plan

ChatGPT
Update a practice plan. Only provided fields are changed. Segments are replaced entirely if provided. Supports rich text fields (plan_overview, coaching notes) as Prismic-style JSONB arrays. Set completed to mark a plan as run, or to clear that mark.

update_practice_segment

ChatGPT
Edit one segment of a practice plan in place by index. Only the provided fields change (segment_name, segment_duration_minutes, focus_area, intensity_level); the segment's type and library link are preserved. Total plan duration is recomputed.

update_team

ChatGPT
Update team details (requires authentication and coach/admin/owner role)

update_team_member

ChatGPT
Update a team member's details (requires authentication and coach/admin/owner role)

update_team_preferences

ChatGPT
Update team preferences (requires coach/admin/owner role). Sets skill focus, training schedule, gym constraints, equipment, and play style overrides.

update_tournament

ChatGPT
Update a tournament (creator only): rename, edit rules/prizes, add/remove rounds (competition uids), add/remove entrants, reorder by removing/re-adding, or change status. status final locks the overall leaderboard; cancelled hides it.

update_training_plan

ChatGPT
Update a player's individual training plan (coach only). Only provided fields change; items are replaced entirely when provided. The previous version is snapshotted into a change register (last 5 revisions — see get_training_plan_history). Include a short change_summary so the history is readable.

update_training_pool

ChatGPT
Add or remove drills in the team’s individual-training pool (coach only). Find drills with search_all — the id or the slug both work. Adding a drill marks it as suitable for players’ home training; the pool feeds AI generation and the plan editor.

update_user_profile

ChatGPT
Update profile fields (name, role, country, timezone, style, language) and marketing preferences (requires authentication). Use wants_product_updates: true to request or retry product-update email opt-in (double opt-in by email). Use wants_product_updates: false to opt out: clears confirmation state and sets marketing_unsubscribed_at (same backend path as email-prefs global unsubscribe), so turning marketing on again starts a fresh DOI.

Capabilities

InteractiveWrites

Example Prompts

Click any prompt to copy it.

Similar Apps