Skip to main content
Glama

Update a bucket list

update_bucket_list
DestructiveIdempotent

Use to edit a bucket list: the price bar, months or date window, nights, stops, airlines, preferred weekdays, name, guests, stars, or channels, and a flight list's filters (airlines left out, connecting airports, times, duration, layovers, emissions, bags). Only the fields given change; a filter given replaces the stored one, and clear_filters names the ones to remove. A changed search resets the deals found so far. Confirm first.

Input Schema

NameRequiredDescriptionDefault
nameNoA new label for the list.
textNoSend alerts by text message. Needs a verified phone on the SlickTrip account; empty keeps the account's setting.
emailNoSend alerts by email. Empty keeps the account's setting.
adultsNoHotel lists: adults, 1-6.
monthsNoMonths to watch, as names or YYYY-MM. Give this OR start_date + end_date.
airlinesNoOnly these marketing carriers, as IATA codes or names.
end_dateNoYYYY-MM-DD.
bucket_idYesThe list's bucket_id from list_bucket_lists.
max_stopsNoMost stops allowed: 0 nonstop, 1, or 2 (2 or more: any number).
min_starsNoHotel lists: lowest star class, 1-5.
max_nightsNoFlight lists: longest trip. Hotel lists: the stay length.
min_nightsNoFlight lists: shortest trip. Hotel lists: the stay length.
start_dateNoYYYY-MM-DD.
depart_daysNoFlight lists: only depart on these weekdays.
return_daysNoFlight lists: only return on these weekdays.
arrive_afterNoHH:MM, local time at that airport.
checked_bagsNoChecked bags per traveler (0-2), priced only for flights within the US and Canada (elsewhere the answer says the prices do not include them). Prices then include the bag fees: search_flights shows them as price_with_bags next to the fare; a calendar or bucket list prices every day with them.
clear_windowNoRemove the date window and watch the months instead.
depart_afterNoHH:MM, local time at that airport.
arrive_beforeNoHH:MM, local time at that airport.
carry_on_bagsNoCarry-on bags per traveler (0-1). Prices then include the bag fees: search_flights shows them as price_with_bags next to the fare; a calendar or bucket list prices every day with them.
check_in_daysNoHotel lists: only check in on these weekdays.
clear_filtersNoFlight lists: filters to remove.
depart_beforeNoHH:MM, local time at that airport.
max_price_usdNoThe price bar, USD: per traveler for a flight list (total when price_is_total), per night for a hotel list.
price_is_totalNoFlight lists: max_price_usd is the total for all travelers.
lower_emissionsNoOnly itineraries with lower emissions than is typical for the route.
exclude_airlinesNoLeave out itineraries with any flight sold by these carriers (IATA codes, names or an alliance), by flight number or airline name: for 'not Gol' or 'avoid Air India'.
max_layover_hoursNoLongest layover allowed at every connection, in hours (half hours allowed): for 'layovers no longer than 5 hours'.
min_layover_hoursNoShortest layover allowed at every connection, in hours (half hours allowed): for 'at least 2 hours to connect'.
max_duration_hoursNoLongest itinerary to show, in hours.
connecting_airportsNoOnly itineraries that change planes at these airports (codes or city codes), nonstops included: for 'US connections only' name the hubs.
exclude_connecting_airportsNoLeave out itineraries that change planes at these airports (codes or city codes).

Output Schema

