MCP Server

Camping Australia

au.com.trip-planner/camping-australia
Commerce & Retail Travel & Hospitality Public & reachable MCP 2026-07-28

What this MCP does

Searches campsites, caravan parks, campervans, activities, weather, facilities, and camping gear, with live accommodation availability and booking checkout links.

bk_cart_add
Add a stay to the booking cart
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.
Input schema
{'type': 'object', 'required': [], 'properties': {'adults': {'type': 'integer', 'description': 'Adults (default 2)'}, 'answer': {'type': 'object', 'properties': {'value': {'type': 'string', 'description': "The user's answer"}, 'field_id': {'type': 'string', 'description': "The question's fieldId"}}, 'description': 'Answer to the pending booking question'}, 'check_in': {'type': 'string', 'description': 'Check-in date YYYY-MM-DD'}, 'children': {'type': 'integer', 'description': 'Children (default 0)'}, 'check_out': {'type': 'string', 'description': 'Check-out date YYYY-MM-DD'}, 'product_id': {'type': 'integer', 'description': 'Product id from bk_operator_availability'}, 'operator_id': {'type': 'integer', 'description': 'Bookeasy operator id (for a new product add)'}, 'session_key': {'type': 'string', 'description': 'Cart session key from a prior cart call. Omit on the very first add to open a new cart.'}, 'quoted_price': {'type': 'number', 'description': 'The price quoted by bk_operator_availability for this product'}, 'pending_token': {'type': 'string', 'description': "Token from a prior 'question_pending' response (when answering a booking question)"}}}
bk_cart_checkout
Complete booking checkout
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.
Destructive
Input schema
{'type': 'object', 'required': ['session_key'], 'properties': {'confirm': {'type': 'boolean', 'description': 'Set true ONLY after the traveller has seen the full summary + total and explicitly agreed. Without it, the payment link is withheld and only the summary is returned.'}, 'session_key': {'type': 'string', 'description': 'The cart session key'}}}
bk_cart_guest
Set booking guest details
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.
Input schema
{'type': 'object', 'required': ['session_key', 'first_name', 'surname', 'email'], 'properties': {'email': {'type': 'string', 'description': 'Guest email (booking confirmation goes here)'}, 'phone': {'type': 'string', 'description': 'Optional contact phone'}, 'surname': {'type': 'string', 'description': 'Guest surname'}, 'first_name': {'type': 'string', 'description': 'Guest first name'}, 'session_key': {'type': 'string', 'description': 'The cart session key'}}}
bk_cart_promo
Apply a promo code
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.
Input schema
{'type': 'object', 'required': ['session_key', 'promo_code'], 'properties': {'remove': {'type': 'boolean', 'description': 'True to remove the code instead of applying it'}, 'promo_code': {'type': 'string', 'description': 'The promo / discount code'}, 'session_key': {'type': 'string', 'description': 'The cart session key'}}}
bk_operator_availability
Live park availability and prices
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.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['operator_id', 'check_in', 'check_out'], 'properties': {'adults': {'type': 'integer', 'description': 'Number of adults (default 2)'}, 'check_in': {'type': 'string', 'description': 'Check-in date YYYY-MM-DD'}, 'children': {'type': 'integer', 'description': 'Number of children (default 0)'}, 'check_out': {'type': 'string', 'description': 'Check-out date YYYY-MM-DD'}, 'operator_id': {'type': 'integer', 'description': 'Bookeasy operator id'}}}
bk_search_content
Caravan park booking info
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).
Read only Idempotent
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'description': 'Max results (default 6)'}, 'query': {'type': 'string', 'description': "What to search for (e.g. 'things to do near Jervis Bay')"}}}
bk_search_operators
Search bookable caravan parks
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.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['latitude', 'longitude'], 'properties': {'limit': {'type': 'integer', 'description': 'Max operators (default 15, max 50)'}, 'latitude': {'type': 'number', 'description': 'Latitude to search around'}, 'longitude': {'type': 'number', 'description': 'Longitude to search around'}, 'within_km': {'type': 'number', 'description': 'Search radius in km (default 30, max ~50)'}}}
find_nearest_toilets
Find nearest public 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.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['latitude', 'longitude'], 'properties': {'limit': {'type': 'integer', 'description': 'Max results to return (default 5, max 25).'}, 'latitude': {'type': 'number', 'description': 'Latitude of the search location.'}, 'longitude': {'type': 'number', 'description': 'Longitude of the search location.'}, 'radius_km': {'type': 'number', 'description': 'Search radius in km (default 15). If none are within radius, the closest are returned anyway.'}}}
get_accommodation_types
List 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.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['entity_id'], 'properties': {'entity_id': {'type': 'integer', 'description': 'The entity ID to get accommodation types for'}}}
get_campervan_booking_link
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.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['pickup_city', 'pickup_date', 'dropoff_date'], 'properties': {'driver_age': {'type': 'integer', 'description': 'Driver age (18–99). Default 35.'}, 'passengers': {'type': 'integer', 'description': 'Number of travellers (1–8). Default 2.'}, 'pickup_city': {'type': 'string', 'description': "Pickup depot city, e.g. 'Brisbane'."}, 'pickup_date': {'type': 'string', 'description': 'Pickup date, YYYY-MM-DD.'}, 'dropoff_date': {'type': 'string', 'description': 'Drop-off date, YYYY-MM-DD.'}}}
get_campsite_details
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.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['entity_id'], 'properties': {'entity_id': {'type': 'integer', 'description': 'The unique entity ID of the campsite'}}}
get_features
List campsite 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.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'feature_type': {'type': 'string', 'description': "Filter by feature category (e.g. 'Campsite Type', 'Amenities')"}}}
get_regions
List camping 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.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'state': {'enum': ['NSW', 'VIC', 'QLD', 'SA', 'WA', 'TAS', 'NT', 'ACT'], 'type': 'string', 'description': "Filter regions by state (e.g. 'NSW')"}}}
get_weather_forecast
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.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'latitude': {'type': 'number', 'description': 'Latitude of the location (e.g. -33.8688 for Sydney)'}, 'longitude': {'type': 'number', 'description': 'Longitude of the location (e.g. 151.2093 for Sydney)'}, 'campsite_name': {'type': 'string', 'description': "Name or partial name of a campsite to look up (e.g. 'Byron Bay', 'Big4 Morisset'). The tool will search Neo4j for the campsite and use its GPS coordinates."}}}
recommend_gear
Recommend camping 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.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['entity_id'], 'properties': {'limit': {'type': 'integer', 'description': 'Max products to return (default 6, max 12)'}, 'entity_id': {'type': 'integer', 'description': 'The campsite entity ID to recommend gear for'}}}
search_campervans
Search campervan hire
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.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['pickup_city', 'pickup_date', 'dropoff_date'], 'properties': {'driver_age': {'type': 'integer', 'description': 'Driver age (18–99). Default 35.'}, 'passengers': {'type': 'integer', 'description': 'Number of travellers (1–8). Default 2.'}, 'pickup_city': {'type': 'string', 'description': "Pickup depot city, e.g. 'Melbourne', 'Cairns', 'Perth'."}, 'pickup_date': {'type': 'string', 'description': 'Pickup date, YYYY-MM-DD.'}, 'dropoff_date': {'type': 'string', 'description': 'Drop-off date, YYYY-MM-DD. Must be after pickup_date.'}}}
search_campsites
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
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'description': 'Max results to return (default 6, max 20)'}, 'query': {'type': 'string', 'description': "Free-text search for campsite name or location (e.g. 'Byron Bay', 'Moab', 'Banff', 'Queenstown', 'Bariloche', 'Torres del Paine', 'Central Coast'). Do NOT put feature requirements here — use the 'features' parameter instead."}, 'state': {'enum': ['NSW', 'VIC', 'QLD', 'SA', 'WA', 'TAS', 'NT', 'ACT'], 'type': 'string', 'description': "AUSTRALIA ONLY — state abbreviation (e.g. 'NSW', 'VIC', 'QLD'). For US/CA/NZ searches use 'query' or near_latitude/near_longitude instead."}, 'region': {'type': 'string', 'description': "Region name to search within (e.g. 'South Coast', 'Blue Mountains')"}, 'country': {'enum': ['AU', 'US', 'CA', 'NZ', 'AR', 'CL'], 'type': 'string', 'description': "Which country's campsites to search. Set 'US' for United States, 'CA' for Canada, 'NZ' for New Zealand, 'AR' for Argentina, 'CL' for Chile, 'AU' for Australia. Defaults to 'AU'. Results NEVER mix countries — always set this to match the location the user is asking about."}, 'features': {'type': 'array', 'items': {'type': 'string'}, 'description': "REQUIRED features the campsite MUST have. Use exact feature names from the list above. e.g. ['Pet Friendly', 'Toilets', 'Swimming Pool']. All listed features must be present on a campsite for it to be returned."}, 'radius_km': {'type': 'number', 'description': 'Search radius in kilometres (default 50, use 100-150 for broader search)'}, 'entity_type': {'enum': ['free_camping', 'caravan_park', 'campground', 'accom', 'campsite', 'tours', 'poi'], 'type': 'string', 'description': "Filter by listing type. Use when the user specifies what kind of place they want:\n- 'free_camping' — free bush camps, rest areas with overnight stays\n- 'caravan_park' — caravan parks with powered/unpowered sites\n- 'campground' — managed campgrounds (national parks etc)\n- 'accom' — accommodation (cabins, lodges, holiday parks)\n- 'campsite' — individual campsites\n- 'tours' — tours and activities\n- 'poi' — points of interest, day-use areas, lookouts, picnic spots (NO overnight camping)\n\nIf the user just says 'camping' or 'campsites', do NOT set this — search all types.\nIf the user asks for 'free camping', set to 'free_camping'.\nIf the user asks for 'things to do' or 'activities', set to 'tours'.\nIf the user asks for 'day trips' or 'picnic spots', set to 'poi'."}, 'near_latitude': {'type': 'number', 'description': "Latitude for proximity search. AU: -33.8688 Sydney. US: 38.5733 Moab, 37.8651 Yosemite Valley. CA: 51.1784 Banff, 49.2827 Vancouver. NZ: -45.0312 Queenstown, -38.1368 Rotorua, -43.5321 Christchurch, -36.8485 Auckland. AR: -41.13 Bariloche, -32.89 Mendoza, -50.34 El Calafate. CL: -41.32 Puerto Varas, -39.27 Pucón, -51.73 Puerto Natales / Torres del Paine. Set 'country' to match."}, 'near_longitude': {'type': 'number', 'description': "Longitude for proximity search. AU: 151.2093 Sydney. US: -109.5498 Moab, -119.5383 Yosemite Valley. CA: -115.5708 Banff, -123.1207 Vancouver. NZ: 168.6626 Queenstown, 176.2497 Rotorua, 172.6362 Christchurch, 174.7633 Auckland. AR: -71.31 Bariloche, -68.84 Mendoza, -72.28 El Calafate. CL: -72.99 Puerto Varas, -71.98 Pucón, -72.51 Puerto Natales / Torres del Paine. Set 'country' to match."}}}
search_products
Search camping gear store
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.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'description': 'Max results to return (default 6, max 12)'}, 'query': {'type': 'string', 'description': "Free-text search query (e.g. 'fishing rod', 'tent', 'caravan accessories')"}, 'product_type': {'type': 'string', 'description': "Product category to filter by (e.g. 'Tents', 'Outdoor Recreation > Fishing', 'Caravan Accessories')"}}}
Added
get_campervan_booking_link
Sept. 17, 2026, 7:58 a.m.
Added
search_campervans
Sept. 17, 2026, 7:58 a.m.
Added
bk_search_content
Sept. 17, 2026, 7:58 a.m.
Added
bk_cart_promo
Sept. 17, 2026, 7:58 a.m.
Added
bk_cart_guest
Sept. 17, 2026, 7:58 a.m.
Added
bk_cart_checkout
Sept. 17, 2026, 7:58 a.m.
Added
bk_cart_add
Sept. 17, 2026, 7:58 a.m.
Added
bk_operator_availability
Sept. 17, 2026, 7:58 a.m.
Added
bk_search_operators
Sept. 17, 2026, 7:58 a.m.
Added
get_weather_forecast
Sept. 17, 2026, 7:58 a.m.
Added
recommend_gear
Sept. 17, 2026, 7:58 a.m.
Added
search_products
Sept. 17, 2026, 7:58 a.m.
Added
get_accommodation_types
Sept. 17, 2026, 7:58 a.m.
Added
get_features
Sept. 17, 2026, 7:58 a.m.
Added
get_regions
Sept. 17, 2026, 7:58 a.m.
Added
get_campsite_details
Sept. 17, 2026, 7:58 a.m.
Added
search_campsites
Sept. 17, 2026, 7:58 a.m.
Added
find_nearest_toilets
Sept. 17, 2026, 7:58 a.m.