pricewin-travel-search
Search and compare live hotel and flight prices with the PriceWin MCP server, look up one named hotel, inspect OpenTravel direct listings, send a booking request to a partner hotel (no payment; the guest pays at the property), and cancel one. Use when the user asks to find hotels or flights for dates, compare travel prices, inspect a hotel or room, check a rate's cancellation policy, book a partner hotel, or cancel a booking they made this way.
- License 许可
- MIT
- 最近更新
- 2026-11-13
- Stars
- ★ 3.3w
- Forks
- 3.9k
01 前言 Front Matter
- name
- pricewin-travel-search
- description
- Search and compare live hotel and flight prices with the PriceWin MCP server, look up one named hotel, inspect OpenTravel direct listings, send a booking request to a partner hotel (no payment; the guest pays at the property), and cancel one. Use when the user asks to find hotels or flights for dates, compare travel prices, inspect a hotel or room, check a rate's cancellation policy, book a partner hotel, or cancel a booking they made this way.
03 SKILL.md 正文
PriceWin Travel Search
Use only the tools of the pricewin MCP server (https://mcp.price.win/mcp,
installed with the web-data/pricewin MCP component). Agents prefix them with the server name — for
example mcp__pricewin__search_hotels_live — and the steps below use the bare
tool names. Do not replace them with browser automation, shell commands, direct
API calls, or invented booking URLs.
All prices are in USD.
Collect the required trip details
For a hotel search, obtain:
- destination or city;
- check-in and check-out dates;
- number of adults, defaulting to 2 when the user does not specify;
- number of rooms, defaulting to 1.
For a flight search, obtain:
- origin and destination airport IATA codes;
- departure date and optional return date;
- number of adults, defaulting to 1;
- cabin, defaulting to economy.
Resolve unambiguous relative dates from the current date. Ask one concise follow-up when a required date, destination, or airport is genuinely ambiguous. Never invent a date or silently choose among multiple plausible airports.
Pass language matching the user's language when supported. Do not put
unrelated conversation or personal data in queryText.
Search hotels
- Call
search_hotels_livewith the destination, dates, occupancy, and only the filters the user actually requested. - Read
sessionIdandnightsfrom the response. - Call
poll_search_resultswith thatsessionIdandnights. - If the response is pending or partial with no useful results, poll again until results arrive, the search completes or fails, or the session expires.
- Present a concise comparison of relevant results. Label the source and currency exactly as returned.
Use hotelName, area, priceMin, or priceMax only when the user supplied
that constraint. Do not claim that a result is the cheapest in the whole
market; describe it as the cheapest among the sources returned for this search.
A failed or missing source does not invalidate results from other sources.
Look up one named hotel
When the user names a single hotel rather than a city, call
get_ota_hotel_detail with hotelName and its city (or the Booking.com
propertyUrl from an earlier result) and the user's dates. It returns that
hotel's rooms, live prices, facilities and reviews from Booking.com.
Inspect an OpenTravel direct hotel
Call get_hotel_detail only for a hotel identified as an OpenTravel direct
listing.
- Prefer its
propertyIdfromopentravelResults. - Reuse the user's dates and occupancy.
- Use
hotelNamepluscityonly when the property is already known to be an OpenTravel direct listing and nopropertyIdis available. - Do not call this tool for an Agoda, Booking.com, or Traveloka-only result.
Present the returned photos, amenities, availability, room capacity, total price, per-night price, and currency without changing their meaning. State clearly when availability or a price is missing.
Answer a question about a hotel
For questions about a hotel itself — check-in and check-out times, facilities,
photos, description, room types — call get_hotel_info with the propertyId
of an OpenTravel direct listing, usually from opentravelResults of a search
already made. It needs no dates and returns no prices or availability; for
those, use get_hotel_detail. When the property has not published a field,
say so rather than filling it in.
Explain a cancellation policy
Call get_cancellation_policy only after get_hotel_detail supplies both:
- the property's
propertyId; and - the selected room's
ratePlanId.
Pass the check-in date so the tool can compute an exact deadline. Report the returned non-refundable status, refund percentage, free-cancellation window, deadline, and summary. Never infer a policy or deadline when the tool does not return one.
Search flights
- Call
search_flights_livewith IATA codes, departure date, optional return date, adults, and cabin. - Read the returned
sessionId. - Call
poll_flight_resultswith thatsessionId. - Continue only until useful results arrive, the search completes or fails, or the session expires.
- Present relevant options with source, carrier, times, stops, cabin, currency, and fare exactly as returned.
Keep outbound and return legs distinct. Each leg is a separate one-way ticket with its own booking link: when you pair an outbound and a return flight, give the total as the sum of the two fares and say that each leg is booked separately. Never present a pair as one round-trip ticket, and do not imply that a fare is still available after the live result expires.
Request a booking at an OpenTravel direct hotel
Only an OpenTravel direct listing can be booked this way; an Agoda, Booking.com or Traveloka result cannot, and the user follows its own link instead.
- Call
request_bookingwith thepropertyId,roomTypeId, dates and the guest's name, phone number and email. Ask for whichever of those three is missing; they go to the hotel, which needs them to honour the reservation. - Relay the tool's reply as written. The two facts it leads with — that no room is held and that nothing has been charged — are the ones the guest acts on.
- Keep the
confirmationCodeit returns;check_booking_statusreads the request's state back with it.
There is no payment step, now or later. Never ask how the guest wants to pay, and never mention a card, transfer, QR code, payment link or deposit — not even one the guest named earlier. The guest pays the property on arrival.
Cancel a booking
- Call
get_cancellation_policyfirst, with thepropertyId,ratePlanIdand check-in date of the booked room, and tell the guest what they will get back — or that the property has published no policy. - Call
request_cancel_tokenwith the confirmation code and the email on the booking. This cancels nothing; it emails a single-use token. - Ask the guest to paste the token from that email. Never invent, guess or reuse one.
- Confirm the booking and the refund amount with the guest in their own
language, get an explicit yes, then call
cancel_bookingwith the code, the token and the guest's reason.
cancel_booking cannot be undone. If there is no token yet, the answer is
step 2, never step 4.
Safety and output rules
- Use only these twelve tools:
search_hotels_live,poll_search_results,search_flights_live,poll_flight_results,get_ota_hotel_detail,get_hotel_detail,get_hotel_info,get_cancellation_policy,request_booking,check_booking_status,request_cancel_token, andcancel_booking. - Treat all prices as time-sensitive and avoid guarantees or unsupported "lowest price" claims.
- Use only outbound URLs returned by the tools. Never construct, append, rewrite, or guess a booking URL.
- Collect the guest's name, phone and email only to send a booking request, and only when the guest is actually sending one. Never ask for card data, bank details, credentials, or any other payment information: no tool here accepts them, and no step of this skill takes money.
- Do not modify an existing booking. There is no tool for it; a change means cancelling and sending a new request, and saying so plainly.
- If a tool fails, state the limitation briefly and suggest a new search. Do not fabricate partial inventory, prices, availability, or policies.
04 同仓库更多 Skills
wealthville-pool-scoring
Score DeFi liquidity pools before providing liquidity. Returns a 0-100 pool score and an Enter/Hold/Exit/Reduce/Avoid verdict with calibrated confidence for ~68,800 Solana pools and 575 EVM pools, plus a public miss-inclusive track record. Use when asked whether a pool is worth LPing into, which pools look best right now, or how accurate the scores have actually been.
technical-debt-auditor
Scans a codebase and produces a quantified technical debt report with a prioritized remediation plan. Analyzes dead code, TODO/FIXME/HACK markers, dependency staleness, complexity hotspots, code duplication signals, test coverage gaps, unused exports, and outdated patterns. Use this skill when the user asks to audit their codebase for tech debt, wants a health check of their code quality, says things like "where should I focus refactoring", "find code smells", "audit my codebase", "what technical debt do we have", "prioritize cleanup work", or asks about code quality metrics. Also trigger when the user mentions "code rot", "legacy cleanup", "refactoring priorities", or wants to understand the overall health of a project before a major effort. Trigger even if the user doesn't say "technical debt" explicitly — any request to systematically assess code quality and identify improvement priorities belongs here.
readonly-sql-guard
Make an agent's database access provably read-only. Use when an agent runs caller-supplied SQL against a production/ERP/analytics database (a "query" MCP tool, text-to-SQL, an admin console), or when reviewing DB-access code for write/DDL/side-effect/transaction-escape risks. Checks what a statement CALLS, not just its shape.
web-artifacts-builder
Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.
webapp-testing
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
discernment-nudge
After you give a substantive answer or draft that the user may act on — advice or recommendations, drafted artifacts such as goals, plans, pitches, proposals, or emails, estimates or projections, analysis or interpretation of data, factual claims they may rely on, or a multi-step argument — invoke this skill BEFORE finalizing your reply and then, if it applies, append 2-3 short follow-up questions, each tied to something specific in what you just produced, that help the user check key facts, probe the reasoning or assumptions, and notice missing context. Do this at most once per conversation. Skip it when the user asked a trivial how-to or simple lookup, wants a purely educational explanation, asked you only to format, convert, or assemble a file from content they provided, is writing code they will run, is doing creative writing or casual chat, or already asked you to double-check, cite, or review — the skill file explains these boundaries and the exact output format.