NameRequiredDescriptionDefault
codeNoOn an error: a machine-readable kind, e.g. unknown_place
kindNo"flight" or "hotel"
nameNoThe bucket's name (pre-update record)
stayNoHotel only: location, hotel_name, nights, adults
fieldNoOn unknown_place: which argument (origin, destination, ...)
routeNoFlight only: origin, destination, names, trip_type, cabin, travelers
statusNoupdated | error | sign_in_required
changedNoFields sent to the update handler, site vocabulary (price, stops, preferredMonths, ...)
messageNoError or sign-in message from the server wrapper
bucket_idNoThe updated bucket list id
manage_urlNoslicktrip.com saved buckets page link
suggestionsNoOn unknown_place: places to offer the traveler, each with code, name, kind (airport, all airports in the city, nearby airport), city, country
display_nameNoName as the card shows it
places_assumedNoPlace names this call resolved on its own, e.g. 'Portland = Portland, OR (PDX)'; tell the traveler

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / max_stops / anyOf
      Previous value: -[
      -  {
      -    "maximum": 2,
      -    "minimum": 0,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maximum": 9,
      +    "minimum": 0,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / max_stops / description
      Previous value: -"Most stops allowed: 0 nonstop, 1, or 2."New value: +"Most stops allowed: 0 nonstop, 1, or 2 (2 or more: any number)."
  2. Changed1 schema field changed
    • changedInput schema / properties / checked_bags / description
      Previous value: -"Checked bags per traveler (0-2). Prices then include the bag fees: search_flights shows them as price_with_bags next to the fare; a calendar or bucket list prices every day with them."New value: +"Checked bags per traveler (0-2), priced only for flights within the US and Canada (elsewhere the answer says the prices do not include them). Prices then include the bag fees: search_flights shows them as price_with_bags next to the fare; a calendar or bucket list prices every day with them."
  3. Changed14 schema fields changed
    • addedInput schema / properties / arrive_after
      Added value: +{
      +  "anyOf": [
      +    {
      +      "pattern": "^\\d{2}:\\d{2}$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "HH:MM, local time at that airport.",
      +  "examples": [
      +    "06:00",
      +    "21:30"
      +  ],
      +  "title": "Arrive After"
      +}
    • addedInput schema / properties / arrive_before
      Added value: +{
      +  "anyOf": [
      +    {
      +      "pattern": "^\\d{2}:\\d{2}$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "HH:MM, local time at that airport.",
      +  "examples": [
      +    "06:00",
      +    "21:30"
      +  ],
      +  "title": "Arrive Before"
      +}
    • addedInput schema / properties / carry_on_bags
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 1,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Carry-on bags per traveler (0-1). Prices then include the bag fees: search_flights shows them as price_with_bags next to the fare; a calendar or bucket list prices every day with them.",
      +  "title": "Carry On Bags"
      +}
    • addedInput schema / properties / checked_bags
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 2,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Checked bags per traveler (0-2). Prices then include the bag fees: search_flights shows them as price_with_bags next to the fare; a calendar or bucket list prices every day with them.",
      +  "title": "Checked Bags"
      +}
    • addedInput schema / properties / clear_filters
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "enum": [
      +          "exclude_airlines",
      +          "connecting_airports",
      +          "exclude_connecting_airports",
      +          "depart_after",
      +          "depart_before",
      +          "arrive_after",
      +          "arrive_before",
      +          "max_duration_hours",
      +          "min_layover_hours",
      +          "max_layover_hours",
      +          "lower_emissions",
      +          "bags"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Flight lists: filters to remove.",
      +  "title": "Clear Filters"
      +}
    • addedInput schema / properties / connecting_airports
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Only itineraries that change planes at these airports (codes or city codes), nonstops included: for 'US connections only' name the hubs.",
      +  "examples": [
      +    [
      +      "MIA",
      +      "ATL",
      +      "IAH"
      +    ]
      +  ],
      +  "title": "Connecting Airports"
      +}
    • addedInput schema / properties / depart_after
      Added value: +{
      +  "anyOf": [
      +    {
      +      "pattern": "^\\d{2}:\\d{2}$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "HH:MM, local time at that airport.",
      +  "examples": [
      +    "06:00",
      +    "21:30"
      +  ],
      +  "title": "Depart After"
      +}
    • addedInput schema / properties / depart_before
      Added value: +{
      +  "anyOf": [
      +    {
      +      "pattern": "^\\d{2}:\\d{2}$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "HH:MM, local time at that airport.",
      +  "examples": [
      +    "06:00",
      +    "21:30"
      +  ],
      +  "title": "Depart Before"
      +}
    • addedInput schema / properties / exclude_airlines
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Leave out itineraries with any flight sold by these carriers (IATA codes, names or an alliance), by flight number or airline name: for 'not Gol' or 'avoid Air India'.",
      +  "examples": [
      +    [
      +      "G3"
      +    ],
      +    [
      +      "Gulf Air",
      +      "Air India"
      +    ]
      +  ],
      +  "title": "Exclude Airlines"
      +}
    • addedInput schema / properties / exclude_connecting_airports
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Leave out itineraries that change planes at these airports (codes or city codes).",
      +  "examples": [
      +    [
      +      "DOH"
      +    ],
      +    [
      +      "LOND"
      +    ]
      +  ],
      +  "title": "Exclude Connecting Airports"
      +}
    • addedInput schema / properties / lower_emissions
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Only itineraries with lower emissions than is typical for the route.",
      +  "title": "Lower Emissions"
      +}
    • addedInput schema / properties / max_duration_hours
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 96,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Longest itinerary to show, in hours.",
      +  "title": "Max Duration Hours"
      +}
    • addedInput schema / properties / max_layover_hours
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 26,
      +      "minimum": 0.5,
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Longest layover allowed at every connection, in hours (half hours allowed): for 'layovers no longer than 5 hours'.",
      +  "title": "Max Layover Hours"
      +}
    • addedInput schema / properties / min_layover_hours
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 26,
      +      "minimum": 0.5,
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Shortest layover allowed at every connection, in hours (half hours allowed): for 'at least 2 hours to connect'.",
      +  "title": "Min Layover Hours"
      +}
  4. First observed

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true and idempotentHint=true, and the description goes well beyond them: it explains that only supplied fields change (partial update), that a supplied filter replaces the stored one, that clear_filters removes named filters, and crucially that a changed search resets previously found deals—naming the exact destructive consequence. It also tells the agent to confirm first. This is the 'what gets destroyed' context the annotations alone don't provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose, then groups the editable surface, then closes with the critical mutation semantics and confirmation. The field enumeration is long but each item maps to a real parameter, and no sentence is wasted. Slightly dense but appropriately sized for a 33-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 33-param, output-schema-backed mutation tool, the description covers the key gotchas an agent must know: partial update, filter replacement, filter clearing, deal reset, and confirmation. Return values are handled by the output schema. Only minor auth/permission context is absent, so it is close to complete but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all 33 parameters and a 3 would be the floor. The description adds semantic value the schema does not: partial-update vs full-replace behavior, that clear_filters names filters to remove, and that a filter input overwrites the stored filter. That extra meaning lifts it above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb and resource (edit a bucket list) and enumerates the exact editable surface—price bar, months/window, nights, stops, airlines, weekdays, name, guests, stars, channels, and flight filters. The 'edit' verb inherently separates it from add/remove/list siblings, though it never names them explicitly, which keeps it at a 4.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to edit a bucket list' plus 'Confirm first' gives an implied context and a confirmation instruction, and the mention of both flight and hotel lists signals it spans both list types. However there is no explicit routing guidance, such as when to reach for this versus add_flight_bucket_list or add_hotel_bucket_list, so usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources