{"serverId":"mcp-registry/app.aplusz/flight-fares","tools":[{"name":"find_cheapest_fare","fixed":{"name":"find_cheapest_fare","description":"Returns the cheapest observed one-way fare between two cities, plus the six-month low and the departure date on which the low was observed. Use whenever the user names an origin and a destination and asks about price, the cheapest date to fly, or whether a fare is a good deal. Both arguments are required; neither alone produces a valid answer. Answers are directional and per pair - PAR to BKK is not BKK to PAR and is not PAR to SIN. Prices are cached snapshots, never live quotes: say \"last obser","inputSchema":{"type":"object","required":["from","to"],"properties":{"to":{"type":"string","description":"Destination city. Uppercase IATA city code such as BKK. Must differ from from."},"from":{"type":"string","description":"Origin city. Uppercase IATA city code such as PAR. A city slug such as paris also resolves. If you cannot resolve the city, call resolve_city first - do not guess a code."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Cheapest fare between two cities"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":272,"tokensAfter":272},{"name":"list_routes_from","fixed":{"name":"list_routes_from","description":"Returns destinations reachable from one origin, sorted cheapest first. Use when the user asks where they can fly cheaply from a city, or wants inspiration rather than one specific pair. One call replaces dozens of page fetches. Prices are cached snapshots.","inputSchema":{"type":"object","required":["from"],"properties":{"from":{"type":"string","description":"Origin city. Uppercase IATA city code such as LON."},"limit":{"type":"integer","maximum":200,"minimum":1,"description":"How many destinations to return, 1-200. Default 40."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Cheapest destinations from one city"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":170,"tokensAfter":170},{"name":"resolve_city","fixed":{"name":"resolve_city","description":"Turns a spoken city name into the uppercase IATA city code the other tools expect. Call this before find_cheapest_fare whenever you are not certain of a code. Do not invent codes.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"City name or partial name, e.g. \"sao paulo\"."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Resolve a city name to its IATA code"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":113,"tokensAfter":113}],"toolsChanged":3,"tokensSaved":0,"todo":[],"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."}