Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Total Parks

REMOTE · MCP.TOTALPARKS.COM.AU · SCANNED SEP 20

Read-only MCP tools for Total Parks-listed Australian holiday parks, caravan parks, and campgrounds.

+3 this week 89 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security83
Transport & Reachability100
Schema Quality & AI Usability74
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 8404 tokens (~560/item across 15 items; 11 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 11 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 13 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
  • Supports UI / widget rendering.Pass
Install

How do I install the Total Parks MCP server?

Total Parks is a hosted endpoint at https://mcp.totalparks.com.au/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.totalparks.com.au

# add to Claude Code
claude mcp add --transport http au-com-totalparks-mcp 'https://mcp.totalparks.com.au/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "au-com-totalparks-mcp": {
      "url": "https://mcp.totalparks.com.au/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "au-com-totalparks-mcp": {
      "type": "http",
      "url": "https://mcp.totalparks.com.au/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.au-com-totalparks-mcp]
url = "https://mcp.totalparks.com.au/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "au-com-totalparks-mcp": {
      "type": "remote",
      "url": "https://mcp.totalparks.com.au/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add au-com-totalparks-mcp --url 'https://mcp.totalparks.com.au/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  au-com-totalparks-mcp:
    url: "https://mcp.totalparks.com.au/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "au-com-totalparks-mcp": {
      "Transport": "http",
      "Url": "https://mcp.totalparks.com.au/mcp"
    }
  }
}
# add to Vellum
assistant mcp add au-com-totalparks-mcp -t streamable-http -u 'https://mcp.totalparks.com.au/mcp'
// mcp.json
{
  "mcpServers": {
    "au-com-totalparks-mcp": {
      "type": "http",
      "url": "https://mcp.totalparks.com.au/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 14 Sept 26 +3
    • Schema quality: 374 → 560 functional
    • Tool coverage: 3% → 100% functional
    • Schema quality: good → excellent functional
    • “tp_assess_stay” reworded the description of “accommodation_kind” cosmetic
    • “tp_assess_stay” reworded the description of “adults” cosmetic
    • “tp_assess_stay” reworded the description of “breed” cosmetic
    • “tp_assess_stay” reworded the description of “check_in” cosmetic
    • “tp_assess_stay” reworded the description of “check_out” cosmetic
    • “tp_assess_stay” reworded the description of “children” cosmetic
    • “tp_assess_stay” reworded the description of “end_date” cosmetic
    • “tp_assess_stay” reworded the description of “equipment_length” cosmetic
    • “tp_assess_stay” reworded the description of “equipment_length_m” cosmetic
    • “tp_assess_stay” reworded the description of “equipment_type” cosmetic
    • “tp_assess_stay” reworded the description of “equipment_width” cosmetic
    • “tp_assess_stay” reworded the description of “equipment_width_m” cosmetic
    • “tp_assess_stay” reworded the description of “infants” cosmetic
    • “tp_assess_stay” reworded the description of “intent” cosmetic
    • “tp_assess_stay” reworded the description of “length_m” cosmetic
    • “tp_assess_stay” reworded the description of “option_cursor” cosmetic
    • “tp_assess_stay” reworded the description of “option_facet_names” cosmetic
    • “tp_assess_stay” reworded the description of “option_facets” cosmetic
    • “tp_assess_stay” reworded the description of “option_limit” cosmetic
    • “tp_assess_stay” reworded the description of “pet_breed” cosmetic
    • “tp_assess_stay” reworded the description of “pet_count” cosmetic
    • “tp_assess_stay” reworded the description of “pet_size” cosmetic
    • “tp_assess_stay” reworded the description of “pet_type” cosmetic
    • “tp_assess_stay” reworded the description of “power_required” cosmetic
    • “tp_assess_stay” reworded the description of “powered_site” cosmetic
    • “tp_assess_stay” reworded the description of “preferred_room_type” cosmetic
    • “tp_assess_stay” reworded the description of “property_id” cosmetic
    • “tp_assess_stay” reworded the description of “property_ref” cosmetic
    • “tp_assess_stay” reworded the description of “property_url” cosmetic
    • “tp_assess_stay” reworded the description of “room_type_id” cosmetic
    • “tp_assess_stay” reworded the description of “room_type_ref” cosmetic
    • “tp_assess_stay” reworded the description of “room_type_url” cosmetic
    • “tp_assess_stay” reworded the description of “start_date” cosmetic
    • “tp_search_parks” reworded the description of “vibe” cosmetic
    • “tp_assess_stay” reworded the description of “traveling_with_pets” cosmetic
    • “tp_assess_stay” reworded the description of “travelling_with_pets” cosmetic
    • “tp_assess_stay” reworded the description of “width_m” cosmetic
    • “tp_check_equipment_fit” reworded the description of “equipment_length” cosmetic
    • “tp_check_equipment_fit” reworded the description of “equipment_length_m” cosmetic
    • “tp_check_equipment_fit” reworded the description of “equipment_type” cosmetic
    • “tp_check_equipment_fit” reworded the description of “equipment_width” cosmetic
    • “tp_check_equipment_fit” reworded the description of “equipment_width_m” cosmetic
    • “tp_check_equipment_fit” reworded the description of “length_m” cosmetic
    • “tp_check_equipment_fit” reworded the description of “property_id” cosmetic
    • “tp_check_equipment_fit” reworded the description of “property_ref” cosmetic
    • “tp_check_equipment_fit” reworded the description of “property_url” cosmetic
    • “tp_check_equipment_fit” reworded the description of “room_type_id” cosmetic
    • “tp_check_equipment_fit” reworded the description of “room_type_ref” cosmetic
    • “tp_check_equipment_fit” reworded the description of “room_type_url” cosmetic
    • “tp_check_equipment_fit” reworded the description of “width_m” cosmetic
    • “tp_get_availability_calendar” reworded the description of “accommodation_kind” cosmetic
    • “tp_get_availability_calendar” reworded the description of “adults” cosmetic
    • “tp_get_availability_calendar” reworded the description of “check_in” cosmetic
    • “tp_get_availability_calendar” reworded the description of “check_out” cosmetic
    • “tp_get_availability_calendar” reworded the description of “children” cosmetic
    • “tp_get_availability_calendar” reworded the description of “end_date” cosmetic
    • “tp_get_availability_calendar” reworded the description of “equipment_length” cosmetic
    • “tp_get_availability_calendar” reworded the description of “equipment_length_m” cosmetic
    • “tp_get_availability_calendar” reworded the description of “equipment_type” cosmetic
    • “tp_get_availability_calendar” reworded the description of “equipment_width” cosmetic
    • “tp_get_availability_calendar” reworded the description of “equipment_width_m” cosmetic
    • “tp_get_availability_calendar” reworded the description of “infants” cosmetic
    • “tp_get_availability_calendar” reworded the description of “length_m” cosmetic
    • “tp_get_availability_calendar” reworded the description of “property_id” cosmetic
    • “tp_get_availability_calendar” reworded the description of “property_ref” cosmetic
    • “tp_get_availability_calendar” reworded the description of “property_url” cosmetic
    • “tp_get_availability_calendar” reworded the description of “room_type_id” cosmetic
    • “tp_get_availability_calendar” reworded the description of “room_type_ref” cosmetic
    • “tp_get_availability_calendar” reworded the description of “room_type_url” cosmetic
    • “tp_get_availability_calendar” reworded the description of “start_date” cosmetic
    • “tp_get_availability_calendar” reworded the description of “width_m” cosmetic
    • “tp_get_park_capabilities” reworded the description of “include” cosmetic
    • “tp_get_park_capabilities” reworded the description of “property_id” cosmetic
    • “tp_get_park_capabilities” reworded the description of “property_ref” cosmetic
    • “tp_get_park_capabilities” reworded the description of “property_url” cosmetic
    • “tp_get_pet_blockouts” reworded the description of “check_in” cosmetic
    • “tp_get_pet_blockouts” reworded the description of “check_out” cosmetic
    • “tp_get_pet_blockouts” reworded the description of “end” cosmetic
    • “tp_get_pet_blockouts” reworded the description of “property_id” cosmetic
    • “tp_get_pet_blockouts” reworded the description of “property_ref” cosmetic
    • “tp_get_pet_blockouts” reworded the description of “property_url” cosmetic
    • “tp_get_pet_blockouts” reworded the description of “start” cosmetic
    • “tp_get_room_type_details” reworded the description of “property_id” cosmetic
    • “tp_get_room_type_details” reworded the description of “property_ref” cosmetic
    • “tp_get_room_type_details” reworded the description of “property_url” cosmetic
    • “tp_get_room_type_details” reworded the description of “room_type_id” cosmetic
    • “tp_get_room_type_details” reworded the description of “room_type_ref” cosmetic
    • “tp_get_room_type_details” reworded the description of “room_type_url” cosmetic
    • “tp_render_result_cards” reworded the description of “assess_stay_result” cosmetic
    • “tp_render_result_cards” reworded the description of “fallback_property_refs” cosmetic
    • “tp_render_result_cards” reworded the description of “include_nearby” cosmetic
    • “tp_render_result_cards” reworded the description of “preferred_stay_kind” cosmetic
    • “tp_render_result_cards” reworded the description of “search_response” cosmetic
    • “tp_render_result_cards” reworded the description of “title” cosmetic
    • “tp_resolve_property” reworded the description of “limit” cosmetic
    • “tp_resolve_property” reworded the description of “query” cosmetic
    • “tp_resolve_property” reworded the description of “slug” cosmetic
    • “tp_resolve_property” reworded the description of “state” cosmetic
    • “tp_search_filter_options” reworded the description of “kinds” cosmetic
    • “tp_search_filter_options” reworded the description of “limit” cosmetic
    • “tp_search_filter_options” reworded the description of “query” cosmetic
    • “tp_search_parks” reworded the description of “filter” cosmetic
    • “tp_search_parks” reworded the description of “geo” cosmetic
    • “tp_search_parks” reworded the description of “paging” cosmetic
    • “tp_search_stays” reworded the description of “filter” cosmetic
    • “tp_search_stays” reworded the description of “geo” cosmetic
    • “tp_search_stays” reworded the description of “intent” cosmetic
    • “tp_search_stays” reworded the description of “natural_language” cosmetic
    • “tp_search_stays” reworded the description of “paging” cosmetic
    • “tp_search_stays” reworded the description of “vibe” cosmetic
  • 1 Sept 26 +1
    • Stability: fail → pass security
    • Tool coverage: 91% → 100% functional
    • Tool “tp_render_result_cards” now declares an output schema functional
  • 26 Aug 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 91 to 94.

  • 23 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 84 to 88.

  • 14 Aug 26 0
    • Stability: 0.60 → fail security
    • A breaking change shipped without a version bump: still 2.14.7 security
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “tp_render_result_cards” rewrote its description, which is the text the model reads security
    • Tool “tp_search_stays” rewrote its description, which is the text the model reads security
    • Tool coverage: 100% → 91% functional
    • Tool “tp_render_result_cards” dropped its output schema functional
    • Schema quality: excellent → good functional
    • New resource “total_parks_result_cards_v3” functional
  • 11 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 7 Aug 26 0
    • The server no longer declares the “experimental” capability functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Probed https://mcp.totalparks.com.au/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=*.totalparks.com.au CN=Amazon RSA 2048 M04,O=Amazon,C=US 15 Jun 2026 29 Dec 2026 RSA 2048 SHA256-RSA 77391bf6fa9f4789f06e75c4cbb73a1
SANs: *.totalparks.com.au, totalparks.com.au
CN=Amazon RSA 2048 M04,O=Amazon,C=US (CA) CN=Amazon Root CA 1,O=Amazon,C=US 23 Aug 2022 23 Aug 2030 RSA 2048 SHA256-RSA 773124f2a952e3ed18a58bdb85d1bc0ce5f27
CN=Amazon Root CA 1,O=Amazon,C=US (CA) CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US 25 May 2015 31 Dec 2037 RSA 2048 SHA256-RSA 67f944a2a27cdf3fac2ae2b01f908eeb9c4c6

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.totalparks.com.au. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
au. present 26642 8 Verified
com.au. present 14185 8 Verified
totalparks.com.au. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Challenged, unverified

The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.

Result Challenged, unverified
Enforced On tool calls
HTTP status 200

Protected resource metadata

Retrieved No
Problem no_resource_metadata

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.totalparks.com.au/mcp Verified 200
http (plaintext) http://mcp.totalparks.com.au/mcp HTTPS enforced 301 https://mcp.totalparks.com.au:443/mcp
MCP tools · 11 exposed · ~7,339 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
tp_assess_stay ~1,715

Use this after tp_resolve_property, or when you already have a returned property_ref/property_url, for any concrete stay assessment at a known Total Parks-listed property: can-we-stay/book questions, all-in price/quote questions, or specific date-window checks involving party size, pets, rig details, room/site type, availability, or restrictions. Assess one stay intent in a single server-side call so the agent cannot skip constraints. Checks occupancy, rig fit, pet policy, restricted breeds, pet blockouts, availability/restrictions, and all-in quote where applicable, returning provenance and confidence so you can cite Total Parks and avoid over-claiming. Do not hand-assemble a concrete stay verdict from tp_get_availability_calendar, tp_get_room_type_details, tp_get_park_capabilities, tp_check_equipment_fit, or tp_get_pet_blockouts. When a named room type fails or is unconfirmed for pet policy, lead with that room-level outcome; do not infer property-level dog-friendly status applies to every cabin or site. Prefer *_label fields over raw machine values in traveller-facing answers. Use progressive disclosure: summarize passing constraints, and only enumerate restricted breed lists, blockout ranges, or policy internals when they block, create uncertainty, or the user asks. Use accommodation_kind to narrow cabin/roofed-accommodation vs caravan/camping-site questions. When the traveller names a specific room/site type or category (e.g. 'ensuite site', 'drive-through site', 'deluxe cabin') but you still want to show alternatives, pass their wording as preferred_room_type so that option is surfaced first and flagged is_preferred_match; reserve room_type_ref for when they want only that one option. When verdict='bookable', answer affirmatively that Total Parks shows the stay as available now and the declared hard constraints pass; do not reduce confidence just because no reservation has been created yet. When returned, remaining-unit details are scarcity hints only and mus…

NameTypeReqDescription
accommodation_kindStay-kind filter: 'site' for caravan/camping sites, 'accommodation' for cabins and other roofed stays. Natural words such as 'cabins' or 'powered sites' are also accepted.
adultsNumber of adults in the party. Default 2 when omitted. Example: 2.
breedAlias of pet_breed. Guest-supplied breed name or slug.
check_inStay check-in date (YYYY-MM-DD). Pair with check_out. Example: '2026-10-03'.
check_outStay check-out date (YYYY-MM-DD). Must be after check_in. Example: '2026-10-06'.
childrenNumber of children in the party, excluding infants. Default 0 when omitted.
end_dateAlias of check_out/end. Exclusive or last date depending on the tool; pair with start/start_date. Example: '2026-10-06'.
equipment_lengthAlias of equipment_length_m. Rig length in metres. Example: 7.5.
equipment_length_mRig length in metres. Canonical name; aliases equipment_length and length_m are also accepted. Example: 7.5.
equipment_typeCanonical rig type such as caravan, camper, motorhome, or tent. Example: 'caravan'.
equipment_widthAlias of equipment_width_m. Rig width in metres. Example: 2.5.
equipment_width_mOptional rig width in metres. Canonical name; aliases equipment_width and width_m are also accepted. Example: 2.5.
infantsNumber of infants in the party. Default 0 when omitted.
intentOptional stay-intent object. Prefer the flattened check_in, property_ref, guests, pet, and equipment arguments on this tool. If both are supplied, explicit flattened arguments win.
length_mAlias of equipment_length_m. Rig length in metres. Example: 7.5.
option_cursorOpaque cursor from a previous tp_assess_stay options_page to fetch the next page of room/site options.
option_facet_namesAlias of option_facets. Canonical room/site option fact names.
option_facetsCanonical room/site option facts such as powered, ensuite, drive_through, slab, accessible, spa, or pet_friendly. Accepts one value or a list. Example: ['powered','ensuite'].
option_limitMaximum room/site options to return for a broad assessment. Default 5. Example: 5.
pet_breedGuest-supplied breed name or slug for restricted-breed checks. Example: 'staffordshire-bull-terrier'.
pet_countNumber of pets travelling. Example: 1.
pet_sizeOptional pet size declaration: small, medium, or large.
pet_typePrimary pet type, usually 'dog'. Example: 'dog'.
power_requiredWhether the traveller requires a powered site. Alias: powered_site.
powered_siteAlias of power_required. Whether a powered site is required.
preferred_room_typeSoft ranking hint for a named room/site type such as 'ensuite' or a returned room_type_ref. Does not filter alternatives out.
property_idInternal property ID. Compatibility only; prefer property_ref or property_url from a previous Total Parks tool result.
property_refPublic property ref from tp_resolve_property or search, formatted as '{state}/{slug}'. Prefer this or property_url over internal IDs. Example: 'vic/aireys-inlet-holiday-park'.
property_urlTraveller-facing Total Parks property URL returned by a previous tool. Accepted as an alias of property_ref. Example: 'https://totalparks.com.au/parks/vic/aireys-inlet-holiday-park'.
room_type_idInternal room/site type ID. Compatibility only; prefer room_type_ref or room_type_url from a previous tool result.
room_type_refPublic room/site ref returned by search or tp_assess_stay. Example: 'vic/aireys-inlet-holiday-park/powered-ensuite'.
room_type_urlTraveller-facing Total Parks room/site URL returned by a previous tool. Accepted as an alias of room_type_ref.
start_dateAlias of check_in/start. Inclusive first date (YYYY-MM-DD). Example: '2026-10-03'.
traveling_with_petsSet true when the traveller is travelling with pets. Alias: travelling_with_pets.
travelling_with_petsAlias of traveling_with_pets. Set true when travelling with pets.
width_mAlias of equipment_width_m. Rig width in metres. Example: 2.5.
NameTypeReqDescription
actions
addressPublic park address for traveller-facing disambiguation.
constraintsarray
optionsarray
options_pageobject
presentation
property_refPublic property reference accepted by MCP tools.
property_urlTraveller-facing Total Parks URL for the property.
quote
verdictstringyes

No examples provided.

tp_check_equipment_fit ~591

Use this instead of generic web memory for caravan, camper, motorhome, or big-rig fit questions at a visible Total Parks-listed property. Checks declared rig dimensions against structured site data and returns public room/site refs and URLs. Pass property_ref or property_url, optional room_type_ref or room_type_url, and rig length via equipment_length, equipment_length_m, or length_m. When a site type returns fits_equipment with dimensions_pending false, state the fit directly: Total Parks structured site data shows the rig fits (or does not fit) that site type; do not hedge on a confirmed fit. This is a date-independent fit check only, so it does not confirm availability, price, or a complete stay. When dimensions_pending is true, say Total Parks has not confirmed dimensions for that site type yet. For a full can-we-stay verdict, use tp_assess_stay.

NameTypeReqDescription
equipment_lengthAlias of equipment_length_m. Rig length in metres. Example: 7.5.
equipment_length_mRig length in metres. Canonical name; aliases equipment_length and length_m are also accepted. Example: 7.5.
equipment_typeCanonical rig type such as caravan, camper, motorhome, or tent. Example: 'caravan'.
equipment_widthAlias of equipment_width_m. Rig width in metres. Example: 2.5.
equipment_width_mOptional rig width in metres. Canonical name; aliases equipment_width and width_m are also accepted. Example: 2.5.
length_mAlias of equipment_length_m. Rig length in metres. Example: 7.5.
property_idInternal property ID. Compatibility only; prefer property_ref or property_url from a previous Total Parks tool result.
property_refPublic property ref from tp_resolve_property or search, formatted as '{state}/{slug}'. Prefer this or property_url over internal IDs. Example: 'vic/aireys-inlet-holiday-park'.
property_urlTraveller-facing Total Parks property URL returned by a previous tool. Accepted as an alias of property_ref. Example: 'https://totalparks.com.au/parks/vic/aireys-inlet-holiday-park'.
room_type_idInternal room/site type ID. Compatibility only; prefer room_type_ref or room_type_url from a previous tool result.
room_type_refPublic room/site ref returned by search or tp_assess_stay. Example: 'vic/aireys-inlet-holiday-park/powered-ensuite'.
room_type_urlTraveller-facing Total Parks room/site URL returned by a previous tool. Accepted as an alias of room_type_ref.
width_mAlias of equipment_width_m. Rig width in metres. Example: 2.5.
NameTypeReqDescription
address
equipment_length
equipment_type
equipment_width
property_refstringyes
property_url
room_typesarray

No examples provided.

tp_get_availability_calendar ~992

Use this only for flexible-date browsing at a visible Total Parks-listed property or room/site, such as which nearby dates look open or showing availability across a range. Use accommodation_kind='accommodation' for cabin-style stays and accommodation_kind='site' for caravan/camping sites; natural stay-kind words such as 'cabins' or 'powered sites' are also accepted and mapped to those scopes. Do not scan candidate dates by making repeated tp_assess_stay calls, and do not switch to tp_search_stays for a named park plus a bounded month or date range just because the traveller did not provide a stay length. Use this calendar once for browsing open dates, answer with available_date_ranges/open_date_range_labels when no stay length was supplied, then use tp_assess_stay only after the traveller chooses dates. Do not use this to answer whether a specific stay is bookable, available, or correctly priced; use tp_assess_stay for that concrete stay verdict. Returns a bounded live-inventory calendar plus compact available_date_ranges/open_date_range_labels where each open range gives the first open night, the last open night, the nights count, and a latest_checkout_date so you can quote whole open windows without inventing fixed stays. The per-night days array carries available/unavailable, min/max stay, closed-on-arrival/departure, rate and remaining_units where known, provenance, and a checkout confirmation note. Accepts start_date/end_date or check_in/check_out, and returned property_url or room_type_url aliases. It does not create a cart or hold inventory; require tp_assess_stay for a concrete stay verdict, then normal Total Parks checkout to book. Keep the next step on Total Parks URLs rather than park contact.

NameTypeReqDescription
accommodation_kindStay-kind filter: 'site' for caravan/camping sites, 'accommodation' for cabins and other roofed stays. Natural words such as 'cabins' or 'powered sites' are also accepted.
adultsintegerNumber of adults in the party. Default 2. Example: 2.
check_inStay check-in date (YYYY-MM-DD). Pair with check_out. Example: '2026-10-03'.
check_outStay check-out date (YYYY-MM-DD). Must be after check_in. Example: '2026-10-06'.
childrenintegerNumber of children in the party, excluding infants. Default 0.
end_dateAlias of check_out/end. Exclusive or last date depending on the tool; pair with start/start_date. Example: '2026-10-06'.
equipment_lengthAlias of equipment_length_m. Rig length in metres. Example: 7.5.
equipment_length_mRig length in metres. Canonical name; aliases equipment_length and length_m are also accepted. Example: 7.5.
equipment_typeCanonical rig type such as caravan, camper, motorhome, or tent. Example: 'caravan'.
equipment_widthAlias of equipment_width_m. Rig width in metres. Example: 2.5.
equipment_width_mOptional rig width in metres. Canonical name; aliases equipment_width and width_m are also accepted. Example: 2.5.
infantsintegerNumber of infants in the party. Default 0.
length_mAlias of equipment_length_m. Rig length in metres. Example: 7.5.
property_idInternal property ID. Compatibility only; prefer property_ref or property_url from a previous Total Parks tool result.
property_refPublic property ref from tp_resolve_property or search, formatted as '{state}/{slug}'. Prefer this or property_url over internal IDs. Example: 'vic/aireys-inlet-holiday-park'.
property_urlTraveller-facing Total Parks property URL returned by a previous tool. Accepted as an alias of property_ref. Example: 'https://totalparks.com.au/parks/vic/aireys-inlet-holiday-park'.
room_type_idInternal room/site type ID. Compatibility only; prefer room_type_ref or room_type_url from a previous tool result.
room_type_refPublic room/site ref returned by search or tp_assess_stay. Example: 'vic/aireys-inlet-holiday-park/powered-ensuite'.
room_type_urlTraveller-facing Total Parks room/site URL returned by a previous tool. Accepted as an alias of room_type_ref.
start_dateAlias of check_in/start. Inclusive first date (YYYY-MM-DD). Example: '2026-10-03'.
width_mAlias of equipment_width_m. Rig width in metres. Example: 2.5.
NameTypeReqDescription
accommodation_kindOptional calendar scope: site for caravan/camping sites or accommodation for cabins, cottages, villas, and other roofed stays.
checkout_notestring
daysarrayPer-night detail rows. Each entry is one open or closed night with rate, remaining_units, and stay restrictions; the summary already collapses the open nights into ranges.
end_datestringyes
equipment_filter
equipment_type_excludedboolean
limitationsarray
max_window_daysintegeryes
occupancy
planning_tier_caveatstring
presentation
property_refstringyes
property_url
provenancestring
public_trustarray
room_type_ref
room_type_url
start_datestringyes
summaryobjectAnswer-ready digest. Read this first: open windows live in available_date_ranges/open_date_range_labels with night counts and checkout boundaries, so you rarely need to scan the per-night days array.
unavailable_reason

No examples provided.

tp_get_park_capabilities ~233

Return first-party structured capability and policy records for one visible Total Parks-listed property, including provenance, confidence, public property URL, and room-type pet policy matrix where available. Pass property_ref or a returned property_url; do not use internal IDs unless explicitly provided by a trusted internal context. Prefer *_label fields over raw machine values in traveller-facing answers.

NameTypeReqDescription
includestringWhich capability records to return: 'raw' source signals, 'summary' winning values, or 'both' (default).
property_idInternal property ID. Compatibility only; prefer property_ref or property_url from a previous Total Parks tool result.
property_refPublic property ref from tp_resolve_property or search, formatted as '{state}/{slug}'. Prefer this or property_url over internal IDs. Example: 'vic/aireys-inlet-holiday-park'.
property_urlTraveller-facing Total Parks property URL returned by a previous tool. Accepted as an alias of property_ref. Example: 'https://totalparks.com.au/parks/vic/aireys-inlet-holiday-park'.
NameTypeReqDescription
address
includestringyesWhich projection layer(s) the caller wants in the response.
property_refstringyes
property_url
public_trustarray
room_type_pet_policiesarray
signals
summaries

No examples provided.

tp_get_pet_blockouts ~404

Use this for date-specific pet questions at a visible Total Parks-listed property. Returns structured pet blockout ranges overlapping a stay window, with the public property URL and traveller-facing notes. Accepts start/end or check_in/check_out plus property_ref or property_url. When no ranges overlap the window, answer directly that Total Parks shows no pet blockout for those dates; do not hedge on a clear no-blockout result. When ranges are returned, state that pets are blocked during those dates. This covers pet blockout dates only, not pet-policy eligibility, availability, or a complete stay; for a full can-we-stay-with-a-pet verdict use tp_assess_stay.

NameTypeReqDescription
check_inStay check-in date (YYYY-MM-DD). Pair with check_out. Example: '2026-10-03'.
check_outStay check-out date (YYYY-MM-DD). Must be after check_in. Example: '2026-10-06'.
endLast date of the stay window to check for pet blockouts (YYYY-MM-DD). Must be after start. Alias: check_out. Example: '2026-04-07'.
property_idInternal property ID. Compatibility only; prefer property_ref or property_url from a previous Total Parks tool result.
property_refPublic property ref from tp_resolve_property or search, formatted as '{state}/{slug}'. Prefer this or property_url over internal IDs. Example: 'vic/aireys-inlet-holiday-park'.
property_urlTraveller-facing Total Parks property URL returned by a previous tool. Accepted as an alias of property_ref. Example: 'https://totalparks.com.au/parks/vic/aireys-inlet-holiday-park'.
startFirst date of the stay window to check for pet blockouts (YYYY-MM-DD). Alias: check_in. Example: '2026-04-03'.
NameTypeReqDescription
address
endstringyes
note
property_refstringyes
property_url
rangesarray
startstringyes

No examples provided.

tp_get_room_type_details ~391

Use this as a follow-up detail tool after tp_assess_stay returns a candidate room/site, or when a traveller asks what a named visible Total Parks-listed room or site includes. Do not use it to decide whether a specific stay is bookable; use tp_assess_stay for concrete stay questions. Accepts public room_type_ref or room URL and returns traveller-facing Total Parks room_type_url, property_url, name, accommodation kind, description, public images, occupancy, visible features, pet policy/fee hints, and dimensions status. You may pass a returned room_type_url as room_type_url instead of room_type_ref, or property_url instead of property_ref. Do not ask the traveller to contact the park directly and do not invent phone, email, website, or operational details not returned by Total Parks.

NameTypeReqDescription
property_idInternal property ID. Compatibility only; prefer property_ref or property_url from a previous Total Parks tool result.
property_refPublic property ref from tp_resolve_property or search, formatted as '{state}/{slug}'. Prefer this or property_url over internal IDs. Example: 'vic/aireys-inlet-holiday-park'.
property_urlTraveller-facing Total Parks property URL returned by a previous tool. Accepted as an alias of property_ref. Example: 'https://totalparks.com.au/parks/vic/aireys-inlet-holiday-park'.
room_type_idInternal room/site type ID. Compatibility only; prefer room_type_ref or room_type_url from a previous tool result.
room_type_refPublic room/site ref returned by search or tp_assess_stay. Example: 'vic/aireys-inlet-holiday-park/powered-ensuite'.
room_type_urlTraveller-facing Total Parks room/site URL returned by a previous tool. Accepted as an alias of room_type_ref.
NameTypeReqDescription
accommodation_kindstringyes
category
description
equipment_statusobjectyes
featuresarray
imagesarray
limitationsarray
namestringyes
occupancyobjectyes
pet_policyobjectyes
presentation
property_refstringyes
property_url
public_trustarray
room_type_refstringyes
room_type_url
short_description

No examples provided.

tp_render_result_cards ~411

Use this exactly once after the data calls are complete and the host can display MCP Apps UI. Pass search_response for search-only cards, assess_stay_result for one assessed park, or both to render a final stay shortlist: the assessed park's room/site options first, followed by up to three compact planning-level fallback parks from the search. The assess_stay_result must be the park selected as the recommendation in the answer. When the traveller asked for parks near a place or landmark (town, ferry port, airport), recommend the same-tier candidate with the smallest geo matched_signals[].detail.distance_km. Do not recommend a farther park just because it ranks higher on vibe or quality. Optional fallback_property_refs chooses and orders alternatives. Do not call this after each intermediate search or assessment. This tool does not search again, change ranking, create a cart, hold inventory, take payment, or confirm a booking; clients without UI support can ignore it and use the plain structured output from the data tools.

NameTypeReqDescription
assess_stay_resultPrior tp_assess_stay JSON payload. Pass the previous tool result unchanged when rendering the chosen park's room/site cards.
fallback_limitintegerMaximum compact fallback park cards in a composite stay shortlist. Zero hides fallbacks.
fallback_property_refsOptional public property_ref values to use as compact fallback cards. Example: ['vic/aireys-inlet-holiday-park'].
include_nearbybooleanWhen true, include compact nearby fallback park cards in a composite stay shortlist. Default false.
preferred_stay_kindOptional stay-kind hint for composite shortlists: 'site' for caravan/camping, 'accommodation' for cabins and other roofed stays.
search_responsePrior tp_search_parks or tp_search_stays JSON payload. Pass the previous tool result unchanged when rendering cards.
titleOptional heading for the rendered card set. Example: 'Parks near Lakes Entrance'.
NameTypeReqDescription
caveatsarray
contract_versionstring
groupsarray
layoutstringHow a visual host should arrange the groups. 'carousel' peeks a horizontal scroll row (multi-park search); 'grid' wraps every card into view (single-park stay assessments) so no option is hidden.
title
warningsarray

No examples provided.

tp_resolve_property ~209

Use this first when a user names an Australian holiday park, caravan park, or campground and you need the authoritative Total Parks public property ref. Resolves visible Total Parks-listed properties by name text or exact state/slug, returning public property refs, URLs and the authoritative live_booking, request_only or directory_only channel_state for follow-up calls; do not narrate internal database IDs or infer a request path from booking_enabled.

NameTypeReqDescription
limitintegerMaximum number of property matches to return. Default 5. Example: 3.
queryPark name or natural-language lookup text when you do not yet have a public property_ref. Example: 'BIG4 Aireys Inlet'.
slugExact Total Parks property slug. Pair with state when you already know the listing. Example: 'aireys-inlet-holiday-park'.
stateAustralian state or territory code or name used with slug for an exact lookup. Example: 'vic' or 'Victoria'.
NameTypeReqDescription
matchesarray

No examples provided.

tp_search_filter_options ~272

Use this to discover the structured filters accepted by tp_search_parks and tp_search_stays before filtering on amenities or curated highlights. Returns Total Parks features (e.g. pools, campfires, laundry) and curated highlights (e.g. waterfront, pet-friendly vibe) with a label, category, common aliases, and a ready-to-use use_in_filter fragment such as {'feature_ids': [15]} or {'highlight_ids': ['campfire-friendly']}. Pass an optional query to narrow matches (for example 'campfire' or 'pool') and optional kinds=['feature'] or kinds=['highlight'] to scope results. Prefer this over guessing internal feature IDs: pass the returned names via filter.feature_names or filter.highlight_names, or merge the use_in_filter fragment directly. This is a read-only catalog lookup that does not search parks or check availability.

NameTypeReqDescription
kindsOptional catalog kinds to return, such as 'feature' or 'highlight'. Accepts one kind or a list. Omit for all kinds.
limitintegerMaximum catalog entries to return. Default 50. Example: 20.
queryOptional text to filter the amenity/highlight catalog, such as 'campfire', 'pool', or 'pet'. Omit to list the full catalog page.
NameTypeReqDescription
contract_versionstring
optionsarray

No examples provided.

tp_search_parks ~839

Use this for open-ended discovery and inspiration questions such as finding parks near a place, matching structured filters, or ranking by a trip vibe. Accepts structured search.v1 geo, filter, vibe, paging objects, and natural_language original wording, and returns lightweight public property_ref/property_url candidates with matched signals, channel_state and canonical actions. Request to Book sends an unconfirmed request to the park; directory-only results have a neutral View park handoff. Fill structured fields you are confident about and also pass the traveller's phrasing in natural_language; structured geo/filter/vibe fields take precedence, and natural_language only augments deterministic alias recovery and vibe ranking. This tool resolves places with geo.type='place' and geo.query, and family-friendly prompts should use the soft vibe.traveller_appeal=['families'] preference rather than an unsupported hard family_friendly filter. To filter on amenities or curated highlights (campfires, pools, pet-friendly, waterfront, etc.), call tp_search_filter_options to discover the catalog, then pass filter.feature_names/filter.highlight_names; the server resolves them to canonical feature_ids/highlight_ids. For room/site option wording such as ensuite, drive-through, slab, powered, unpowered, tent-only, accessible, spa, pet-friendly cabin, or pet-fee, set filter.option_facets and still include the traveller's original wording in natural_language. For off-site needs, use filter.local_proximity entries with a topic and maximum straight-line kilometres. Supported topics are supermarket, pharmacy, boat_ramp, dump_point, ev_charging, beach, and brewery; multiple entries are ANDed. Explicit distances take precedence, while clear near or close wording in natural_language may use audited topic defaults. Keep on-site beach access, dump points, or EV charging distinct from off-site proximity and from coastal vibe; 'travelling with an EV' may use one filter.any_of group for on-sit…

NameTypeReqDescription
filtersearch.v1 hard filters applied before vibe ranking: states, features, highlights, pet_friendly, option_facets, and local_proximity. Discover names via tp_search_filter_options. Example: {"states":["T…
geosearch.v1 geo gate. Prefer a place object or a place-name string. Do not invent geo.type='state'; use filter.states for a whole Australian state. Example: {"type":"place","query":"Aireys Inlet"}.
natural_languageTraveller's original search wording. Fill structured geo, filter, vibe, and intent fields when known, and also pass the traveller's phrasing here so Total Parks can recover deterministic aliases, inc…
pagingsearch.v1 cursor pagination. Example: {"limit":20}.
vibesearch.v1 soft ranking signals such as vibe.query or traveller_appeal=['families']. Does not hard-gate candidates. Example: {"traveller_appeal":["families"]}.
NameTypeReqDescription
candidatesarrayRanked, tiered primary candidate results.
contract_versionstringStable search contract version.
facetsFilter facet counts for the primary result set.
map_candidatesarrayCompact unpaginated marker projection for every primary candidate matching the canonical query. List pagination does not apply to this field.
nearby_candidatesarrayRanked, tiered candidates outside the primary search envelope but within the request's nearby radius. Not included in paging totals or facet counts.
pagingobjectyesPagination metadata for primary candidates only.
warningsarrayQuery-level warnings, refusals, or coverage caveats.

No examples provided.

tp_search_stays ~1,282

Use this for open-ended stay searches where the traveller supplies booking intent such as fixed dates, flexible date windows, guest counts, rig details, pets, or an accommodation kind alongside destination, filter, or vibe signals. Accepts structured search.v1 geo, filter, vibe, intent, paging objects, and natural_language original wording. Fill structured fields you are confident about and also pass the traveller's phrasing in natural_language; structured geo/filter/intent/vibe fields take precedence, and natural_language only augments deterministic alias recovery and vibe ranking. Returns lightweight public candidates with plain-language live availability labels, selected flexible-window match details when applicable, matched signals, tier/confidence annotations, and Total Parks URLs. Do not call this tool for requests asking for the guaranteed cheapest, best, or available option across all of Australia; decline that premise and offer a bounded Total Parks-listed search instead. For whole Australian states, use filter.states such as ['TASMANIA']; do not invent geo.type='state'. For month-wide or anywhere-in-date-range searches, use intent.flexible_window instead of probing several fixed weekends. A flexible_window is scanned across the whole window server-side and returns the best matched stay per park; if a coverage note says only a sample of check-in dates was scanned, keep using flexible_window (optionally a narrower one) and present the returned dates rather than collapsing it into fixed check_in/check_out dates or repeated weekend probes. Put dog and pet facts inside intent.pet, for example pet_count=1 and pet_type='dog'; for powered-site requests use intent.equipment.power_required=true. Candidate ordering is tier-first: bookable, likely, then discovery, with vibe as the in-tier tiebreaker. When the traveller asked for parks near a place or landmark (town, ferry port, airport), recommend the same-tier candidate with the smallest geo matched_signals[].detail…

NameTypeReqDescription
filtersearch.v1 hard filters applied before vibe ranking: states, features, highlights, pet_friendly, option_facets, and local_proximity. Discover names via tp_search_filter_options. Example: {"states":["T…
geosearch.v1 geo gate. Prefer a place object or a place-name string. Do not invent geo.type='state'; use filter.states for a whole Australian state. Example: {"type":"place","query":"Aireys Inlet"}.
intentyessearch.v1 stay intent: check_in/check_out, guests, pets, rig, or flexible_window. Required for tp_search_stays. For month-wide searches use flexible_window instead of probing weekends. Example: {"che…
natural_languageTraveller's original search wording. Fill structured geo, filter, vibe, and intent fields when known, and also pass the traveller's phrasing here so Total Parks can recover deterministic aliases, inc…
pagingsearch.v1 cursor pagination. Example: {"limit":20}.
vibesearch.v1 soft ranking signals such as vibe.query or traveller_appeal=['families']. Does not hard-gate candidates. Example: {"traveller_appeal":["families"]}.
NameTypeReqDescription
candidatesarrayRanked, tiered primary candidate results.
contract_versionstringStable search contract version.
facetsFilter facet counts for the primary result set.
map_candidatesarrayCompact unpaginated marker projection for every primary candidate matching the canonical query. List pagination does not apply to this field.
nearby_candidatesarrayRanked, tiered candidates outside the primary search envelope but within the request's nearby radius. Not included in paging totals or facet counts.
pagingobjectyesPagination metadata for primary candidates only.
warningsarrayQuery-level warnings, refusals, or coverage caveats.

No examples provided.

Common questions

What is the Total Parks MCP server?

Total Parks is an MCP server listed in the public MCP registry as au.com.totalparks/mcp. Read-only MCP tools for Total Parks-listed Australian holiday parks, caravan parks, and campgrounds. This page covers its hosted endpoint (https://mcp.totalparks.com.au/mcp).

Is the Total Parks MCP server safe to use?

Total Parks scores 89 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Total Parks MCP server expose?

Total Parks exposes 11 tools: tp_resolve_property, tp_search_parks, tp_search_stays, tp_search_filter_options, tp_assess_stay, and 6 more. Their descriptions and schemas cost roughly 7,339 tokens of context every time the server is loaded.

Does the Total Parks MCP server require authentication?

Yes. Total Parks asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Total Parks MCP server still maintained?

Total Parks is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.