watch_flight_price
Register a price watch on a specific flight route and date. Receive an alert when the fare drops to or below your set threshold.
Instructions
Register a persistent watch on a specific flight route, departure date, and price threshold. When the user later asks "any deals?", list_active_watches re-runs the search and reports whether the latest price has dropped to or below the threshold.
USE THIS TOOL WHEN: the user says something like "watch this route", "tell me if the price drops below X", "alert me if Y becomes cheaper", "monitor flights from A to B around date Z".
DO NOT USE THIS TOOL FOR ONE-OFF SEARCHES — use search_flights for those.
Inputs are the same shape as search_flights (origin, destination, departure_date, optional return_date, etc.) plus:
threshold_price: numeric ceiling in the currency you also pass. The watch "fires" (status='alerted') when a refresh observes price ≤ threshold.currency: ISO 4217 currency code (e.g. "EUR", "USD"). Must match the units ofthreshold_price.note: optional free-text reminder ("for parents' anniversary", "cap to budget for Q3").
Returns the new watch's watch_id (a 12-character hex string). Hand it back to the user so they can cancel later with cancel_watch(watch_id).
The watch persists across restarts (it's in SQLite under ~/.trip-search-mcp/watches.db). Closing Claude Desktop doesn't lose your watches.
PRE-CALL ELICITATION:
Confirm the route and dates the user wants to watch.
Confirm the threshold price AND its currency explicitly — mixing currencies silently breaks the alert logic. Example: "I want to fly to Tokyo if it drops below 800 EUR" →
threshold_price=800, currency="EUR".If the user said "any time" or "flexible dates", offer to use
search_cheapest_datesfirst to pick a candidate date, then watch THAT specific date.
The watch makes ONE fli call when refreshed (per active watch). Refresh frequency is controlled by list_active_watches.refresh_after_hours (default 6h).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| adults | No | ||
| origin | Yes | ||
| currency | No | EUR | |
| max_stops | No | ANY | |
| cabin_class | No | ECONOMY | |
| destination | Yes | ||
| return_date | No | ||
| departure_date | Yes | ||
| threshold_price | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||