Skip to main content
Glama

HotelRefund Price Tracker

Start tracking a hotel price

track_hotel_price
Idempotent

Today is 2026-11-04 (UTC) — never infer the date from the conversation or from training data. Stay dates are calendar days in the hotel's local time zone, which in Asia is already ahead of UTC, so check_in must be 2026-11-03 or later; an earlier check_in is rejected, not silently accepted. Start tracking one hotel (agoda_hotel_id from search_hotels) for one stay (check_in to check_out, YYYY-MM-DD). This is the tool that creates lasting state: from now on the Agoda price is checked automatically several times a day and every observed price is recorded, so the same tracking_id can be asked about days or weeks later with get_price_history. Free, anonymous and public; no account. If the same hotel and dates are already tracked, the existing tracking is returned instead of a duplicate, so it is safe to call again. The response includes tracking_id, booking_url (the Agoda page for this hotel via a HotelRefund redirect) and track_page_url (the booking-decision page: price chart, timing read and a book button; in the language given by language, with track_page_urls for all four). Used both before booking (to catch a drop) and after booking a refundable rate (to see when rebooking would pay off).

Input 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.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=false and idempotentHint=true, but the description adds what is actually created: persistent state checked automatically several times a day, with every observed price recorded for later retrieval. It also discloses the no-account/free access model and the dedupe behavior. It stops short of stating rate limits or latency for the first price observation.

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 critical date constraint is front-loaded before the tool's function, which is the right ordering for a tool that will be rejected on bad input. Some phrasing is padded, such as the aside about Asia being ahead of UTC and the double statement that an earlier check_in is "rejected, not silently accepted".

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 five-parameter mutation tool with no output schema, the description covers the date rule, the id source, the persistent side effect, the idempotency guarantee, and the contents of the response (tracking_id, booking_url, track_page_url). Nothing needed to call it correctly 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?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning beyond the schema by fixing today's date and clarifying that check_in is evaluated in the hotel's local time zone, where an earlier date is rejected rather than silently accepted. Currency and language semantics are left entirely to the schema, so it is not a full 5.

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: "Start tracking one hotel (agoda_hotel_id from search_hotels) for one stay (check_in to check_out)". It also distinguishes itself from siblings by naming search_hotels as the id source and get_price_history as the later read path.

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?

Gives explicit conditions in both directions: use before booking to catch a drop, and after booking a refundable rate to see when rebooking pays off. It also tells the agent that repeat calls are safe because an existing tracking is returned rather than duplicated, which removes the main ambiguity about when to call it again.

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