Skip to main content
Glama

Search Airbnb

airbnb_search

Search Airbnb for places to stay at a destination, optionally for dates and with Airbnb's filters, and return the listings with price, rating, beds and badges. Use airbnb_listing with a listing url for one place in detail. Spends credits per page of 18 listings read. If status is "queued" or "running", call crawl_poll with the job_id to collect it.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "destination": "<destination>"
    },
    "name": "airbnb_search"
  }
}

Input Schema

NameRequiredDescriptionDefault
cityNoThe city inside that country to appear to browse from, as the pool spells it: letters, digits, hyphens or underscores, e.g. berlin or new_york. Requires country. Doubles the price of the crawl.
pageNoThe results page to start from, counting from 0. A page holds 18 listings.
limitNoHow many listings to return. Each page of 18 it takes costs 30 credits.
domainNoThe Airbnb site to search on, which sets the market, e.g. www.airbnb.co.in.www.airbnb.com
localeNoThe language the page is shown in, as Airbnb writes it: en, es, en-IN.
checkinNoThe first night, as YYYY-MM-DD, today or later. Requires checkout. Without dates nothing is priced for a stay.
countryNoThe country to appear to browse from, as a two-letter ISO 3166-1 code such as es, us or de. Free. Required to use city.
premiumNoFetch through the premium proxy pool instead of the standard one. Costs more; use it for targets that refuse ordinary requests.
checkoutNoThe day you leave, as YYYY-MM-DD, after checkin. Requires checkin.
currencyNoThe currency to price in, as a three-letter ISO 4217 code such as EUR. Left to Airbnb when absent.
price_typeNoWhich price leads each listing's price.amount: the stay's total (trip) or a night's (night). Both are returned either way.
destinationYesWhere to stay, as you would type it into Airbnb's search box: "Jaipur", "Barcelona, Spain".
instant_bookNoOnly listings that can be booked without the host approving.
self_check_inNoOnly listings with self check-in.
guest_favoriteNoOnly listings Airbnb marks as a guest favourite.
free_cancellationNoOnly listings with free cancellation.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (openWorldHint, destructiveHint=false), the description discloses the credit cost model per page of 18 listings, the asynchronous job lifecycle with the queued/running statuses and the crawl_poll follow-up, and the shape of returned data. That is exactly the behavioral context an agent needs to avoid surprise spend or a stalled job.

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

Conciseness5/5

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

Three tight sentences, front-loaded with purpose, then the sibling alternative, then the cost and polling mechanics. No sentence is redundant and each carries distinct operational information.

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, credit-metered, optionally asynchronous crawl tool with no output schema, the description covers cost, the async collection path, and the returned fields. It leaves no ambiguity that would cause an agent to call it incorrectly or mis-handle the response.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter including cost implications and date pairing is already documented at the field level. The description adds only the framing that dates and filters are optional; it does not elaborate on any individual parameter beyond the schema, so baseline 3 applies.

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?

The definition opens with a specific verb and resource ("Search Airbnb for places to stay") and scopes it by destination, optional dates and filters, then names the return fields (price, rating, beds, badges). It explicitly distinguishes itself from the sibling airbnb_listing, so an agent can route without opening either schema.

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

Usage Guidelines4/5

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

It states when to prefer airbnb_listing (single place via listing url) and what to do when the response is queued or running (call crawl_poll with job_id), which covers the main branching paths. It does not explain when to choose this over the other search siblings such as booking_search or tripadvisor_search, so cross-family routing is left to inference.

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