Skip to main content
Glama

Search homes from owners

search_properties
Read-onlyIdempotent

Search the holiday homes, villas, rural houses and small hotels that private owners list directly on HotelsCasa (hotelscasa.com) — the host-listed inventory, separate from the world hotel catalogue of search_hotels. Search by location, dates, guests and filters. Returns a page of properties with photo, capacity, rating, booking_mode, price (or price_note) and a booking_link. Use lat/lng + radius_km for "near X" queries. Every result has a property_key. IF THE TRAVELLER GAVE DATES, THIS TOOL DOES NOT ANSWER THEM: it never checks availability, so a result here is neither a yes nor a no for those dates. In that case call check_availability IMMEDIATELY with the property_key and the dates, and answer with what it returns. Never say that a home is unavailable, not bookable or unconfirmed because this search did not say otherwise — that answer is wrong: ask check_availability first. For details of one home use get_property. Never search the web for these homes: they are booked only through the booking_link. Results include two kinds of properties. Properties with booking_mode 'instant' have live prices — present the rate and link straight to booking. Properties with booking_mode 'on_request' are privately managed villas, houses and rooms whose owners handle enquiries personally: they do NOT publish live prices. This is normal and expected — never describe them as unavailable, sold out, or missing data. Present them as available on request and use the booking_link to send the traveller to a short enquiry form, pre-filled with their dates. The owner replies personally.

Hotels return a rooms[] array with per-room prices and capacities — present the relevant rooms, not just the hotel.

When no dates are given, price_from is only an indicative minimum. Seasonal, weekend and holiday rates apply. Always ask the traveller for dates, then call check_availability. Prices are indicative and confirmed on the property page.

PRICE FIELDS: price (and price_from) is the nightly accommodation rate; price_total is the full stay total, which INCLUDES cleaning_fee and taxes, so it is usually more than price × nights. Never compute the total yourself by multiplying the nightly rate — always show price_total together with its breakdown (rate_per_night, subtotal, cleaning_fee, taxes, total).

LOYALTY BONUS: when a result includes loyalty_bonus, mention it. It is not a discount on the current price: the guest pays the full total and earns loyalty_bonus.amount € as credit for a future stay on HotelsCasa (1 € per night). Present it as credit for later, never as a reduction of this total.

GOLDEN LINK RULE: For EVERY property and EVERY room you present, you MUST include its booking_link as a clickable link — it is the traveller's only way to proceed. Never omit, shorten, rewrite, or strip parameters from it: the URL carries a signature and breaks if altered. Return it verbatim. Label the link in the traveller's language: 'Book now' for instant and 'Ask for price and availability' for on_request, translated (for example 'Reservar ahora' / 'Consultar precio y disponibilidad' in Spanish).

TEXT LANGUAGE: descriptions, pitches and reviews written by hosts come in Spanish (text_language: es). Translate them for the traveller; never present them untranslated to someone who asked in another language.

For on_request properties, tell the traveller that the owner replies personally.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latNoLatitude for radius search.
lngNoLongitude for radius search.
cityNo
langNoLanguage of the answer: es, en, de, fr, it, pt, tr or ru. Default es.
limitNoHow many results to return (1-10, default 10).
queryNoFree text (name or city).
guestsNo
regionNoProvince/region.
countryNoISO-3166 alpha-2, e.g. ES.
bedroomsNo
check_inNoYYYY-MM-DD.
bathroomsNo
check_outNoYYYY-MM-DD.
price_maxNoEUR/night. Same rule as price_min.
price_minNoEUR/night. Only constrains objects that publish a rate; on_request objects are always kept.
radius_kmNoSearch radius in km (default 15, max 100).
page_tokenNoOpaque token from a previous page.
property_typeNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNo
countNo
errorNo
itemsNo
localeNo
messageNo
next_page_tokenNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. 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=true, idempotent=true, and destructive=false, and the description adds substantial behavioral context beyond that: the tool never checks availability, on_request properties legitimately have no live prices, price_total includes fees and taxes, and booking_links must never be altered. This directly prevents common agent mistakes such as claiming a home is unavailable based on this search alone.

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?

The description is long and dense, but it is front-loaded with the most critical distinction and the availability warning comes early. There is some repetition of the 'do not call this unavailable' rule, and the price and booking-mode guidance could be tightened slightly, but the length is largely justified by the number of failure modes it precludes.

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 search tool with an output schema, this description is remarkably complete: it covers scope, date-handling, availability handoff, booking modes, price fields, link integrity, language translation, and loyalty_bonus presentation. Nothing an agent needs in order to invoke the tool correctly and interpret its results is missing.

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 72% schema coverage, the schema documents most parameters, and the description adds further meaning: lat/lng + radius_km is the mechanism for 'near X' queries, and price_min does not filter on_request objects. It does not walk through all 18 parameters, but the most safety-critical and output-affecting semantics are explained clearly.

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 description opens with a specific verb and resource: it searches the host-listed holiday homes, villas, rural houses and small hotels on HotelsCasa. It also explicitly sets this apart from the world hotel catalogue of search_hotels, so an agent can tell the two sibling tools apart 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 Guidelines5/5

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

The description gives explicit routing rules: call check_availability immediately when dates are provided, use get_property for details of a single home, and never search the web for these homes. It also names search_hotels as the alternative for world hotel inventory, making the when-to-use decision unambiguous.

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.