Skip to main content
Glama

Start tracking a hotel price

track_hotel_price
Idempotent

Start free, anonymous, public price tracking of one hotel (agoda_hotel_id from search_hotels) for one stay (check_in to check_out, YYYY-MM-DD). The Agoda price is then checked automatically several times a day and every observed price is recorded. If the same hotel and dates are already tracked, the existing tracking is returned instead of a duplicate. The response includes booking_url (the Agoda page for this hotel via a HotelRefund redirect) and track_page_url (the public price-history page).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
check_inYesCheck-in date, YYYY-MM-DD (today up to 540 days ahead).
currencyNoOptional ISO currency for recorded prices: KRW, JPY, USD, EUR, TWD, HKD, CNY, SGD, THB, GBP, AUD or VND. Defaults by language.
languageNoOptional locale for the tracked rate: ko-kr, ja-jp, en-us, zh-cn, zh-tw or zh-hk (default en-us).
check_outYesCheck-out date, YYYY-MM-DD (after check_in, stay of 60 nights or less).
agoda_hotel_idYesHotel id from search_hotels.

TDQS

A4.4/5.0
Behavior5/5

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

The description goes well beyond the annotations by explaining what happens after invocation: the price is checked several times per day, every observed price is recorded, duplicates return the existing tracking, and the response contains specific URLs. The idempotentHint is explicitly supported by the deduplication language, and no contradiction exists with readOnlyHint=false or destructiveHint=false.

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?

Two dense sentences carry all essential information with no filler. The action, constraints, behavioral consequences, idempotency, and key response fields are all covered economically and in a logical order.

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?

Given that there is no output schema, the description rightly names the two most important response fields, booking_url and track_page_url. It also covers the core lifecycle behavior (automatic checks and deduplication). It leaves out minor details such as how to later reference the created tracking, but nothing essential to invoking the tool 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 description coverage is 100%, so the formal parameters are already fully documented. The description adds context about 'one stay' and the YYYY-MM-DD format, but it does not materially deepen the meaning of currency, language, or the hotel id beyond what the schema already states.

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 uses a specific verb-resource pair ('Start ... price tracking of one hotel') and clearly states the scope: one agoda_hotel_id, one stay, and automatic price checks. It inherently distinguishes this tool from siblings like list_tracked_hotels or get_price_history by framing this as the action that initiates tracking rather than reading or listing it.

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?

The description gives clear context for when to use the tool: after obtaining agoda_hotel_id from search_hotels, for a specific date range. The duplicate-return behavior also implies a sensible 'use it even if already tracked' guideline, but it does not explicitly name alternatives or state when another sibling should be used 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.

TDQS

A4.5/5.0
Disambiguation5/5

Each tool has a distinct role: search_hotels finds hotels, track_hotel_price starts tracking, list_tracked_hotels shows active trackings, get_price_history details one tracking, and list_hotel_deals surfaces discounts. There is no meaningful overlap or ambiguity.

Naming Consistency5/5

All tool names follow the same imperative verb + noun pattern with snake_case: get_price_history, list_hotel_deals, list_tracked_hotels, search_hotels, track_hotel_price. The naming is predictable and consistent.

Tool Count5/5

Five tools is well-scoped for a hotel price tracker: hotel discovery, tracking creation, tracking listing, price history retrieval, and deal browsing. Each tool earns its place without redundancy.

Completeness4/5

The core workflow is well covered: search, track, list, and inspect history, plus a deals view. The main gap is the lack of an explicit way to stop/delete a tracking or update tracking parameters, though this may be intentionally unsupported for anonymous public trackings.

Resources