Camping Australia
Search Australian campsites, caravan parks and free camps; weather, gear, road trips and booking.
我該用這個嗎
品質與安全性
發現項目(1)
- LOW在 recommend_gear 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"camping-australia": {
"url": "https://app.trip-planner.com.au/api/mcp"
}
}
}遠端端點
https://app.trip-planner.com.au/api/mcpstreamable-http它能做什麼
工具清單
工具(18)
🟢find_nearest_toilets(latitude, limit, longitude, radius_km)
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.
輸入結構描述
{
"type": "object",
"properties": {
"latitude": {
"description": "Latitude of the search location.",
"type": "number"
},
"limit": {
"description": "Max results to return (default 5, max 25).",
"type": "integer"
},
"longitude": {
"description": "Longitude of the search location.",
"type": "number"
},
"radius_km": {
"description": "Search radius in km (default 15). If none are within radius, the closest are returned anyway.",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
]
}🟢search_campsites(country, entity_type, features, limit, near_latitude, ...)
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
輸入結構描述
{
"type": "object",
"properties": {
"country": {
"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.",
"enum": [
"AU",
"US",
"CA",
"NZ",
"AR",
"CL"
],
"type": "string"
},
"entity_type": {
"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'.",
"enum": [
"free_camping",
"caravan_park",
"campground",
"accom",
"campsite",
"tours",
"poi"
],
"type": "string"
},
"features": {
"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.",
"items": {
"type": "string"
},
"type": "array"
},
"limit": {
"description": "Max results to return (default 6, max 20)",
"type": "integer"
},
"near_latitude": {
"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.",
"type": "number"
},
"near_longitude": {
"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.",
"type": "number"
},
"query": {
"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.",
"type": "string"
},
"radius_km": {
"description": "Search radius in kilometres (default 50, use 100-150 for broader search)",
"type": "number"
},
"region": {
"description": "Region name to search within (e.g. 'South Coast', 'Blue Mountains')",
"type": "string"
},
"state": {
"description": "AUSTRALIA ONLY — state abbreviation (e.g. 'NSW', 'VIC', 'QLD'). For US/CA/NZ searches use 'query' or near_latitude/near_longitude instead.",
"enum": [
"NSW",
"VIC",
"QLD",
"SA",
"WA",
"TAS",
"NT",
"ACT"
],
"type": "string"
}
},
"required": []
}🟢get_campsite_details(entity_id)
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.
輸入結構描述
{
"type": "object",
"properties": {
"entity_id": {
"description": "The unique entity ID of the campsite",
"type": "integer"
}
},
"required": [
"entity_id"
]
}🟢get_regions(state)
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.
輸入結構描述
{
"type": "object",
"properties": {
"state": {
"description": "Filter regions by state (e.g. 'NSW')",
"enum": [
"NSW",
"VIC",
"QLD",
"SA",
"WA",
"TAS",
"NT",
"ACT"
],
"type": "string"
}
},
"required": []
}🟢get_features(feature_type)
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.
輸入結構描述
{
"type": "object",
"properties": {
"feature_type": {
"description": "Filter by feature category (e.g. 'Campsite Type', 'Amenities')",
"type": "string"
}
},
"required": []
}🟢get_accommodation_types(entity_id)
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.
輸入結構描述
{
"type": "object",
"properties": {
"entity_id": {
"description": "The entity ID to get accommodation types for",
"type": "integer"
}
},
"required": [
"entity_id"
]
}🟢search_products(limit, product_type, query)
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.
輸入結構描述
{
"type": "object",
"properties": {
"limit": {
"description": "Max results to return (default 6, max 12)",
"type": "integer"
},
"product_type": {
"description": "Product category to filter by (e.g. 'Tents', 'Outdoor Recreation > Fishing', 'Caravan Accessories')",
"type": "string"
},
"query": {
"description": "Free-text search query (e.g. 'fishing rod', 'tent', 'caravan accessories')",
"type": "string"
}
},
"required": []
}🟢recommend_gear(entity_id, limit)
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.
輸入結構描述
{
"type": "object",
"properties": {
"entity_id": {
"description": "The campsite entity ID to recommend gear for",
"type": "integer"
},
"limit": {
"description": "Max products to return (default 6, max 12)",
"type": "integer"
}
},
"required": [
"entity_id"
]
}🟢get_weather_forecast(campsite_name, latitude, longitude)
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.
輸入結構描述
{
"type": "object",
"properties": {
"campsite_name": {
"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.",
"type": "string"
},
"latitude": {
"description": "Latitude of the location (e.g. -33.8688 for Sydney)",
"type": "number"
},
"longitude": {
"description": "Longitude of the location (e.g. 151.2093 for Sydney)",
"type": "number"
}
},
"required": []
}🟢bk_search_operators(latitude, limit, longitude, within_km)
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.
輸入結構描述
{
"type": "object",
"properties": {
"latitude": {
"description": "Latitude to search around",
"type": "number"
},
"limit": {
"description": "Max operators (default 15, max 50)",
"type": "integer"
},
"longitude": {
"description": "Longitude to search around",
"type": "number"
},
"within_km": {
"description": "Search radius in km (default 30, max ~50)",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
]
}🟢bk_operator_availability(adults, check_in, check_out, children, operator_id)
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.
輸入結構描述
{
"type": "object",
"properties": {
"adults": {
"description": "Number of adults (default 2)",
"type": "integer"
},
"check_in": {
"description": "Check-in date YYYY-MM-DD",
"type": "string"
},
"check_out": {
"description": "Check-out date YYYY-MM-DD",
"type": "string"
},
"children": {
"description": "Number of children (default 0)",
"type": "integer"
},
"operator_id": {
"description": "Operator id from bk_search_operators",
"type": "integer"
}
},
"required": [
"operator_id",
"check_in",
"check_out"
]
}🟡bk_cart_add(adults, answer, check_in, check_out, children, ...)
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.
輸入結構描述
{
"type": "object",
"properties": {
"adults": {
"description": "Adults (default 2)",
"type": "integer"
},
"answer": {
"description": "Answer to the pending booking question",
"properties": {
"field_id": {
"description": "The question's fieldId",
"type": "string"
},
"value": {
"description": "The user's answer",
"type": "string"
}
},
"type": "object"
},
"check_in": {
"description": "Check-in date YYYY-MM-DD",
"type": "string"
},
"check_out": {
"description": "Check-out date YYYY-MM-DD",
"type": "string"
},
"children": {
"description": "Children (default 0)",
"type": "integer"
},
"operator_id": {
"description": "Operator id from bk_search_operators (for a new product add)",
"type": "integer"
},
"pending_token": {
"description": "Token from a prior 'question_pending' response (when answering a booking question)",
"type": "string"
},
"product_id": {
"description": "Product id from bk_operator_availability",
"type": "integer"
},
"quoted_price": {
"description": "The price quoted by bk_operator_availability for this product",
"type": "number"
},
"session_key": {
"description": "Cart session key from a prior cart call. Omit on the very first add to open a new cart.",
"type": "string"
}
},
"required": []
}🔴bk_cart_checkout(confirm, session_key)
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.
輸入結構描述
{
"type": "object",
"properties": {
"confirm": {
"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.",
"type": "boolean"
},
"session_key": {
"description": "The cart session key",
"type": "string"
}
},
"required": [
"session_key"
]
}⚪bk_cart_guest(email, first_name, phone, session_key, surname)
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.
輸入結構描述
{
"type": "object",
"properties": {
"email": {
"description": "Guest email (booking confirmation goes here)",
"type": "string"
},
"first_name": {
"description": "Guest first name",
"type": "string"
},
"phone": {
"description": "Optional contact phone",
"type": "string"
},
"session_key": {
"description": "The cart session key",
"type": "string"
},
"surname": {
"description": "Guest surname",
"type": "string"
}
},
"required": [
"session_key",
"first_name",
"surname",
"email"
]
}🟡bk_cart_promo(promo_code, remove, session_key)
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.
輸入結構描述
{
"type": "object",
"properties": {
"promo_code": {
"description": "The promo / discount code",
"type": "string"
},
"remove": {
"description": "True to remove the code instead of applying it",
"type": "boolean"
},
"session_key": {
"description": "The cart session key",
"type": "string"
}
},
"required": [
"session_key",
"promo_code"
]
}🟢bk_search_content(limit, query)
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).
輸入結構描述
{
"type": "object",
"properties": {
"limit": {
"description": "Max results (default 6)",
"type": "integer"
},
"query": {
"description": "What to search for (e.g. 'things to do near Jervis Bay')",
"type": "string"
}
},
"required": [
"query"
]
}🟢search_campervans(driver_age, dropoff_date, passengers, pickup_city, pickup_date)
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.
輸入結構描述
{
"type": "object",
"properties": {
"driver_age": {
"description": "Driver age (18–99). Default 35.",
"type": "integer"
},
"dropoff_date": {
"description": "Drop-off date, YYYY-MM-DD. Must be after pickup_date.",
"type": "string"
},
"passengers": {
"description": "Number of travellers (1–8). Default 2.",
"type": "integer"
},
"pickup_city": {
"description": "Pickup depot city, e.g. 'Melbourne', 'Cairns', 'Perth'.",
"type": "string"
},
"pickup_date": {
"description": "Pickup date, YYYY-MM-DD.",
"type": "string"
}
},
"required": [
"pickup_city",
"pickup_date",
"dropoff_date"
]
}🟢get_campervan_booking_link(driver_age, dropoff_date, passengers, pickup_city, pickup_date)
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.
輸入結構描述
{
"type": "object",
"properties": {
"driver_age": {
"description": "Driver age (18–99). Default 35.",
"type": "integer"
},
"dropoff_date": {
"description": "Drop-off date, YYYY-MM-DD.",
"type": "string"
},
"passengers": {
"description": "Number of travellers (1–8). Default 2.",
"type": "integer"
},
"pickup_city": {
"description": "Pickup depot city, e.g. 'Brisbane'.",
"type": "string"
},
"pickup_date": {
"description": "Pickup date, YYYY-MM-DD.",
"type": "string"
}
},
"required": [
"pickup_city",
"pickup_date",
"dropoff_date"
]
}社群
證據