# Lodi Kids Activities

> Free directory of youth programs and licensed daycares in Lodi, CA. 72 tools.

- name: com.lodikidsactivities/lodi-kids-activities
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 73/100 flags: no-repository
- quality: 79/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.lodikidsactivities%2Flodi-kids-activities
- tools: https://api.protogrid.dev/v1/servers/com.lodikidsactivities%2Flodi-kids-activities/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "lodi-kids-activities": {
      "type": "http",
      "url": "https://lodikidsactivities.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ${LODI_KIDS_ACTIVITIES_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${LODI_KIDS_ACTIVITIES_TOKEN}`.

## Trust

- hygiene: 80
- liveness: 100
- freshness: 65
- provenance: 45
- drivers: +dns-namespace +reachable +uptime-100% ~updated-155d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 79/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2024-11-05; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 71 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: parent_report_enrollment (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); parent_my_reviews (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); parent_remove_kid (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 4,954 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 72, about 4,954 tokens to load them all
- tool set hash: 55fef96652d7ef9021ed202760d561e1
- badge: [![protogrid quality](https://protogrid.dev/badge/com.lodikidsactivities/lodi-kids-activities.svg)](https://protogrid.dev/servers/com.lodikidsactivities/lodi-kids-activities)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://lodikidsactivities.com/api/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (72)

- `admin_cost_summary`: Month-to-date spend across Anthropic / Firecrawl / Serper / Apify / Resend / Twilio (when each logger is in place).
- `admin_live_activity`: Last 24h of activity across the platform — signups, saves, contacts, claims, discoveries.
- `admin_mcp_stats`: MCP call volume + top tools + top agents in the last 7 days.
- `admin_pending_claims`: Pending org + daycare claim REQUESTS (someone applied to claim but admin hasn't approved). Excludes the long tail of seed orgs that have no contact info yet.
- `admin_pending_discoveries`: Pending discoveries in admin queue.
- `admin_pending_guides`: Pending editorial guide drafts.
- `admin_search_trends`: Top parent search queries in the last 30d. Reads parent_search_queries.
- `city_stats`: 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.
- `daycare_capacity`: Get current capacity by age band for the daycare(s) this org owns.
- `daycare_list_applications`: Submitted applications for the org's daycare.
- `daycare_list_tours`: Tour requests for the org's daycare(s).
- `daycare_list_waitlist`: Current waitlist queue for the org's daycare.
- `daycare_respond_to_tour`: Respond to a tour request — confirm with a date/time, propose alternates via notes, or decline.
- `daycare_set_capacity`: Upsert capacity for one age band on a daycare. Age bands: infant, toddler, twos, threes, fours, prek, kindergarten.
- `featured_listings`: Returns the currently-promoted programs on the LKA homepage. Reads from featured_listings table within the active date window.
- `get_daycare`: 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.
- `get_event`: Get full details for a single event by slug. Use after `list_upcoming_events`.
- `get_guide`: Fetch the full markdown body of a published editorial guide by slug.
- `get_program`: 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.
- `list_categories`: 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.
- `list_cities`: 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.
- `list_guides`: 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.
- `list_reviews`: 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.
- `list_upcoming_events`: 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.
- `nearby_programs`: Programs within a radius (miles) of a lat/lng point. Useful for AIs answering 'what's near 95240' style questions. Uses naive Haversine — accurate enough for a single city.
- `org_add_program_event`: Add a single event (practice, game, scrimmage, picture day, cancellation, etc.) to a program's calendar.
- `org_analytics`: Org-level analytics — page views, saves, contacts in a date window.
- `org_archive_program`: Soft-archive a program (active=false). Hides from public directory but preserves history.
- `org_cancel_program_event`: Mark a program event as canceled. Enrolled parents see this in their hub + iCal.
- `org_confirm_listing_fresh`: Confirm a program listing is still accurate (resets the stale-nudge timer).
- `org_dashboard`: Org dashboard summary — program count, leads in last 7d, new saves in last 7d, listing-status breakdown.
- `org_generate_promo_kit_url`: Returns a URL to the org's downloadable promo kit (QR poster + share card) for a given program.
- `org_list_leads`: Returns recent daycare leads + program saves for the org.
- `org_list_program_events`: List upcoming events for a program owned by this org.
- `org_list_programs`: Returns the org's programs.
- `org_reply_to_review`: Post an org response to a review. Requires consent. Replies are one-shot per review.
- `org_update_profile`: Update the org's profile (website, phone, email, logo_url, instagram).
- `org_update_program`: Update an existing program's editable fields.
- `org_update_program_capacity`: Set the listing status on a program (accepting / full / waitlist_only / closed_for_season). Requires consent.
- `parent_accept_household_invite`: Accept a household invite using the token from the invite link.
- `parent_add_kid`: Add a kid to the parent's account. Requires consent.
- `parent_calendar_subscribe_url`: Returns the parent's personal iCal feed URL — subscribe in Google/Apple/Outlook Calendar to see practices + games in your normal calendar app. Refreshes hourly.
- `parent_cancel_tour`: Cancel a tour request you previously submitted.
- `parent_export_my_data`: Export everything LKA has on you in a single JSON payload (kids, saves, enrollments, tours, reviews, household membership).
- `parent_invite_household_member`: 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.
- `parent_leave_household`: Leave the current household. If you're the owner and there are other members, ownership transfers to the longest-tenured member.
- `parent_list_enrollments`: Returns the parent's enrollments (programs their kid is signed up for).
- `parent_list_kids`: Returns the parent's kids on file (names + ages, no PII beyond what they shared).
- `parent_list_saves`: 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.
- `parent_list_tours`: Returns the parent's daycare tour requests with status.
- `parent_me`: Returns the signed-in parent's profile + preferences.
- `parent_my_applications`: Daycare applications the parent has submitted.
- `parent_my_household`: Returns the parent's household members + shared kids. If no household exists yet, returns null.
- `parent_my_reviews`: Reviews the parent has submitted.
- `parent_my_upcoming_events`: Upcoming program events (practices, games, scrimmages) for the parent's enrolled programs. Covers next 30 days by default. Cancellations included as 'canceled' status.
- `parent_my_waitlist_positions`: Daycare waitlists the parent is on, with current position.
- `parent_recommended_for_me`: Programs matched to the parent's primary kid's age + interests. Simple matcher today — surfaces top 10 active programs that include the kid's age in their range, weighted by interest overlap.
- `parent_remove_kid`: 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).
- `parent_report_enrollment`: Self-report that the parent enrolled their kid in a program outside the LKA RegFlow ('I'm In'). Accepts program UUID or slug.
- `parent_request_tour`: Submit a daycare tour request. Returns the tour id + status='requested'.
- `parent_revoke_my_tokens`: Revoke ALL MCP tokens issued under your parent account. Use this if you suspect an AI agent has misused your access.
- `parent_save_daycare`: Save a daycare to the parent's hub.
- `parent_save_program`: Save a program to the parent's hub. Accepts either the program UUID or its slug (e.g. 'youth-soccer-league'). Optionally associate the save with one or more specific kids (by UUID or name) so the kid filter in /account → Saved Programs picks it up. Requires consent.
- `parent_submit_review`: Submit a review for a program or daycare. One review per (parent, program). Use parent_update_review to edit afterward.
- `parent_unsave_program`: Remove a saved program from the parent's hub. Accepts either the program UUID or its slug. Requires consent.
- `parent_update_kid`: Update a kid record (birthdate, interests, school, special_needs).
- `parent_update_prefs`: Update parent notification + language preferences.
- `program_events_feed`: Upcoming events (practices, games, scrimmages, cancellations) for a specific program. Returns next 30 days. Use this to answer 'is there a game this Saturday?' style questions, and to power Add-to-Calendar flows.
- `search_daycares`: 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.
- `search_programs`: 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).
- `site_directory`: Structured map of LKA's public URLs and content sections. Equivalent to llms.txt — gives an AI grounding agent the full topology of the site so it knows what's worth crawling/calling.
- `upcoming_registrations`: Programs whose registration window is opening soon (within the next 60 days). Useful for parents planning ahead.
