{"serverId":"mcp-registry/com.lodikidsactivities/lodi-kids-activities","tools":[{"name":"admin_mcp_stats","fixed":{"name":"admin_mcp_stats","description":"MCP call volume + top tools + top agents in the last 7 days.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":42,"tokensAfter":42},{"name":"admin_search_trends","fixed":{"name":"admin_search_trends","description":"Top parent search queries in the last 30d. Reads parent_search_queries.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","maximum":50,"minimum":1}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":61,"tokensAfter":61},{"name":"city_stats","fixed":{"name":"city_stats","description":"Aggregate stats for a city: # programs, # daycares, % claimed by owners, % with Spanish description, % free, category breakdown. Useful for AIs answering 'how many youth programs are there in Lodi' or comparing Lodi to other cities.","inputSchema":{"type":"object","properties":{"city_slug":{"type":"string","description":"City slug (e.g. 'lodi'). Defaults to 'lodi' if omitted."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":117,"tokensAfter":117},{"name":"daycare_list_applications","fixed":{"name":"daycare_list_applications","description":"Submitted applications for the org's daycare.","inputSchema":{"type":"object","properties":{"status":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":48,"tokensAfter":48},{"name":"daycare_list_tours","fixed":{"name":"daycare_list_tours","description":"Tour requests for the org's daycare(s).","inputSchema":{"type":"object","properties":{"status":{"enum":["requested","confirmed","completed","no_show","declined","cancelled"],"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":66,"tokensAfter":66},{"name":"daycare_list_waitlist","fixed":{"name":"daycare_list_waitlist","description":"Current waitlist queue for the org's daycare.","inputSchema":{"type":"object","properties":{"daycare_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":48,"tokensAfter":48},{"name":"daycare_set_capacity","fixed":{"name":"daycare_set_capacity","description":"Upsert capacity for one age band on a daycare. Age bands: infant, toddler, twos, threes, fours, prek, kindergarten.","inputSchema":{"type":"object","required":["daycare_id","age_band","total_slots"],"properties":{"notes":{"type":"string"},"age_band":{"enum":["infant","toddler","twos","threes","fours","prek","kindergarten"],"type":"string"},"daycare_id":{"type":"string"},"total_slots":{"type":"integer","minimum":0},"waitlist_count":{"type":"integer","minimum":0},"current_enrollment":{"type":"integer","minimum":0}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":158,"tokensAfter":158},{"name":"featured_listings","fixed":{"name":"featured_listings","description":"Returns the currently-promoted programs on the LKA homepage. Reads from featured_listings table within the active date window.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":61,"tokensAfter":61},{"name":"get_daycare","fixed":{"name":"get_daycare","description":"Get full details for a single daycare by slug, including capacity by age band (infant / toddler / 2s / 3s / 4s / pre-K / kindergarten) when the daycare has filled it in. Use after `search_daycares` to surface specifics.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string","description":"Daycare slug from search_daycares results."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":114,"tokensAfter":114},{"name":"get_event","fixed":{"name":"get_event","description":"Get full details for a single event by slug. Use after `list_upcoming_events`.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string","description":"Event slug."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":66,"tokensAfter":66},{"name":"get_guide","fixed":{"name":"get_guide","description":"Fetch the full markdown body of a published editorial guide by slug.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":55,"tokensAfter":55},{"name":"get_program","fixed":{"name":"get_program","description":"Get full details for a single program by slug. Use this after `search_programs` returned a result and the user wants to know more — full description, schedule, registration timing, contact info.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string","description":"Program slug from search_programs results (e.g. 'lodi-fc-competitive-soccer')."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":117,"tokensAfter":117},{"name":"list_categories","fixed":{"name":"list_categories","description":"Returns the distinct program categories currently active in the LKA directory (e.g. Sports, Music, Arts, Academics, Swimming, Dance). Use this before search_programs to suggest exact category strings.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":81,"tokensAfter":81},{"name":"list_cities","fixed":{"name":"list_cities","description":"Returns the cities Lodi Kids Activities currently serves. Today: Lodi, CA only. Other cities are seeded but inactive; do not surface as active to users.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":67,"tokensAfter":67},{"name":"list_guides","fixed":{"name":"list_guides","description":"Lists editorial guides published on LKA — parent-facing articles like 'How to pick a summer camp,' 'Lodi after-school programs by neighborhood,' etc. Useful when a parent is researching a topic rather than searching a specific program.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","maximum":50,"minimum":1}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":104,"tokensAfter":104},{"name":"list_reviews","fixed":{"name":"list_reviews","description":"Public reviews for a program or daycare. Returns rating, text, reviewer first name only, season. Used by AIs to surface parent sentiment when recommending a program.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","maximum":25,"minimum":1},"daycare_slug":{"type":"string"},"program_slug":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":103,"tokensAfter":103},{"name":"list_upcoming_events","fixed":{"name":"list_upcoming_events","description":"List upcoming family events in Lodi, CA — open houses, workshops, community days, storytimes, sports clinics. Different from `search_programs` (ongoing classes) — these are single-day or short-window events.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","maximum":30,"minimum":1,"description":"Max events to return (1-30). Default 10."},"category":{"type":"string","description":"Filter by event category: workshop, open_house, community, showcase, fundraiser, camp_session, storytime, sports_clinic."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":161,"tokensAfter":161},{"name":"org_add_program_event","fixed":{"name":"org_add_program_event","description":"Add a single event (practice, game, scrimmage, picture day, cancellation, etc.) to a program's calendar.","inputSchema":{"type":"object","required":["program_id","kind","starts_at"],"properties":{"kind":{"enum":["practice","game","scrimmage","tournament","recital","picture_day","meeting","field_trip","cancellation","other"],"type":"string"},"notes":{"type":"string"},"address":{"type":"string"},"ends_at":{"type":"string"},"location":{"type":"string"},"opponent":{"type":"string"},"starts_at":{"type":"string","description":"ISO 8601 timestamp"},"program_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":175,"tokensAfter":175},{"name":"org_archive_program","fixed":{"name":"org_archive_program","description":"Soft-archive a program (active=false). Hides from public directory but preserves history.","inputSchema":{"type":"object","required":["program_id"],"properties":{"program_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":67,"tokensAfter":67},{"name":"org_cancel_program_event","fixed":{"name":"org_cancel_program_event","description":"Mark a program event as canceled. Enrolled parents see this in their hub + iCal.","inputSchema":{"type":"object","required":["event_id"],"properties":{"reason":{"type":"string"},"event_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"org_confirm_listing_fresh","fixed":{"name":"org_confirm_listing_fresh","description":"Confirm a program listing is still accurate (resets the stale-nudge timer).","inputSchema":{"type":"object","required":["program_id"],"properties":{"program_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":65,"tokensAfter":65},{"name":"org_list_leads","fixed":{"name":"org_list_leads","description":"Returns recent daycare leads + program saves for the org.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":41,"tokensAfter":41},{"name":"org_list_program_events","fixed":{"name":"org_list_program_events","description":"List upcoming events for a program owned by this org.","inputSchema":{"type":"object","required":["program_id"],"properties":{"days_ahead":{"type":"integer","maximum":365,"minimum":1},"program_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":74,"tokensAfter":74},{"name":"org_list_programs","fixed":{"name":"org_list_programs","description":"Returns the org's programs.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":34,"tokensAfter":34},{"name":"org_update_profile","fixed":{"name":"org_update_profile","description":"Update the org's profile (website, phone, email, logo_url, instagram).","inputSchema":{"type":"object","properties":{"email":{"type":"string"},"phone":{"type":"string"},"website":{"type":"string"},"logo_url":{"type":"string"},"instagram":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":84,"tokensAfter":84},{"name":"org_update_program","fixed":{"name":"org_update_program","description":"Update an existing program's editable fields.","inputSchema":{"type":"object","required":["program_id"],"properties":{"day":{"type":"string"},"cost":{"type":"string"},"name":{"type":"string"},"time":{"type":"string"},"season":{"type":"string"},"address":{"type":"string"},"age_max":{"type":"integer"},"age_min":{"type":"integer"},"cost_num":{"type":"integer"},"location":{"type":"string"},"program_id":{"type":"string"},"description":{"type":"string"},"listing_status":{"enum":["accepting","full","waitlist_only","closed_for_season"],"type":"string"},"openings_remaining":{"type":"integer"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":177,"tokensAfter":177},{"name":"org_update_program_capacity","fixed":{"name":"org_update_program_capacity","description":"Set the listing status on a program (accepting / full / waitlist_only / closed_for_season). Requires consent.","inputSchema":{"type":"object","required":["program_id","listing_status"],"properties":{"program_id":{"type":"string"},"listing_status":{"enum":["accepting","full","waitlist_only","closed_for_season"],"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":107,"tokensAfter":107},{"name":"parent_accept_household_invite","fixed":{"name":"parent_accept_household_invite","description":"Accept a household invite using the token from the invite link.","inputSchema":{"type":"object","required":["token"],"properties":{"token":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":60,"tokensAfter":60},{"name":"parent_add_kid","fixed":{"name":"parent_add_kid","description":"Add a kid to the parent's account. Requires consent.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"birthdate":{"type":"string","description":"YYYY-MM-DD"},"interests":{"type":"array","items":{"type":"string"}}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":83,"tokensAfter":83},{"name":"parent_cancel_tour","fixed":{"name":"parent_cancel_tour","description":"Cancel a tour request you previously submitted.","inputSchema":{"type":"object","required":["tour_id"],"properties":{"tour_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":54,"tokensAfter":54},{"name":"parent_export_my_data","fixed":{"name":"parent_export_my_data","description":"Export everything LKA has on you in a single JSON payload (kids, saves, enrollments, tours, reviews, household membership).","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":62,"tokensAfter":62},{"name":"parent_invite_household_member","fixed":{"name":"parent_invite_household_member","description":"Invite a co-parent / partner / grandparent to share this household. They receive a one-time invite link by email; on accept, they join the household and can see all kids + saves.","inputSchema":{"type":"object","required":["email"],"properties":{"email":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":92,"tokensAfter":92},{"name":"parent_list_enrollments","fixed":{"name":"parent_list_enrollments","description":"Returns the parent's enrollments (programs their kid is signed up for).","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":48,"tokensAfter":48},{"name":"parent_list_kids","fixed":{"name":"parent_list_kids","description":"Returns the parent's kids on file (names + ages, no PII beyond what they shared).","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":49,"tokensAfter":49},{"name":"parent_list_saves","fixed":{"name":"parent_list_saves","description":"Returns the signed-in parent's saved (hearted) programs AND daycares. Each row has a `kind` field of 'program' or 'daycare' so callers can route to the right detail page. Previously this tool returned `{program_id: null}` for daycare rows with no other data — a hangover from when only programs could be saved.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":112,"tokensAfter":112},{"name":"parent_list_tours","fixed":{"name":"parent_list_tours","description":"Returns the parent's daycare tour requests with status.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":42,"tokensAfter":42},{"name":"parent_remove_kid","fixed":{"name":"parent_remove_kid","description":"Remove a kid from the parent's account. Irreversible — deletes the kid record and any kid-linked enrollments/reviews remain but become orphaned (kid_id set null).","inputSchema":{"type":"object","required":["kid_id"],"properties":{"kid_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":85,"tokensAfter":85},{"name":"parent_revoke_my_tokens","fixed":{"name":"parent_revoke_my_tokens","description":"Revoke ALL MCP tokens issued under your parent account. Use this if you suspect an AI agent has misused your access.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":60,"tokensAfter":60},{"name":"parent_submit_review","fixed":{"name":"parent_submit_review","description":"Submit a review for a program or daycare. One review per (parent, program). Use parent_update_review to edit afterward.","inputSchema":{"type":"object","required":["rating","text"],"properties":{"text":{"type":"string"},"kid_id":{"type":"string"},"rating":{"type":"integer","maximum":5,"minimum":1},"season":{"type":"string"},"daycare_id":{"type":"string"},"program_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":122,"tokensAfter":122},{"name":"parent_update_kid","fixed":{"name":"parent_update_kid","description":"Update a kid record (birthdate, interests, school, special_needs).","inputSchema":{"type":"object","required":["kid_id"],"properties":{"name":{"type":"string"},"kid_id":{"type":"string"},"school":{"type":"string"},"birthdate":{"type":"string","description":"YYYY-MM-DD"},"interests":{"type":"array","items":{"type":"string"}},"special_needs":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":113,"tokensAfter":113},{"name":"parent_update_prefs","fixed":{"name":"parent_update_prefs","description":"Update parent notification + language preferences.","inputSchema":{"type":"object","properties":{"phone":{"type":"string"},"first_name":{"type":"string"},"sms_opt_in":{"type":"boolean"},"language_preference":{"enum":["en","es"],"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":82,"tokensAfter":82},{"name":"search_daycares","fixed":{"name":"search_daycares","description":"Search licensed daycares in Lodi, CA. Filter by child age (in MONTHS — daycares think in months for under-5s), program kind (daycare / preschool / after_school), facility setting (in_home / center), or claimed-only (more reliable data). Returns up to 10 daycares with hours + tuition where available. For subsidy / bilingual / curriculum filters, follow up with `get_daycare` on a slug.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","maximum":25,"minimum":1,"description":"Max daycares to return (1-25). Default 10."},"setting":{"enum":["in_home","center"],"type":"string","description":"Filter by facility setting. 'in_home' is a family child care home (smaller, residential). 'center' is a commercial facility."},"age_months":{"type":"integer","maximum":144,"minimum":0,"description":"Child age in months. Returns daycares whose licensed age range includes this age. Daycares without ages_min/max populated are kept (we don't know they DON'T serve this age)."},"claimed_only":{"type":"boolean","description":"If true, only return daycares whose owner has claimed the listing (more accurate data + reliable contact channel)."},"program_kind":{"enum":["daycare","preschool","after_school"],"type":"string","description":"Filter by program kind."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":366,"tokensAfter":366},{"name":"search_programs","fixed":{"name":"search_programs","description":"Search youth programs in Lodi, CA. Filter by free-text query (program name or description), category (Sports, Music, Arts, Academics, Swimming, etc.), child age (integer in years — programs that accept that age), free-only flag, or season. Returns up to 15 matching programs with full details for decision-making (cost, schedule, location, registration status).","inputSchema":{"type":"object","properties":{"age":{"type":"integer","maximum":18,"minimum":0,"description":"Child age in years. Returns programs whose age range includes this age."},"limit":{"type":"integer","maximum":30,"minimum":1,"description":"Max programs to return (1-30). Default 15."},"query":{"type":"string","description":"Free-text search across program name + description (case-insensitive substring match)."},"season":{"type":"string","description":"Filter by season — e.g. 'Summer', 'Fall', 'Spring', 'Winter', 'Year-Round'."},"category":{"type":"string","description":"Program category. Common values: Sports, Music, Arts, Academics, Swimming, Gymnastics, Dance, Enrichment, Free Programs."},"free_only":{"type":"boolean","description":"If true, only return programs with $0 cost."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":335,"tokensAfter":335}],"toolsChanged":43,"tokensSaved":0,"todo":[{"tool":"admin_pending_discoveries","params":["limit"]},{"tool":"admin_search_trends","params":["limit"]},{"tool":"daycare_capacity","params":["daycare_id"]},{"tool":"daycare_list_applications","params":["status"]},{"tool":"daycare_list_tours","params":["status"]},{"tool":"daycare_list_waitlist","params":["daycare_id"]},{"tool":"daycare_respond_to_tour","params":["note","tour_id","response"]},{"tool":"daycare_set_capacity","params":["notes","age_band","daycare_id","total_slots","waitlist_count","current_enrollment"]},{"tool":"get_guide","params":["slug"]},{"tool":"list_guides","params":["limit"]},{"tool":"list_reviews","params":["limit","daycare_slug","program_slug"]},{"tool":"nearby_programs","params":["lat","lng","limit","radius_miles"]},{"tool":"org_add_program_event","params":["kind","notes","address","ends_at","location","opponent","program_id"]},{"tool":"org_analytics","params":["days"]},{"tool":"org_archive_program","params":["program_id"]},{"tool":"org_cancel_program_event","params":["reason","event_id"]},{"tool":"org_confirm_listing_fresh","params":["program_id"]},{"tool":"org_generate_promo_kit_url","params":["program_id"]},{"tool":"org_list_program_events","params":["days_ahead","program_id"]},{"tool":"org_reply_to_review","params":["review_id","response_text"]},{"tool":"org_update_profile","params":["email","phone","website","logo_url","instagram"]},{"tool":"org_update_program","params":["day","cost","name","time","season","address","age_max","age_min","cost_num","location","program_id","description","listing_status","openings_remaining"]},{"tool":"org_update_program_capacity","params":["program_id","listing_status"]},{"tool":"parent_accept_household_invite","params":["token"]},{"tool":"parent_add_kid","params":["name","interests"]},{"tool":"parent_cancel_tour","params":["tour_id"]},{"tool":"parent_invite_household_member","params":["email"]},{"tool":"parent_my_upcoming_events","params":["days_ahead"]},{"tool":"parent_recommended_for_me","params":["limit"]},{"tool":"parent_remove_kid","params":["kid_id"]},{"tool":"parent_report_enrollment","params":["kid_id"]},{"tool":"parent_request_tour","params":["notes","kid_id","daycare_id","preferred_date_2","start_date_needed"]},{"tool":"parent_save_daycare","params":["daycare_id"]},{"tool":"parent_submit_review","params":["text","kid_id","rating","season","daycare_id","program_id"]},{"tool":"parent_update_kid","params":["name","kid_id","school","interests","special_needs"]},{"tool":"parent_update_prefs","params":["phone","first_name","sms_opt_in","language_preference"]},{"tool":"program_events_feed","params":["days_ahead","program_slug"]},{"tool":"upcoming_registrations","params":["window_days"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}