Skip to main content
Glama

Search Airbnbs for a Trip

assistant_airbnb_search_trip
Read-onlyIdempotent

Search Airbnb listings for an existing Tineo trip. Derives location and dates from the trip; the model may override. location must be a city or area, not a whole country (ask the user which city). Each card has distance_km from the requested place and in_requested_area; listings outside the area come last. If none are in the area, say so with their distances and do NOT re-search the same place with a reworded location string. Amenity filtering only via the amenities enum; there is NO keyword/free-text filter, so tell the user anything else can't be filtered. If structuredContent.status is 'unavailable', do NOT retry the same search: share structuredContent.fallback_search_url (a prefilled airbnb.com search), offer a hotel search, or a support ticket.

Input Schema

NameRequiredDescriptionDefault
adultsNo
infantsNoInfants under 2. Airbnb does not count them as guests.
trip_idYesTineo trip ID. Defaults below are derived from this trip when omitted.
check_inNoCheck-in date YYYY-MM-DD.
childrenNo
currencyNoISO 4217 currency code (default USD).
locationNoOptional override for the trip's destination.
min_bedsNo
amenitiesNoOnly listings with ALL of these amenities. These are the only supported amenity filters; there is no keyword/free-text filter.
check_outNoCheck-out date YYYY-MM-DD.
price_maxNo
price_minNo
room_typeNo
max_resultsNoDefault 5, max 5.
min_bedroomsNo
min_bathroomsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / infants
      Added value: +{
      +  "description": "Infants under 2. Airbnb does not count them as guests.",
      +  "maximum": 5,
      +  "minimum": 0,
      +  "type": "integer"
      +}
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/openWorld, so the safety bar is covered, yet the description adds substantial behavior beyond them: location and dates are derived from the trip with model override, out-of-area listings are sorted last, and the unavailable-status path has a no-retry policy with three concrete fallbacks. This is genuine operational context, not restatement.

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?

Purpose and the trip-derivation rule are front-loaded, and every sentence carries an actionable rule rather than filler. It runs long as a single dense paragraph, so the fallback and no-search-substitution rules are slightly less scannable than they could be, but nothing is wasted.

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

Completeness5/5

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

For a 16-parameter, no-output-schema tool, the description is unusually complete: it explains card fields (distance_km, in_requested_area), ordering, the empty-area case, the filter limitation, and the structuredContent.status/fallback_search_url contract. An agent has what it needs to call the tool and to handle its edge outcomes without an output schema.

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?

With 16 parameters and 50% schema coverage, the description compensates well by clarifying the most error-prone inputs: location must be a city/area rather than a country, and the amenities enum is the only filter (no keyword/free-text). It adds little for numerics like adults/children/min_beds/price/room_type, which remain schema-only.

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

Purpose5/5

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

States a specific verb (Search) and resource (Airbnb listings) scoped to 'an existing Tineo trip,' which cleanly separates it from the sibling assistant_airbnb_search_user that presumably searches by user profile rather than trip. An agent can identify the tool and its scope without opening the schema.

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

Usage Guidelines5/5

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

Gives explicit when-to-use and when-not guidance: location must be a city, not a country (ask the user), do not re-search the same place with reworded strings when nothing is in the area, and if structuredContent.status is 'unavailable' do not retry but instead use fallback_search_url, offer a hotel search (search_hotels sibling), or open a support ticket. Alternatives and exclusions are named outright.

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