# Camping Australia

> Search Australian campsites, caravan parks and free camps; weather, gear, road trips and booking.

- name: au.com.trip-planner/camping-australia
- version: 1.4.0
- connection class: R0 (autonomous)
- trust: 76/100 flags: no-repository
- quality: 83/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/au.com.trip-planner%2Fcamping-australia
- tools: https://api.protogrid.dev/v1/servers/au.com.trip-planner%2Fcamping-australia/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "camping-australia": {
      "type": "http",
      "url": "https://app.trip-planner.com.au/api/mcp"
    }
  }
}
```


## Trust

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

## Quality 83/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 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: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 18 of 18 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 5,054 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 7 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: 18, about 5,054 tokens to load them all
- tool set hash: 65a5ea5cd59685530ff7c7a7bb02d728
- tools last changed: 2026-10-03T00:36:05.022Z
- badge: [![protogrid quality](https://protogrid.dev/badge/au.com.trip-planner/camping-australia.svg)](https://protogrid.dev/servers/au.com.trip-planner/camping-australia)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-03 `bk_search_content` changed (description)
  - before: Search curated tourism content (attractions, things to do, local experiences, events) via Bookeasy. Use this for 'what's on / things to do near X' style questions — this is content we do NOT have in our own directory. NOT for campsite/accommodation booking (use the other bk_ tools for that).
  - after: Search curated tourism content (attractions, things to do, local experiences, events) from our booking partner. Use this for 'what's on / things to do near X' style questions — this is content we do NOT have in our own directory. NOT for campsite/accommodation booking (use the other bk_ tools for that).
- 2026-10-03 `bk_cart_promo` changed (description)
  - before: Apply (or remove) a promo / discount code on the Bookeasy cart. Use when the user gives a promo code; call before bk_cart_checkout so the discounted total shows. Set remove=true to take a code off.
  - after: Apply (or remove) a promo / discount code on the live booking cart. Use when the user gives a promo code; call before bk_cart_checkout so the discounted total shows. Set remove=true to take a code off.
- 2026-10-03 `bk_cart_guest` changed (description)
  - before: Attach the lead guest's contact details to the Bookeasy cart. Bookeasy requires a name and email to issue a booking. For a signed-in customer, any of first_name / surname / email you omit are prefilled from their account — so you can call this with just the session_key and confirm the prefilled details with them, or pass explicit values to override. Call once the cart has items and before bk_cart_checkout.
  - after: Attach the lead guest's contact details to the live booking cart. Live booking requires a name and email to issue a booking. For a signed-in customer, any of first_name / surname / email you omit are prefilled from their account — so you can call this with just the session_key and confirm the prefilled details with them, or pass explicit values to override. Call once the cart has items and before bk_cart_checkout.
- 2026-10-03 `bk_cart_checkout` changed (description)
  - before: Finalise the Bookeasy cart and get the SINGLE checkout URL the user uses to complete payment. TWO-STEP, human-in-the-loop: 1. Call WITHOUT confirm — this returns the booking summary + total price and NO payment link. Show the traveller the full summary (property, dates, guests, total) and ask them to confirm. 2. Only after they EXPLICITLY agree, call again with confirm=true to get the secure payment link. Never set confirm=true yourself without the traveller's clear yes. Payment happens on Bookeasy's page — never tell the user the booking is 'confirmed' from chat; it's pending until they pay. Only call once the cart is ready (no pending questions) and bk_cart_guest has set the lead guest. The checkout URL covers the whole cart.
  - after: Finalise the live booking cart and get the SINGLE checkout URL the user uses to complete payment. TWO-STEP, human-in-the-loop: 1. Call WITHOUT confirm — this returns the booking summary + total price and NO payment link. Show the traveller the full summary (property, dates, guests, total) and ask them to confirm. 2. Only after they EXPLICITLY agree, call again with confirm=true to get the secure payment link. Never set confirm=true yourself without the traveller's clear yes. Payment happens on the secure checkout page — label the link 'Book now' and never name the booking platform. Never tell the user the booking is 'confirmed' from chat; it's pending until they pay. Only call once the cart is ready (no pending questions) and bk_cart_guest has set the lead guest. The checkout URL covers the whole cart.
- 2026-10-03 `bk_cart_add` changed (description, inputSchema)
  - before: Add a product to the Bookeasy booking cart, OR answer a booking question. This is SERVER-DRIVEN and stateful: - First add: omit session_key to start a new cart; pass operator_id, product_id, check_in, check_out, adults/children, and quoted_price (the price from bk_operator_availability). - The response status is 'added' (item is in the cart) OR 'question_pending' — in which case it returns ONE question and a pending_token. Ask the user EXACTLY that one question, then call bk_cart_add again with the same session_key, the pending_token, and answer={field_id, value}. Repeat until status is 'added'. Always reuse the session_key returned by the previous cart call — never invent one.
  - after: Add a product to the live booking cart, OR answer a booking question. This is SERVER-DRIVEN and stateful: - First add: omit session_key to start a new cart; pass operator_id, product_id, check_in, check_out, adults/children, and quoted_price (the price from bk_operator_availability). - The response status is 'added' (item is in the cart) OR 'question_pending' — in which case it returns ONE question and a pending_token. Ask the user EXACTLY that one question, then call bk_cart_add again with the same session_key, the pending_token, and answer={field_id, value}. Repeat until status is 'added'. Always reuse the session_key returned by the previous cart call — never invent one.
- 2026-10-03 `bk_operator_availability` changed (description, inputSchema)
  - before: Get LIVE products, pricing and availability for a Bookeasy operator for specific dates. Returns bookable products each with a product_id, price, max_guests and an available flag. Call this (using an operator_id from bk_search_operators) before bk_cart_add.
  - after: Get LIVE products, pricing and availability for a live-bookable operator for specific dates. Returns bookable products each with a product_id, price, max_guests and an available flag. Call this (using an operator_id from bk_search_operators) before bk_cart_add.
- 2026-10-03 `bk_search_operators` changed (description)
  - before: Find LIVE-BOOKABLE accommodation operators near a location via the Bookeasy booking platform (real-time inventory). Use this when the user wants to actually BOOK and needs live availability/pricing — this is DIFFERENT from search_campsites (our own directory). Returns operator_id values that the other bk_ tools need. Prefer this when the user says things like 'book', 'reserve', 'is it available', or asks for real prices for specific dates.
  - after: Find LIVE-BOOKABLE accommodation operators near a location via the live booking partner (real-time inventory). Use this when the user wants to actually BOOK and needs live availability/pricing — this is DIFFERENT from search_campsites (our own directory). Returns operator_id values that the other bk_ tools need. Prefer this when the user says things like 'book', 'reserve', 'is it available', or asks for real prices for specific dates.

Full history: https://api.protogrid.dev/v1/servers/au.com.trip-planner%2Fcamping-australia/changes

## Remotes

- https://app.trip-planner.com.au/api/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (18)

- `bk_cart_add`: Add a product to the live booking cart, OR answer a booking question. This is SERVER-DRIVEN and stateful:
- First add: omit session_key to start a new cart; pass operator_id, product_id, check_in, check_out, adults/children, and quoted_price (the price from bk_operator_availability).
- The response status is 'added' (item is in the cart) OR 'question_pending' — in which case it returns ONE question and a pending_token. Ask the user EXACTLY that one question, then call bk_cart_add again with the same session_key, the pending_token, and answer={field_id, value}. Repeat until status is 'added'.
Always reuse the session_key returned by the previous cart call — never invent one.
- `bk_cart_checkout`: Finalise the live booking cart and get the SINGLE checkout URL the user uses to complete payment. TWO-STEP, human-in-the-loop:
1. Call WITHOUT confirm — this returns the booking summary + total price and NO payment link. Show the traveller the full summary (property, dates, guests, total) and ask them to confirm.
2. Only after they EXPLICITLY agree, call again with confirm=true to get the secure payment link. Never set confirm=true yourself without the traveller's clear yes.
Payment happens on the secure checkout page — label the link 'Book now' and never name the booking platform. Never tell the user the booking is 'confirmed' from chat; it's pending until they pay. Only call once the cart is ready (no pending questions) and bk_cart_guest has set the lead guest. The checkout URL covers the whole cart.
- `bk_cart_guest`: Attach the lead guest's contact details to the live booking cart. Live booking requires a name and email to issue a booking. For a signed-in customer, any of first_name / surname / email you omit are prefilled from their account — so you can call this with just the session_key and confirm the prefilled details with them, or pass explicit values to override. Call once the cart has items and before bk_cart_checkout.
- `bk_cart_promo`: Apply (or remove) a promo / discount code on the live booking cart. Use when the user gives a promo code; call before bk_cart_checkout so the discounted total shows. Set remove=true to take a code off.
- `bk_operator_availability`: Get LIVE products, pricing and availability for a live-bookable operator for specific dates. Returns bookable products each with a product_id, price, max_guests and an available flag. Call this (using an operator_id from bk_search_operators) before bk_cart_add.
- `bk_search_content`: Search curated tourism content (attractions, things to do, local experiences, events) from our booking partner. Use this for 'what's on / things to do near X' style questions — this is content we do NOT have in our own directory. NOT for campsite/accommodation booking (use the other bk_ tools for that).
- `bk_search_operators`: Find LIVE-BOOKABLE accommodation operators near a location via the live booking partner (real-time inventory). Use this when the user wants to actually BOOK and needs live availability/pricing — this is DIFFERENT from search_campsites (our own directory). Returns operator_id values that the other bk_ tools need. Prefer this when the user says things like 'book', 'reserve', 'is it available', or asks for real prices for specific dates.
- `find_nearest_toilets`: Find the nearest PUBLIC TOILETS to a location (from the National Public Toilet Map). Use this for questions like 'where's the closest toilet to me', 'nearest public toilet', 'is there an RV dump point near here', or 'closest accessible toilet'. Returns toilets sorted by distance with name, address, distance, opening hours, facilities (wheelchair access, baby change, RV dump point, showers, drinking water, etc.) and a directions link.

Provide the user's latitude/longitude. If the user says 'near me' and you already have their location from the conversation/context, pass it; otherwise ask for their location or a nearby place name.
- `get_accommodation_types`: List all accommodation types offered by a specific entity (e.g. powered sites, unpowered sites, cabins, hotel rooms). Returns pricing, capacity, amenities, and vehicle access info.
- `get_campervan_booking_link`: Get the DriveAway booking deep-link to complete a campervan / motorhome hire for a pickup city and dates. The user finishes the booking on DriveAway's site (we don't take payment). Use this to hand the user a 'book now' link once they've chosen dates — no search needed. Returns a single booking_url. Australia only.
- `get_campsite_details`: Get full details for a specific campsite or accommodation by its ID. Returns description, all features/amenities, address, photos, rating, accommodation types offered, and booking information.
- `get_features`: Get the full list of available features/amenities that campsites can have. Use this to help users understand what filters are available or to clarify what a feature means.
- `get_regions`: List available camping/accommodation regions, optionally filtered by state. Returns region names with entity counts. Use this when the user wants to browse by area or doesn't have a specific location.
- `get_weather_forecast`: Get a 14-day weather forecast for a campsite or location. Use this when the user asks about weather, temperature, rain, wind, or UV conditions at a campsite or destination.

You can provide EITHER:
- campsite_name: The name (or partial name) of a campsite to   look up its GPS coordinates automatically, OR
- latitude + longitude: Direct coordinates if already known

Returns daily forecasts with max/min temperature, rain chance, precipitation amount, wind speed, UV index, and a weather description for each day.
- `recommend_gear`: Recommend relevant products and gear for a specific campsite based on its features and type. For example, a campsite with fishing will return fishing gear; a 4WD-access campsite will return recovery equipment. Use this when a user asks what to bring or buy for a particular campsite.
- `search_campervans`: Search live campervan / motorhome hire availability and pricing for a pickup city and travel dates (via DriveAway). Use this when the user wants to RENT a campervan, motorhome or RV (NOT the same as search_campsites, which finds places to camp). Returns matching vehicles with brand, name, category, sleeps/seats, 4WD, nightly and total AUD price, and a booking_url deep-link to complete the hire. Australia only. Each result already includes full vehicle details (so there is no separate 'resolve' step) and the booking link.
- `search_campsites`: Search for campsites, caravan parks, or accommodation by location, features, and other criteria. Use this when the user asks to find a place to stay, camp, or explore. Returns a list of matching entities with names, locations, ratings, features, and images.

COVERAGE: Australia (default), the United States (federal, BLM, national-forest campgrounds + free camping), Canada, New Zealand, Argentina AND Chile (campgrounds + free camping). Set the 'country' parameter to 'US' for United States, 'CA' for Canada, 'NZ' for New Zealand, 'AR' for Argentina, 'CL' for Chile, 'AU' for Australia — results never mix countries.

IMPORTANT — Feature filtering:
When users mention specific requirements (pets, pools, toilets, etc.), you MUST pass the correct feature name(s) in the 'features' array. Only campsites that have ALL requested features will be returned.

AVAILABLE FEATURE NAMES (use these exact strings):
Amenities: Toilets, Showers, Hot Showers, Drinking Water, Power, WiFi Internet, Laundromat, Dump Point, Camp Kitchen
Activities: Fishing Spot, Beach Fishing, Swimming, Walking, Boating, Boat Ramp, Bird Watching
Accommodation: Caravans, Caravan Park, Tent Site, Campground, Cabins, Free Camping, Showground
Facilities: BBQ, Fire Place, Shade, Picnic Tables, Children's Play Facility, Swimming Pool
Rules: Pets Welcome, No Pets, Accessible, Camping Fee, Mobile Phone Coverage

CRITICAL — Pet policy:
- 'dog friendly' / 'pets allowed' / 'pet friendly' → use feature 'Pets Welcome'
- NEVER recommend a campsite with 'No Pets' feature to someone wanting pets
- If the user asks for pet-friendly, ALWAYS include 'Pets Welcome' in features array
- `search_products`: Search for camping gear, outdoor products, and accessories available in the Camping Australia store. Use this when a user asks about gear, equipment, products, or what to buy/bring.
