Skip to main content
Glama

Read an Airbnb listing

airbnb_listing

Read one Airbnb listing -- description, location, host, amenities, house rules, cancellation policy, ratings, the latest reviews, a year of availability, and the price for the dates given. Takes the listing url, e.g. from an airbnb_search result. Spends a flat number of credits, refunded if the listing could not be 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": {
      "url": "<url>"
    },
    "name": "airbnb_listing"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlYesThe Airbnb listing, e.g. https://www.airbnb.com/rooms/965075981702341405, on any of Airbnb's sites. Its own query string is ignored: the dates and guests below are what is priced.
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.
adultsNoHow many adults are staying.
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.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the openWorldHint/destructiveHint annotations by disclosing the cost model (flat credits, refunded on failure) and the asynchronous job lifecycle with a status field and the crawl_poll handoff. These are exactly the operational facts an agent needs to avoid mis-handling a queued response.

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?

Three sentences, front-loaded with purpose, then cost, then async handling. The long enumeration of returned fields is slightly padded, but each clause maps to something the agent needs to know.

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?

With no output schema and nine parameters, the description fills the important gaps: what data comes back, that credits are spent and refundable, and that a queued/running status requires polling. Nothing essential for calling it correctly is missing.

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 coverage is 100% and the property descriptions already explain dates, currency, country/city, and premium. The description only restates that the url's own query string is ignored and that the given dates are what get priced, adding marginal meaning beyond the schema.

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 and resource ('Read one Airbnb listing') and then enumerates exactly what is returned: description, location, host, amenities, house rules, cancellation policy, ratings, reviews, availability, and price for the dates. It distinguishes itself from airbnb_search by saying the url comes 'e.g. from an `airbnb_search` result'.

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?

Gives clear entry conditions (supply a listing url, typically from airbnb_search) and an explicit next step for async results: call `crawl_poll` with the `job_id` when status is queued or running. It stops short of naming exclusions, such as when to prefer crawl or booking_hotel instead.

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