Fixed-price quotes and bookings for private airport transfers: Gold Coast, Brisbane, Byron Bay.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Whether CGC can take a pre-booked pickup at a given date and time. Transfers run 24/7 by pre-booking except Christmas Day (25 December). Standard rates apply 6am–9pm AEST; pickups between 9pm and 6am carry an after-hours fee, shown in the quote before booking. Same-day requests should phone 0416 131 285. Christmas Day and the booking engine's blackout windows are closed (available:false with the closure message); some windows close only some vehicles. Travel within 12 hours needs direct contact.
Travel date, YYYY-MM-DD (Australia/Brisbane)
Pickup time, HH:MM 24h
Passenger count, 1-14
Tool list last changed Oct 25, 2026.
Whether CGC can take a pre-booked pickup at a given date and time. Transfers run 24/7 by pre-booking except Christmas Day (25 December). Standard rates apply 6am–9pm AEST; pickups between 9pm and 6am carry an after-hours fee, shown in the quote before booking. Same-day requests should phone 0416 131 285. Christmas Day and the booking engine's blackout windows are closed (available:false with the closure message); some windows close only some vehicles. Travel within 12 hours needs direct contact.
| Argument | Type | Description |
|---|---|---|
| pax | integer | Passenger count, 1-14 |
| date* | string | Travel date, YYYY-MM-DD (Australia/Brisbane) |
| time* | string | Pickup time, HH:MM 24h |
{
"type": "object",
"required": [
"date",
"time"
],
"properties": {
"pax": {
"type": "integer",
"description": "Passenger count, 1-14"
},
"date": {
"type": "string",
"description": "Travel date, YYYY-MM-DD (Australia/Brisbane)"
},
"time": {
"type": "string",
"description": "Pickup time, HH:MM 24h"
}
}
}Exact fixed prices for a transfer between two locations, straight from the live booking engine. Per vehicle, AUD, GST and tolls included, locked at booking, no surge. If the route has no fixed price the response says so — never estimate a figure yourself. Every quote without stops includes book_url (and one per vehicle in book_urls): a pre-filled booking page the customer completes, accepts terms and pays on. Give the customer that link exactly as returned, utm tags included, so the booking is attributed to an AI assistant; pass date, time, passengers, return leg, luggage, child seats and flight here so the link carries them. With a date, closures are checked first: on Christmas Day (25 December) or inside a blackout window the response is available:false with the closure message and no prices. fares_aud are always ONE-WAY fares; with return_date the quote adds return_totals_aud, the whole return trip per vehicle (outbound plus the return leg at the booking form's return discount) — quote that for a return, never the one-way fare. If the return starts or ends somewhere else (in to one hotel, back from another), add return_pickup and/or return_dropoff: each trip is then priced at its own fare and the return discount comes off the cheaper trip, exactly as the booking form does. Stops on the way (up to 4 each way): add stops, and return_stops for the way back on a return. The booking form adds the detour through them, charged by the extra distance and the same for every vehicle, and the quote gives totals_aud (one way) or return_totals_aud (a return) with the stops in: quote those. A quote with stops has no book_url (the booking form's links can't carry stops yet): book it with request_booking.
| Argument | Type | Description |
|---|---|---|
| pax | integer | Total passengers including children. With pax the quote lists only the vehicles that take the whole group, as the booking engine does: groups of 8 or more get the two-vehicle options and the VW Crafter (up to 11 passengers, one van for the whole group). |
| bags |
CGC Airport Transfers business facts: contact, hours, fleet, inclusions and policies. Private pre-booked transfers, not a taxi or rideshare.
No arguments.
{
"type": "object",
"properties": {}
}Lodge a booking. On success this returns a secure checkout_url: give it to the customer to pay directly (their card, never through you). No payment is ever taken through this tool itself. A pickup on a closed day or inside a blackout window is refused (accepted:false) before anything is lodged. Stops on the way (up to 4 each way): stops, and return_stops on a return, the same as the get_quote you quoted; the booking is made at the booking form's own total with the stops in it. Requires agent_key (contact [email protected] to obtain one).
| Argument | Type | Description |
|---|---|---|
| pax* | integer | |
| date* | string | YYYY-MM-DD |
| name* | string | Passenger name |
| time* | string | HH:MM 24h |
| email* | string | Passenger email (pay link goes here) |
| notes | string | |
| phone* | string | Passenger phone |
| stops | array | Optional: stops on the way, in order, up to 4, each a street address or a hotel or venue name with its suburb; use the same stops as the get_quote you quoted. One way, this is the booking form's Multi-stop; on a return these are the stops on the way there (its Multi-stop return). The booking carries the stops and is made at the booking form's own total. |
| integer |
| Large bags |
| date | string | Travel date YYYY-MM-DD (goes into book_url; closures are checked) |
| time | string | Pickup time HH:MM, 24h, Queensland time (goes into book_url) |
| carry | integer | Carry-on bags |
| seats | object | Child seats as {index: qty}; index 0 rear-facing (0-3y), 1 forward-facing (6m-3y), 2 harnessed booster (3-6y), 3 booster with adult belt (6y+). $35 each. |
| stops | array | Optional: stops on the way (drop someone off, a shop, a second hotel), in order, up to 4. Each a street address (number and street, suburb) or a hotel or venue name with its suburb, never just a suburb. The booking form adds the detour through them, charged by the extra distance and the same for every vehicle. On a return these are the stops on the way there. Leave out for none. |
| flight | string | Flight number, e.g. JQ430 |
| pickup* | string | Pickup suburb, hotel or airport |
| dropoff* | string | Drop-off suburb, hotel or airport |
| vehicle | string | Chosen vehicle: sedan | carnival | carnival_rav4 | two_carnivals | crafter | crafter_trailer (sets book_url; book_urls has all) |
| oversized | boolean | Oversized luggage (surfboards, golf clubs, prams) |
| return_date | string | Return leg date YYYY-MM-DD, if a return: adds return_totals_aud (the whole return trip per vehicle) |
| return_time | string | Return leg pickup time HH:MM |
| return_stops | array | Optional, with return_date: stops on the way back, in order, up to 4, same rules as stops. Not copied from stops: leave out for no stops on the way back. |
| return_pickup | string | Optional, with return_date: where the return trip picks up, if not the first trip's drop-off (e.g. a different hotel). Defaults to the first trip reversed. |
| return_dropoff | string | Optional, with return_date: where the return trip drops off, if not the first trip's pickup. Defaults to the first trip reversed. |
{
"type": "object",
"required": [
"pickup",
"dropoff"
],
"properties": {
"pax": {
"type": "integer",
"description": "Total passengers including children. With pax the quote lists only the vehicles that take the whole group, as the booking engine does: groups of 8 or more get the two-vehicle options and the VW Crafter (up to 11 passengers, one van for the whole group)."
},
"bags": {
"type": "integer",
"description": "Large bags"
},
"date": {
"type": "string",
"description": "Travel date YYYY-MM-DD (goes into book_url; closures are checked)"
},
"time": {
"type": "string",
"description": "Pickup time HH:MM, 24h, Queensland time (goes into book_url)"
},
"carry": {
"type": "integer",
"description": "Carry-on bags"
},
"seats": {
"type": "object",
"description": "Child seats as {index: qty}; index 0 rear-facing (0-3y), 1 forward-facing (6m-3y), 2 harnessed booster (3-6y), 3 booster with adult belt (6y+). $35 each."
},
"stops": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 4,
"description": "Optional: stops on the way (drop someone off, a shop, a second hotel), in order, up to 4. Each a street address (number and street, suburb) or a hotel or venue name with its suburb, never just a suburb. The booking form adds the detour through them, charged by the extra distance and the same for every vehicle. On a return these are the stops on the way there. Leave out for none."
},
"flight": {
"type": "string",
"description": "Flight number, e.g. JQ430"
},
"pickup": {
"type": "string",
"description": "Pickup suburb, hotel or airport"
},
"dropoff": {
"type": "string",
"description": "Drop-off suburb, hotel or airport"
},
"vehicle": {
"type": "string",
"description": "Chosen vehicle: sedan | carnival | carnival_rav4 | two_carnivals | crafter | crafter_trailer (sets book_url; book_urls has all)"
},
"oversized": {
"type": "boolean",
"description": "Oversized luggage (surfboards, golf clubs, prams)"
},
"return_date": {
"type": "string",
"description": "Return leg date YYYY-MM-DD, if a return: adds return_totals_aud (the whole return trip per vehicle)"
},
"return_time": {
"type": "string",
"description": "Return leg pickup time HH:MM"
},
"return_stops": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 4,
"description": "Optional, with return_date: stops on the way back, in order, up to 4, same rules as stops. Not copied from stops: leave out for no stops on the way back."
},
"return_pickup": {
"type": "string",
"description": "Optional, with return_date: where the return trip picks up, if not the first trip's drop-off (e.g. a different hotel). Defaults to the first trip reversed."
},
"return_dropoff": {
"type": "string",
"description": "Optional, with return_date: where the return trip drops off, if not the first trip's pickup. Defaults to the first trip reversed."
}
}
}| flight | string |
| pickup* | string |
| dropoff* | string |
| luggage | integer | Optional. Large suitcases. If left out, assumed to be what the chosen vehicle holds (never more than one per passenger). |
| vehicle | string | Vehicle choice; defaults to sedan. crafter = VW Crafter (up to 11 passengers), one van for a group too big for one Carnival; crafter-trailer = the same van towing a luggage trailer, for a big group with more luggage than the van takes (get_quote with pax gives the live seat, child-seat and luggage limits). Any other value is refused (accepted:false, "Unknown vehicle"), never booked as a different vehicle. |
| carry_on | integer | Optional. Carry-on bags. |
| platform | string | Which channel this booking comes from (attribution) |
| seat_qty | object | Child seats by type, priced into the booking and pay link ($35 each): {seat index: quantity}. Indices follow the booking form list: 0 rear-facing 0-3yrs, 1 forward-facing 6mths-3yrs, 2 harnessed booster 3-6yrs, 3 booster with adult seatbelt 6yrs+. |
| agent_key* | string | Issued gateway key |
| oversized | boolean | Optional. Surfboard, golf bag, bike box, full-size pram or similar (takes the space of three large bags, so sedans drop out). |
| meet_greet | boolean | Optional. Add the Brisbane Airport in-terminal meet and greet ($49). Gold Coast Airport pickups include it already. |
| child_seats | integer | Child seats required ($35 each, supplied and fitted). Prefer seat_qty, which prices the seats into the booking and pay link. |
| return_date | string | Optional, YYYY-MM-DD. With return_time, books the return leg on the same reservation (5% return discount applies). |
| return_time | string | Optional, HH:MM 24h, in 5-minute steps. Required if return_date is given. |
| return_stops | array | Optional, only with return_date and return_time: stops on the way back, in order, up to 4, same rules as stops. Not copied from stops: leave out for none. |
| return_pickup | string | Optional, only with return_date and return_time: where the return trip picks up, if not the first trip's drop-off (in to one hotel, back from another). Defaults to the first trip reversed. With different return addresses each trip is priced at its own fare and the return discount comes off the cheaper trip, as on the booking form; use the same return_pickup and return_dropoff as the get_quote you quoted. |
| return_dropoff | string | Optional, only with return_date and return_time: where the return trip drops off, if not the first trip's pickup. Defaults to the first trip reversed. |
| terms_accepted* | boolean | REQUIRED, must be true. Confirms the customer has been shown and has accepted the booking terms at https://cgctransfers.com.au/bookingtermsandconditions/ -- do not set this without an explicit yes from the customer. |
{
"type": "object",
"required": [
"agent_key",
"pickup",
"dropoff",
"date",
"time",
"pax",
"name",
"phone",
"email",
"terms_accepted"
],
"properties": {
"pax": {
"type": "integer"
},
"date": {
"type": "string",
"description": "YYYY-MM-DD"
},
"name": {
"type": "string",
"description": "Passenger name"
},
"time": {
"type": "string",
"description": "HH:MM 24h"
},
"email": {
"type": "string",
"description": "Passenger email (pay link goes here)"
},
"notes": {
"type": "string"
},
"phone": {
"type": "string",
"description": "Passenger phone"
},
"stops": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 4,
"description": "Optional: stops on the way, in order, up to 4, each a street address or a hotel or venue name with its suburb; use the same stops as the get_quote you quoted. One way, this is the booking form's Multi-stop; on a return these are the stops on the way there (its Multi-stop return). The booking carries the stops and is made at the booking form's own total."
},
"flight": {
"type": "string"
},
"pickup": {
"type": "string"
},
"dropoff": {
"type": "string"
},
"luggage": {
"type": "integer",
"description": "Optional. Large suitcases. If left out, assumed to be what the chosen vehicle holds (never more than one per passenger)."
},
"vehicle": {
"enum": [
"sedan",
"carnival",
"carnival-rav",
"2-carnivals",
"crafter",
"crafter-trailer"
],
"type": "string",
"description": "Vehicle choice; defaults to sedan. crafter = VW Crafter (up to 11 passengers), one van for a group too big for one Carnival; crafter-trailer = the same van towing a luggage trailer, for a big group with more luggage than the van takes (get_quote with pax gives the live seat, child-seat and luggage limits). Any other value is refused (accepted:false, \"Unknown vehicle\"), never booked as a different vehicle."
},
"carry_on": {
"type": "integer",
"description": "Optional. Carry-on bags."
},
"platform": {
"enum": [
"ChatGPT",
"Claude",
"SMS",
"other"
],
"type": "string",
"description": "Which channel this booking comes from (attribution)"
},
"seat_qty": {
"type": "object",
"description": "Child seats by type, priced into the booking and pay link ($35 each): {seat index: quantity}. Indices follow the booking form list: 0 rear-facing 0-3yrs, 1 forward-facing 6mths-3yrs, 2 harnessed booster 3-6yrs, 3 booster with adult seatbelt 6yrs+.",
"additionalProperties": {
"type": "integer"
}
},
"agent_key": {
"type": "string",
"description": "Issued gateway key"
},
"oversized": {
"type": "boolean",
"description": "Optional. Surfboard, golf bag, bike box, full-size pram or similar (takes the space of three large bags, so sedans drop out)."
},
"meet_greet": {
"type": "boolean",
"description": "Optional. Add the Brisbane Airport in-terminal meet and greet ($49). Gold Coast Airport pickups include it already."
},
"child_seats": {
"type": "integer",
"description": "Child seats required ($35 each, supplied and fitted). Prefer seat_qty, which prices the seats into the booking and pay link."
},
"return_date": {
"type": "string",
"description": "Optional, YYYY-MM-DD. With return_time, books the return leg on the same reservation (5% return discount applies)."
},
"return_time": {
"type": "string",
"description": "Optional, HH:MM 24h, in 5-minute steps. Required if return_date is given."
},
"return_stops": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 4,
"description": "Optional, only with return_date and return_time: stops on the way back, in order, up to 4, same rules as stops. Not copied from stops: leave out for none."
},
"return_pickup": {
"type": "string",
"description": "Optional, only with return_date and return_time: where the return trip picks up, if not the first trip's drop-off (in to one hotel, back from another). Defaults to the first trip reversed. With different return addresses each trip is priced at its own fare and the return discount comes off the cheaper trip, as on the booking form; use the same return_pickup and return_dropoff as the get_quote you quoted."
},
"return_dropoff": {
"type": "string",
"description": "Optional, only with return_date and return_time: where the return trip drops off, if not the first trip's pickup. Defaults to the first trip reversed."
},
"terms_accepted": {
"type": "boolean",
"description": "REQUIRED, must be true. Confirms the customer has been shown and has accepted the booking terms at https://cgctransfers.com.au/bookingtermsandconditions/ -- do not set this without an explicit yes from the customer."
}
}
}