Skip to main content
Glama

Search hotels

eg_search
Read-onlyIdempotent

Search hotels by city and travel dates, filter by price, stars, facilities, and sorting, then compare nightly rates to identify suitable stays.

Instructions

Search hotels in a city for given dates, with the filters the site offers, and return cards with the lowest price.

Use it to answer "hotels in Mashhad on 1405-08-19", "cheapest 4-star in Kish" (sort=price_asc, min_stars=4) or "best rated near X" or "with a pool near the shrine" (facilities, area). price_from is the lowest room price per night for those dates in Toman (stay_total is the whole stay when nights > 1), often a single-bed room (the site's list shows the same figure); pass guests for the price of a room that sleeps them. status is available, min_stay (open, but the stay rules, e.g. a minimum number of nights, may not fit) or sold_out. Call eg_rooms with a card's hotel value for room prices, eg_hotel for facilities and rules, eg_reviews for guest opinions.

Input Schema

NameRequiredDescriptionDefault
areaNoA city category in Persian, e.g. 'حرم' (near the shrine), 'ارزان' (cheap), 'لوکس'; must match one.
bedsNoOnly hotels with a room of this many beds.
cityYesCity slug from eg_cities (Mashhad, Esfahan, Kish...) or its Persian name.
kindNohotel = hotels and hotel apartments; stay = villas, suites, houses.hotel
nameNoPart of the hotel name, Persian.
sortNoOne of popular, price_asc, price_desc, rating, discount, reviews. popular is the site's default order.popular
typeNoProperty type: hotel, apartment_hotel, traveler_house, inn, traditional_residence, residential_unit, ecotourism_resorts.
boardNoOnly hotels with this meal plan: room_only, bed_and_breakfast, half_board, full_board.
limitNo
guestsNoAdd `price_for_guests`: the cheapest room that sleeps this many, per night, for the first 12 cards.
nightsNoNumber of nights, 1-30.
check_inNoCheck-in date, YYYY-MM-DD (Gregorian, or Jalali such as 1405-08-19). Default: tomorrow.
max_priceNoHighest 'price from' in Toman, per night.
max_starsNo
min_priceNoLowest 'price from' in Toman, per night.
min_starsNo
facilitiesNoFacilities the hotel must all have, Persian, e.g. ['استخر', 'پارکینگ'] (pool, parking).
attraction_idNoOnly hotels the site lists near this attraction (id from eg_attractions).
include_sold_outNoAlso list hotels with no room for those dates.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.7/5.0
Behavior5/5

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

With readOnlyHint/idempotentHint already supplied by annotations, the description still adds substantive behavior: price_from is the lowest room price per night and often a single-bed room, stay_total applies when nights > 1, and status distinguishes available / min_stay / sold_out. The note that guests only adds price_for_guests for the first 12 cards is a genuine partial-result caveat an agent could not infer elsewhere.

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 is front-loaded in the first sentence, followed by examples, then field semantics, then sibling routing - a sensible order. It is dense but nearly every clause carries information; only the parenthetical about the site showing the same figure is slightly redundant.

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 19-parameter search with no output schema, the description covers the essentials: what a result card contains (hotel, price_from, stay_total, status) and how to chain into the detail tools. It does not address the limit/pagination cap (max 60) or the kind=stay path, which are the remaining gaps.

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 84%, so the baseline is 3; the description earns more by explaining the price fields that the schema leaves ambiguous (price_from vs stay_total vs price_for_guests, Toman, per night) and by illustrating sort, min_stars, facilities and area with real values. Some parameters (kind, beds, board, name, max_price) are left entirely to 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?

The opening sentence names a specific verb (search), resource (hotels), scope (a city, given dates) and the return shape (cards with the lowest price). It is clearly separable from eg_rooms, eg_hotel and eg_reviews, which are named later in the text.

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?

It maps concrete user questions to parameter combinations ("cheapest 4-star in Kish" -> sort=price_asc, min_stars=4; "with a pool near the shrine" -> facilities, area), which tells the agent exactly when this tool fits. It also explicitly routes follow-ups: eg_rooms for room prices, eg_hotel for facilities/rules, eg_reviews for opinions.

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