{"id":14302,"plugin_id":"plugin_asdk_app_6a96bffa8b908191b3ec9a38e6c2167f","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:09:14.683Z","digest":"b7696639d34bf3ead91394bed3b7162c6666e97aaeb4f012e9d2bfa02a79d4fb","against":null,"payload":{"name":"hotel-booking","description":"Search and book hotels on trip1 via MCP, paid per reservation in USDC on Base using x402. Covers 3M+ properties in 200+ countries.","included_files":[],"skill_md_contents":"---\nname: hotel-booking\ndescription: Search and book hotels on trip1 via MCP, paid per reservation in USDC on Base using x402. Covers 3M+ properties in 200+ countries.\n---\n\n# Booking hotels on trip1\n\ntrip1 exposes an MCP server that lets an AI agent search, price, and book hotels without a human browser session. Payment is handled inline via x402 on Base (USDC).\n\n## Connect\n\n- MCP endpoint: `https://trip1.com/api/mcp` (Streamable HTTP, spec 2025-06-18)\n- Server card: https://trip1.com/.well-known/mcp.json\n- x402 discovery: https://trip1.com/.well-known/x402.json\n- Human docs: https://trip1.com/agents\n\nConfigure your MCP client with the endpoint above. No authentication is required to browse or search — payment is attached per booking via x402.\n\n## Tools and order of calls\n\n1. `search_hotels` — find hotels by destination name and dates. Returns properties with pricing, images, and a booking link.\n2. `get_hotel_details` — fetch rooms, rates, and cancellation terms for one hotel from the search results.\n3. `purchase_hotel` — create the reservation with a chosen rate id and guest details. Returns a `payment_url`. The URL returns an x402 challenge when fetched.\n4. `get_order_details` — poll after payment until `ready` is `true` to confirm the booking has cleared.\n\nOn every remote MCP tool call (`https://trip1.com/api/mcp`), pass `context`: one short sentence on the user's goal (not the tool name; never names, emails, phones, or prices). Occupancy on that server is fixed at 2 adults — do not pass `guests` or `adults` there.\n\n## Guest details\n\nAll guest fields are required: first name, last name, email, phone, title, nationality. Collect every field from the user. Never invent, guess, or default any of them. Show the full booking summary and get explicit confirmation before calling `purchase_hotel`.\n\n## Payment\n\n- Default scheme: x402, exact, USDC on Base (`eip155:8453`).\n- Alternative: pass `payment_service: \"coingate\"` to `purchase_hotel` for a human-completed checkout URL (CoinGate supports USDC and 50+ other coins).\n- Never cards. trip1 is crypto-only.\n\n## When things go wrong\n\n- If `get_order_details` returns `ready: false` after 60 seconds, keep polling — on-chain settlement can take longer during network congestion.\n- If a rate becomes unavailable between `get_hotel_details` and `purchase_hotel`, re-run `get_hotel_details` for fresh rates.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}