pricewin-flight-search
price-win/pricewin-skills-hub
Search live flight fares across Agoda, Trip.com, and Traveloka with airline, times, stops, and booking links.
What is pricewin-flight-search?
Search live flight prices for a specific route and date across three major OTAs. Use this when a user wants to compare airfares, find cheap flights, or book plane tickets between two cities for one-way or round-trip travel.
- Search one-way and round-trip flights across Agoda, Trip.com, and Traveloka simultaneously
- Display airline, flight number, departure/arrival times, duration, and number of stops
- Show total price in USD (or VND if FX unavailable) and direct booking links to the cheapest agent
- Support multiple cabin classes (economy, business, etc.) and passenger counts
- Poll results asynchronously until fares arrive, with session persistence for 15 minutes
How to install pricewin-flight-search
npx skills add https://github.com/price-win/pricewin-skills-hub --skill pricewin-flight-search- Run `bash install.sh` once to register the pricewin MCP server with your agent (Claude Code, Cursor, Windsurf, Gemini CLI, VS Code, or Codex)
- Restart your agent after installation
- Know the 3-letter IATA codes for both origin and destination airports
How to use pricewin-flight-search
- 1.Confirm the 3-letter IATA codes for origin and destination airports (ask the user if their city has multiple airports)
- 2.Call `search_flights_live` with origin, destination, departureDate (YYYY-MM-DD), and optional returnDate, adults, cabin, and language
- 3.Call `poll_flight_results(sessionId)` immediately; this tool blocks internally and returns as soon as fares arrive
- 4.If status is `searching` with few flights, call `poll_flight_results` again (up to 4 more times) to gather more results
- 5.Present the top 5–7 flights per leg, sorted by price, with airline, times, duration, stops, total price, and booking link
Use cases
- Find the cheapest flight between two cities for specific travel dates
- Compare airlines and flight times across multiple OTAs in one search
- Book a round-trip flight by searching outbound and return legs separately
- Identify non-stop vs. connecting flight options with price trade-offs
- Plan the air segment of a multi-leg trip with real-time pricing
- Travel planners and booking agents
- Users comparing airfares before purchase
- Trip-planning assistants integrating flight search into itineraries
- Anyone seeking cheap flights or airline comparisons for specific routes
pricewin-flight-search FAQ
No. Both airports must be 3-letter IATA codes (e.g., SGN for Ho Chi Minh City, BKK for Bangkok). If a city has multiple airports and the user didn't specify, ask which one they prefer rather than guessing.
The search returns immediately with a session ID, but fares typically arrive within 5–30 seconds. Call `poll_flight_results` right away; do not sleep first. If results are still sparse, poll again up to 4 more times.
The `price` field is the total for all passengers, not per person. Divide by the number of adults to show a per-person figure.
Round-trip searches return two independent one-way legs (outbound and return). Each leg has its own flights and booking URL. You can estimate a combined cost by adding the cheapest outbound and return fares, but these are two separate tickets, not a quoted round-trip package.
This means no deep link was captured for that fare. Advise the user to re-check the price on the provider's site (Agoda, Trip.com, or Traveloka) instead of offering a direct booking link.
Full instructions (SKILL.md)
Source of truth, from price-win/pricewin-skills-hub.
name: pricewin-flight-search description: Search live flight fares for a route and date across Agoda, Trip.com, and Traveloka — one-way or round-trip, any cabin, with airline, times, stops, duration, and a direct booking link. Use when the user wants flight prices, plane or air tickets, cheap flights or airfare between two cities, comparing airlines for travel dates, or planning the flying leg of a trip. version: 1.1.1 author: PriceWin platforms: [linux, macos, windows] tags: [flight-search, search-flights, find-flights, flight-prices, cheap-flights, airfare, air-tickets, plane-tickets, flight-deals, flight-comparison, one-way, round-trip, iata, airline, cabin-class, business-class, agoda, tripcom, traveloka, ota, mcp, flights, travel, trip-planning] metadata: openclaw: emoji: "✈️" homepage: https://github.com/Price-Win/pricewin-skills-hub
Requires the
pricewinMCP server. This skill issues no network calls of its own.
Setup (once per machine)
Without the MCP server registered this skill is inert — it tells you to call
search_flights_live and no such tool exists. skills add only copies files, so run:
bash install.sh # add --dry-run first to see what it would change
It registers the hosted server (https://mcp.price.win/mcp, Streamable HTTP, no
credentials) with every agent it finds — Claude Code, Cursor, Windsurf, Gemini CLI, VS Code,
Codex — writing a .bak before touching any file and skipping configs it cannot parse.
Re-running it changes nothing. Restart the agent afterwards.
Flight Search (Live)
MCP server: pricewin. Tool search_flights_live starts an async crawl across Agoda,
Trip.com and Traveloka; poll_flight_results returns the merged, cheapest-per-flight fares.
CRITICAL: IATA codes only
Both airports MUST be 3-letter IATA codes. There is no airport-lookup tool on this server —
resolve the city yourself: Sài Gòn / TP.HCM → SGN, Hà Nội → HAN, Đà Nẵng → DAD,
Bangkok → BKK (main international), Tokyo → NRT or HND, Seoul → ICN.
When a city has several airports and the user did not say which, ask one short question — never pick silently. Never invent a code.
CRITICAL: Polling pattern (differs from hotel search)
search_flights_live returns IMMEDIATELY with a sessionId and zero flights.
- Call
search_flights_livewith origin, destination, departureDate (YYYY-MM-DD), andreturnDateonly for a round trip. Addadults,cabin,language="vi"as needed. - Call
poll_flight_results(sessionId). This tool blocks internally up to ~30s and returns as soon as the first fares land — do NOT sleep before calling it. statusispending|searching|completed|failed. If it comes backsearchingwith few or no flights, call again — up to 4 more times.- Present results as soon as flights arrive; keep polling only if the user wants more.
The session expires 15 minutes after the last poll. After that, start a new search —
the old sessionId is dead.
poll_flight_resultsis registered app-visible for the flight widget. If your host does not expose it to the model, let the widget do the polling and do not fabricate fares.
CRITICAL: price is the party total, in USD
price is the total for all adults — not per-person, and not the two legs combined.
Divide by adults yourself for a per-person figure.
currency is "USD". Do not convert it. It falls back to "VND" only when the live FX
rate was unavailable — so read currency and label the figure with it rather than assuming
either one.
Response format (MUST follow exactly)
Present the TOP 5-7 flights per leg ONLY. For EACH flight:
✈️ *<airline> <flightNumber>* ← bold via markdown
🕐 <dep.time> <origin> → <arr.time> <destination> · <Xh Ym> · <bay thẳng | N điểm dừng>
💰 $<price> tổng cho <adults> khách (~$<price/adults>/khách)
🔗 <bookingUrl>
Line break between flights, no bullet markers. Cheapest flight gets 🏆. duration is in
minutes — format it as 2h 10m. Flag an overnight arrival when arrival.date differs
from departure.date.
Round trips
outboundFlights and returnFlights are two independent one-way searches. List them under
separate headings. You may state a combined estimate as
cheapest outbound + cheapest return, but label it as two separate one-way tickets — it is
not a quoted round-trip fare and the two legs are booked separately.
Booking URLs — use verbatim
bookingUrl is the deep link of the cheapest agent, with dates and passengers already baked in.
Never append, rewrite, or construct params (unlike the hotel skill). A bookingUrl of exactly
https://www.price.win/ means no agent deep link was captured — say the fare must be re-checked
on the provider's site instead of presenting it as a click-to-book link.
Attribute the source only from the URL host (agoda.com, trip.com, traveloka.com) — the
result carries no explicit source field, so do not guess one.
Fields that look useful but are not
stopCities— always empty; describe stops by count onlydeparture.city/arrival.city— repeat the IATA code, not a real city namelegs— usually absent on list results; don't promise a segment breakdown
Ranking
Sort by price. Cheapest first, but surface a non-stop or much shorter option when it costs
only marginally more — say so in one line rather than reordering silently.
Security & data handling
No runtime code and no network calls of its own; the only executable is
install.sh, which adds one MCP entry (pricewin → https://mcp.price.win/mcp)
to agent configs the user already has, backing each file up first and skipping
any it cannot parse. It downloads and executes nothing. The only data sent is the
route query (IATA codes, dates, passengers, cabin) — no passenger names, no PII,
no credentials. Comparison only: this skill cannot book or pay. Full disclosure
in SECURITY.md.
Related skills
More from price-win/pricewin-skills-hub and the wider catalog.

pricewin-hotel-deal-finder
Compare live hotel prices across Booking.com, Agoda, Google Hotels & OpenTravel in one command.

pricewin-hotel-search
Search hotels live across Agoda, Booking.com, Traveloka, and OpenTravel with real-time pricing.

pricewin-price-comparison
Compare live hotel rates across Booking.com, Agoda, Traveloka, and OpenTravel to find the cheapest option.

pricewin-booking-assistant
Book hotels end-to-end with OpenTravel direct properties or OTA fallbacks, handle payments, and manage reservations.

ace-step
Tag-driven music generation, inpainting, and outpainting with ACE Step on RunComfy — $0.0002–0.0003/s.

ai-avatar-video
Create AI avatar and talking-head videos by routing across OmniHuman, Wan, HappyHorse, and Seedance models via RunComfy CLI.