{"serverId":"mcp-registry/com.stopovercity/stopover-planner","tools":[{"name":"get_job_result","fixed":{"name":"get_job_result","description":"Poll a search started by a background-job tool. Returns {status:\"pending\"} while running; when status is \"done\" the same object carries the search payload. Poll every 3 to 5 seconds.","inputSchema":{"type":"object","required":["jobId"],"properties":{"jobId":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":90,"tokensAfter":90},{"name":"search_country_sweep","fixed":{"name":"search_country_sweep","description":"Cheapest live fares from one origin to every destination city in a whole country, in one call (e.g. London to all of Spain). Replaces dozens of route searches. Runs as a background job: returns a jobId; poll get_job_result until done.","inputSchema":{"type":"object","required":["origin","country","dates"],"properties":{"dates":{"type":"array","items":{"type":"string","format":"date"},"maxItems":31,"minItems":1,"description":"Departure dates YYYY-MM-DD. 1 to 31 dates per call; must be real calendar dates (2026-02-30 is rejected)."},"oneway":{"type":"boolean","description":"Default true"},"origin":{"type":"string","description":"e.g. \"London\""},"country":{"type":"string","description":"Country or continent, e.g. \"Spain\""},"nonstop":{"type":"boolean","description":"Default true"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":234,"tokensAfter":234},{"name":"search_explore_anywhere","fixed":{"name":"search_explore_anywhere","description":"Explore everywhere: the cheapest destinations worldwide from an origin on given dates, with live GBP prices and booking links. Great for \"where can I fly cheaply\" questions. Runs as a background job: returns a jobId; poll get_job_result until done.","inputSchema":{"type":"object","required":["origin","dates"],"properties":{"dates":{"type":"array","items":{"type":"string","format":"date"},"maxItems":31,"minItems":1,"description":"Departure dates YYYY-MM-DD. 1 to 31 dates per call; must be real calendar dates (2026-02-30 is rejected)."},"oneway":{"type":"boolean","description":"Default true"},"origin":{"type":"string","description":"e.g. \"London\""},"nonstop":{"type":"boolean","description":"Default true"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":214,"tokensAfter":214},{"name":"search_flights","fixed":{"name":"search_flights","description":"Live Google Flights prices for one route across one or more dates. Each flight includes airline, GBP price, duration, stops, times, and a Google Flights booking link. Synchronous: typically 5 to 20 seconds.","inputSchema":{"type":"object","required":["origin","destination","dates"],"properties":{"dates":{"type":"array","items":{"type":"string","format":"date"},"maxItems":31,"minItems":1,"description":"Departure dates YYYY-MM-DD. 1 to 31 dates per call; must be real calendar dates (2026-02-30 is rejected)."},"oneway":{"type":"boolean","description":"Default true"},"origin":{"type":"string","description":"e.g. \"London\""},"nonstop":{"type":"boolean","description":"Default true"},"destination":{"type":"string","description":"e.g. \"Madrid\""}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":221,"tokensAfter":221},{"name":"search_stopover_itineraries","fixed":{"name":"search_stopover_itineraries","description":"Find complete multi-day stopover itineraries between two cities: an outbound leg, 1 to 7 days in an intermediate hub city, then the onward leg, priced as one trip from live Google Flights data (GBP) with a booking link on every leg. One call evaluates dozens of hub cities and date splits. Runs as a background job: returns a jobId immediately; poll get_job_result every few seconds until status is done.","inputSchema":{"type":"object","required":["origin","destination","deadlineDates"],"properties":{"origin":{"type":"string","description":"Origin city or airport, e.g. \"London\""},"nonstop":{"type":"boolean","description":"Nonstop legs only (default true)"},"destination":{"type":"string","description":"Final destination, e.g. \"Tokyo\""},"layoverDays":{"type":"integer","maximum":7,"minimum":1,"description":"Days to spend in the hub city (default 3)"},"deadlineDates":{"type":"array","items":{"type":"string","format":"date"},"maxItems":31,"minItems":1,"description":"Latest arrival date(s) at the destination, YYYY-MM-DD. 1 to 31 dates per call; must be real calendar dates (2026-02-30 is rejected)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":325,"tokensAfter":325}],"toolsChanged":5,"tokensSaved":0,"todo":[{"tool":"get_job_result","params":["jobId"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}