
pricewin-booking-assistant
Recommend hotel rooms and complete a real booking end to end — reserve an OpenTravel direct property with a payment link (bank QR, card, or PayPal), check payment status, resend an expired link, or cancel a booking. Falls back to direct Booking.com/Agoda/Traveloka links for OTA-only hotels. Use when booking or reserving a hotel, getting room recommendations, paying for a stay, checking a confirmation code, or cancelling a reservation.
- Installs
- 10.5K
- Last 24h
- —
- Trending rank
- —
- Security
- Fail
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/price-win/pricewin-skills-hub --skill pricewin-booking-assistant- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads pricewin-booking-assistant automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
Security audits
Independent scans of the skill's instructions and bundled files.
SKILL.md
The instructions your agent reads when the skill is triggered.
Requires the
pricewinMCP server. Handles real money: it creates bookings and payment links. Read the confirmation rules below before use.
Booking Assistant
MCP server: pricewin. Orchestrates discover → detail → recommend → book → pay → manage.
What is actually bookable
| Source | Can you book it here? |
|---|---|
source: "OPENTRAVEL_DIRECT" (has propertyId) | ✅ Yes — full booking + payment via create_booking |
| Booking.com / Agoda / Traveloka | ❌ No — comparison only. Hand the user the OTA url |
Only OpenTravel direct properties yield the propertyId + roomTypeId that
create_booking requires. Never imply an OTA hotel can be reserved through this skill.
Recommendation flow
- Discover —
search_hotels_live(city, checkIn, checkOut, adults, …)→sessionId, then pollpoll_search_results(sessionId, nights)every 5s whilestatusispending/partial(up to 18 polls / 90s) - Score —
rating × log(reviewCount + 1)— balances quality against credibility. Strong candidates:rating ≥ 8.0andreviewCount ≥ 100 - Rank — top 3–5 by score
- Detail —
get_hotel_detail(propertyId, checkIn, checkOut, adults)for OpenTravel picks;get_ota_hotel_detail(hotelName, city, checkIn, checkOut, queryText)for a named OTA hotel (~20–60s) - Recommend — filter rooms by guest capacity, then pick best value
Booking link rules (OTA hotels)
- NEVER invent URLs — only use a
urlthe tool returned - Always name the OTA next to the link; if several have the same room, show all with prices
- Append the user's dates to the raw URL — see
pricewin-hotel-search
Booking flow (OpenTravel direct)
1. Get the room first — mandatory
Call get_hotel_detail before booking to obtain roomTypeId, total price, and
currency. Do not guess any of the three.
Optionally call get_cancellation_policy(propertyId, ratePlanId, checkInDate) and show
the refund terms before taking payment.
2. Ask for all four things in ONE message
In your first request for guest info, ask for all of these together — never split across turns, and always in the user's language:
- Full name
- Phone number
- Email — the confirmation email goes here
- Payment method
⚠️ Never auto-fill the email from the account/profile. The guest is often not the account owner. It must come from what the user typed in this chat. If it is missing, ask.
Present the three payment methods as equal choices, no default, no recommended order:
- Bank transfer via QR (SePay) →
SEPAY - International card via Polar →
POLAR - PayPal →
PAYPAL
If the user already signalled a preference, infer it and skip re-asking:
| They said | Method |
|---|---|
| "scan QR", "quét mã", "chuyển khoản", "bank transfer", "VietQR" | SEPAY |
| "card", "thẻ", "credit/debit card", "visa", "mastercard" | POLAR |
| "PayPal" | PAYPAL |
If anything is still missing after their reply, ask again for just the missing item(s).
3. Confirm before charging
Summarise back everything — hotel, room type, check-in/check-out, guests, TOTAL price (full amount, not a deposit), guest name, email address (emphasise it — a typo means the confirmation never arrives), phone, payment method — then explicitly ask the user to confirm it is all correct.
4. Only then call create_booking
Required: propertyId, roomTypeId, checkIn, checkOut, adults, guestName,
guestPhone, guestEmail, paymentMethod, totalAmount, currency.
Also pass queryText (user's original text, verbatim).
Returns a payment link and a confirmationCode (e.g. K7X9M2P4) — surface both.
After booking
| User says | Tool |
|---|---|
| "I paid" / "check my booking" | check_booking_status(confirmationCode) |
| "the payment link expired" | recreate_payment_link(confirmationCode) |
| "cancel my booking" | request_cancel_token → then cancel_booking |
🚨 Never call create_booking twice for the same stay. An expired payment link is
fixed with recreate_payment_link — it reuses the same confirmation code. Calling
create_booking again creates a duplicate booking and a duplicate confirmation email.
Cancelling — two steps, by design
request_cancel_token(confirmationCode, guestEmail)— email must match the booking's primary guest. This emails the guest a magic link- The guest pastes the token back →
cancel_booking(confirmationCode, cancelToken, reason)(reason≥ 3 chars)
You cannot cancel without the guest fetching that token from their inbox. Tell them to check their email rather than retrying step 1.
Output format
### Hotel Name ★★★★☆
- Rating: 8.5/10 (1,234 reviews)
- Best room: Deluxe Double — $85/night
- Free cancellation: until 2026-08-10
- Book: [Reserve now](payment-link) ← OpenTravel direct
- Or compare: [Agoda](url) | [Booking.com](url)
Tool inputs and response fields: reference.md.
Security & data handling
This skill has real transaction authority and transmits guest PII (name,
phone, email) to PriceWin's hosted MCP server https://mcp.price.win/mcp — that
is inherent to making a reservation, and it is why booking is a separate skill
from search. It ships no code and makes no network calls of its own.
Card numbers, CVV and bank credentials never pass through the skill or the
agent — create_booking returns a payment link and the user pays on the
provider's own page. Never ask for card details; refuse if offered.
Confirm the full summary and total price with the user before every
create_booking. Full disclosure — operator, exact PII fields per tool, payment
boundary, cancellation model — in SECURITY.md.
FAQ
What does the pricewin-booking-assistant skill do?
Recommend hotel rooms and complete a real booking end to end — reserve an OpenTravel direct property with a payment link (bank QR, card, or PayPal), check payment status, resend an expired link, or cancel a booking. Falls back to direct Booking.com/Agoda/Traveloka links for OTA-only hotels. Use when booking or reserving a hotel, getting room recommendations, paying for a stay, checking a confirmation code, or cancelling a reservation.
How do I install pricewin-booking-assistant?
Run npx skills add https://github.com/price-win/pricewin-skills-hub --skill pricewin-booking-assistant in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/pricewin-booking-assistant/ (personal) or .claude/skills/pricewin-booking-assistant/ (project).
Which AI agents can use pricewin-booking-assistant?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is pricewin-booking-assistant safe to install?
Security partners have reviewed it: Gen Agent Trust Hub passed; Socket passed; Snyk flagged risks. As with any skill, read the SKILL.md and bundled scripts before installing.
Who maintains pricewin-booking-assistant?
It is published by price-win in price-win/pricewin-skills-hub. It has 10,482 recorded installs.
More from price-win/pricewin-skills-hub
pricewin-hotel-deal-finder
price-win/pricewin-skills-hub
Find the cheapest hotel deal by comparing live prices across Booking.com, Agoda, Google Hotels, and OpenTravel for any city worldwide and any travel dates — one command returns ranked best-value, cheapest, and quality picks with direct booking links, all normalized to USD. Use whenever someone asks for hotel prices, hotel deals, the cheapest room or rate, best hotel rates, a hotel price comparison, or which OTA is cheaper — e.g. 'is Booking or Agoda cheaper for Tokyo', 'find me a hotel in Bangkok under $100', 'compare hotel prices for 12–15 Aug', 'cheapest hotel near Shinjuku'.
pricewin-flight-search
price-win/pricewin-skills-hub
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.
pricewin-price-comparison
price-win/pricewin-skills-hub
Compare live hotel room rates across Booking.com, Agoda, Traveloka, and OpenTravel for specific dates — which OTA is cheapest for the same property, per-room prices, and free-cancellation terms. Use when comparing hotel prices, checking room rates for a named hotel, asking which site is cheaper, or finding the best rate for given check-in/check-out dates.
pricewin-hotel-search
price-win/pricewin-skills-hub
Search hotels live across Agoda + Booking.com + Traveloka + OpenTravel with realtime pricing for specific dates. Use when user wants hotel prices for travel dates, comparing OTAs, or finding rooms.
pricewin-deal-finder
price-win/pricewin-skills-hub
Find the cheapest hotel deal by comparing live prices across Booking.com, Agoda, Google Hotels, and OpenTravel for any city worldwide and any travel dates — one command returns ranked best-value, cheapest, and quality picks with direct booking links, all normalized to USD. Use whenever someone asks for hotel prices, hotel deals, the cheapest room or rate, best hotel rates, a hotel price comparison, or which OTA is cheaper — e.g. 'is Booking or Agoda cheaper for Tokyo', 'find me a hotel in Bangkok under $100', 'compare hotel prices for 12–15 Aug', 'cheapest hotel near Shinjuku'.
Popular backend & apis skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
entra-app-registration
microsoft/azure-skills
Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.
google-agents-cli-adk-code
google/agents-cli
This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).
embedded-captions
heygen-com/hyperframes
Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.
entra-agent-id
microsoft/azure-skills
Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).
neon
neondatabase/agent-skills
Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.