kiddinglab
Server Details
Search DC/MD/VA kids' camps: dates, prices, ages, live availability, checkout links. Parents pay.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 6 tools
Each tool has a distinct entry point and the descriptions actively cross-reference alternatives (find_camp_by_name explicitly defers to search_camps for area discovery). The main soft spot is overlap between get_camp_details, get_sessions_and_availability, and get_booking_policies, which all surface session price/availability/policy data, so an agent must reason about which to call.
Every tool is snake_case with a clear verb_noun shape (create_, find_, get_, search_). The verb choice is semantically meaningful — find for fuzzy name lookup, search for filtered discovery, get for single-resource retrieval — with no mixing of conventions.
Six tools is well within a healthy scope for a read-only discovery-and-handoff surface. Each tool maps to a distinct step (discover by area, discover by name, inspect camp, check availability, check policies, hand off) and none appear redundant.
The surface covers the full parent journey from search through camp inspection, availability, policy review, and checkout handoff, which matches the stated intent that assistants only prepare the choice. Minor gaps: no direct session lookup by ID alone, and no way to revisit or validate an existing handoff link.
Available Tools
6 toolscreate_booking_handoffCreate a checkout link for the parentAInspect
Create a prefilled checkout link for 1-6 bookable sessions and share it with the parent. This is a shopping-list prefill, NOT a reservation: no spots are held, and the parent signs in, names their campers, signs waivers, and pays on kiddinglab.com. Never include child names or other personal information. The link expires in 24 hours.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | 1-6 sessions to prefill into the parent checkout. No PII — session ids and counts only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: no spots are held, the parent completes sign-in, camper names, waivers and payment on kiddinglab.com, the link expires in 24 hours, and PII must be excluded. The annotations (readOnlyHint=false, destructiveHint=false, non-idempotent) are consistent with 'creates a link, holds nothing' — no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the action, then the critical non-reservation caveat, then the PII warning, then expiry. No filler; each sentence carries an operational constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter write tool with no output schema, the description covers behavior, side effects, expiry and privacy. The only gap is the return value — it does not state that the tool hands back the URL to share — which an agent must infer from 'share it with the parent'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so sess_id and children_count are already fully documented, including the 1-4 range and the no-names rule. The description restates the 1-6 item bound and the PII constraint rather than adding new parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource: 'Create a prefilled checkout link for 1-6 bookable sessions and share it with the parent.' It immediately distinguishes itself from the read-only siblings (search_camps, get_camp_details) by framing the output as a shareable link, and explicitly negates the wrong mental model ('NOT a reservation').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'shopping-list prefill, NOT a reservation' framing tells the agent exactly what situation this tool fits and what it does not do, and the schema points to search_camps/get_camp_details as the source of sess_id. It stops short of an explicit 'call this after you have session ids' sequencing statement or naming a sibling as the alternative path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_camp_by_nameFind a camp by nameARead-onlyInspect
Look up camps by camp or organization name when the parent already knows (roughly) what the camp is called. Tolerates misspellings. Returns matching camps ranked by similarity — use get_camp_details on a result for sessions, prices, and availability. For discovery by area, use search_camps instead.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Camp or organization name (or part of one), e.g. "Steve and Kate's". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered; the description adds genuinely new behavior: fuzzy matching ('tolerates misspellings') and result ordering ('ranked by similarity'). It stops short of stating result caps, empty-result behavior, or how strong a match must be, which for a fuzzy lookup would be useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero filler: purpose first, behavior second, routing/next-step third. Every sentence carries distinct information and the alternatives are named last where a reader expects them.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the right work by saying results are ranked camps and pointing to get_camp_details for the follow-up fetch. Minor gap: it doesn't say what a caller gets when nothing matches or whether results are truncated, which matters for a fuzzy matcher.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter, including an example value, so the schema does the heavy lifting. The description only loosely reinforces this by mentioning partial names and organization names, adding little syntax or format detail beyond what the schema already documents. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Look up camps by camp or organization name') with the qualifying scope that the caller already roughly knows the name. It is immediately distinguishable from search_camps (area discovery) and get_camp_details (full record).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly frames the precondition ('when the parent already knows (roughly) what the camp is called') and names two alternatives with their selecting conditions: get_camp_details for sessions/prices/availability, search_camps for discovery by area. When-not guidance is present, not just when.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_booking_policiesGet booking, refund & payment policiesARead-onlyInspect
Get the refund policy, payment schedule, waiver requirement, and platform payment facts for one session. Parents review, sign, and pay on kiddinglab.com — assistants only prepare the choice.
| Name | Required | Description | Default |
|---|---|---|---|
| sess_id | Yes | The session id (sess_id from search_camps or get_camp_details). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety and locality are covered. The description adds relevant behavioral context — that the policy content is informational and the actual signing/payment happens off-platform, so this tool cannot complete a booking. It says nothing about return shape or freshness of policy data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both load-bearing: the first enumerates exactly what is returned, the second sets the assistant's boundary. Front-loaded with the resource list and no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool with no output schema, the enumerated return contents plus the platform/role caveat give an agent enough to call it and to interpret responses. A note on whether policies can be session-specific vs platform-wide would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the sess_id parameter is documented in-schema as coming from search_camps or get_camp_details. The description's 'for one session' merely reinforces that; it adds no format or sourcing detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (get) plus an enumerated resource set — refund policy, payment schedule, waiver requirement, platform payment facts — scoped to one session. It reads clearly as distinct from search_camps, get_camp_details, and get_sessions_and_availability, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Parents review, sign, and pay on kiddinglab.com — assistants only prepare the choice' gives concrete context on the agent's role and implicitly points to create_booking_handoff as the transactional path. It doesn't spell out alternatives or exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_camp_detailsGet camp detailsARead-onlyInspect
Get the full profile of one camp: description, organizer, parent rating, and its sessions with dates, prices (US dollars), registration_status, and bookability. Sessions from the last 12 months are included — check session_status (ended/in_progress/upcoming) before recommending. data_freshness says how recently the listing was verified. Use the camp_id returned by search_camps.
| Name | Required | Description | Default |
|---|---|---|---|
| camp_id | Yes | The kiddinglab camp_id (from search_camps results). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered; the description adds genuinely useful behavior beyond them — the 12-month lookback window on sessions, the meaning of the session_status enum values, currency for prices, and the data_freshness recency signal. It does not mention rate limits or payload size, but that is minor for a read-by-id tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, all load-bearing: payload contents first, then the temporal scoping caveat, then the freshness signal and id source. No filler and the most important constraints arrive before any optional detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the work of describing the return payload field-by-field (description, organizer, rating, sessions, prices, registration_status, bookability, data_freshness). Combined with a fully documented single parameter and existing annotations, an agent has everything needed to call and interpret this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single camp_id parameter is documented in the schema including its provenance from search_camps. The description restates that provenance but adds no format or constraint detail beyond the schema, which is the baseline case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Get the full profile of one camp') and then enumerates exactly what the profile contains: description, organizer, parent rating, sessions with dates/prices/registration_status/bookability. This distinguishes it cleanly from search_camps (which returns ids) and from get_sessions_and_availability (session-level only).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the prerequisite source ('Use the camp_id returned by search_camps') and a needed pre-check ('check session_status ... before recommending'). It does not say when to prefer the sibling get_sessions_and_availability over this tool when only session data is needed, so the routing guidance is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sessions_and_availabilityCheck live availability & pricing for sessionsARead-onlyInspect
Check live bookability, pricing (US dollars), remaining spots, and refund policy for up to 20 sessions at once. Sessions marked listing_only are booked on the camp's own website (registration_url) rather than on kiddinglab.com.
| Name | Required | Description | Default |
|---|---|---|---|
| sess_ids | Yes | 1-20 session ids (sess_id values from search_camps or get_camp_details). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, and the description adds useful context: USD pricing, remaining spots, refund policy, a 20-session cap, and listing_only sessions being booked externally via registration_url. It does not cover error handling or response shape, but it adds meaningful behavior beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and the important listing_only caveat. There is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must convey return content, and it does list bookability, pricing, remaining spots, refund policy, and the external-booking caveat. It lacks response structure and error details, but it is adequate for a one-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single sess_ids parameter is fully documented in the schema, including the 1-20 range and source tools. The description only restates the 20-session cap, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: checking live bookability, pricing, remaining spots, and refund policy for sessions. It is clear what the tool does, but it does not explicitly differentiate itself from siblings like get_booking_policies or get_camp_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage for checking live availability and pricing and notes the listing_only external-booking case, but it gives no explicit when-to-use guidance versus get_booking_policies or create_booking_handoff, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_campsSearch kids' camps (DC/MD/VA area)ARead-onlyInspect
Search kids' camp sessions in the Washington DC / Maryland / Virginia area by location, dates, ages, categories, and price. Location is required: pass a 5-digit ZIP code (or lat+lon, or city+state). With start_date/end_date, results are individual sessions (10 per page); without dates, results are one representative upcoming session per camp location (result_grain says which). Each result includes prices in US dollars, registration_status, data_freshness (how recently the listing was verified), and a canonical kiddinglab.com URL.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude (use with lon instead of zip). | |
| lon | No | Longitude (use with lat instead of zip). | |
| zip | No | 5-digit US ZIP code to search around. Provide zip OR lat+lon. | |
| ages | No | Children's ages to match, e.g. [7, 9]. | |
| city | No | City name as an alternative location (use with state), e.g. "Arlington". | |
| page | No | Result page (10 results per page, max page 100). | |
| state | No | Two-letter state code (use with city), e.g. "VA". | |
| end_date | No | Latest session end date (YYYY-MM-DD). | |
| categories | No | Filter by category names. Unknown categories are ignored. | |
| start_date | No | Earliest session start date (YYYY-MM-DD). | |
| future_only | No | Only sessions that have not yet ended (default true). Set false to also include recently ended past-season programs — useful for "did they run this last year" questions. | |
| radius_miles | No | Search radius in miles (default 15, max 50). | |
| max_price_usd | No | Maximum session price in US dollars. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint and openWorldHint=false; the description adds real behavioral context: 10-per-page pagination, result grain switching between individual sessions and one representative session per location, and the presence of freshness/registration fields. It does not cover error handling or what an empty result means, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four front-loaded sentences, opening with purpose and scope before requirements and result shape. The final sentence on returned fields is dense but earns its place since there is no output schema; no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter, no-output-schema search tool, the description covers the required location input, pagination, result grain, and the key fields returned. Gaps remain around how filtering combines (e.g., max_price_usd vs session price) and empty-result semantics, but nothing essential to calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3 and the schema already documents each parameter's format and defaults. The description does exceed the schema in one meaningful way by explaining how start_date/end_date change result granularity (result_grain), but most other parameters are only restated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (Search) and resource (kids' camp sessions) scoped to DC/MD/VA, plus the filterable dimensions. An agent can distinguish it from find_camp_by_name or get_camp_details by the multi-filter search framing, though no sibling is named explicitly to remove all doubt.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the location precondition and the three accepted forms (ZIP, lat+lon, city+state), and explains the with-dates vs without-dates behavior plus a concrete use case for future_only=false. It stops short of naming when to prefer get_camp_details or get_sessions_and_availability instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- First observed
create_booking_handoff - First observed
find_camp_by_name - First observed
get_booking_policies - First observed
get_camp_details - First observed
get_sessions_and_availability - First observed
search_camps
Related MCP Connectors
Find kids' enrichment providers (sports, swim, dance, arts, STEM, camps) in 39 US regions.
Find kids enrichment activities: camps, classes, after-school programs, and tutoring near you.
Find, price and book independent campsites with live availability; guests pay the campsite directly.
Daily-verified Colorado kids' camps & after-school programs: real availability, ages, prices.
Related MCP Servers
AlicenseAqualityBmaintenanceYour agent takes a business live on payments: go_live creates a real merchant account (sandbox + production) the same day; create_checkout returns a payable link. Payments for AI builders, 3.9% flat.757 npmMIT- AlicenseAqualityAmaintenanceVacation rental software. A signed stay offer on the host’s own domain. Use this when a vacation rental host wants booking software on the host’s own domain, or when a stay offer must be verified against that domain. Returns an Ed25519-signed offer (VRP) and the host’s direct booking URL. The guest books and pays the host. Do not use to compare hosts or prices.6999 npm4Apache 2.0
- AlicenseAqualityFmaintenanceReal-time last-minute tour and activity booking across 18 suppliers in 15 countries via the OCTO open standard. Search available slots, create Stripe checkout sessions, and check booking status.41MIT
- AlicenseAqualityDmaintenanceEnables AI agents to query and manage campground reservations, sites, and rate plans via the Campspot Online Booking API.8MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.