mcpField
P
pay-and-book

pay-and-book

github.com/justintravalaその他054 回インストール23 週間前に更新
リポジトリ

pay-and-book について

pay-and-bookは、ホテル検索からウォレット確認、支払い、予約までを調整するエージェント向けメタスキルです。関連スキルを順に実行し、ホテル選択や入金・支払いの確認を必須にします。

主な機能

  1. 01ホテル検索・予約スキルの調整
  2. 02ウォレット認証とUSDC残高の確認
  3. 03必要に応じた料金プラン表示
  4. 04ホテル選択と支払い承認の確認
  5. 05予約・取引情報の要約

活用シーン

  1. 01USDCでのホテル予約
  2. 02予約前のウォレット残高確認
  3. 03予約前の客室プラン比較

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/justintravala/travel-skills --skill pay-and-book

インストール後、Claude Code で/pay-and-bookを入力して読み込まれたか確認します。

詳細

pay-and-book

ホテル検索とオンチェーン決済を単一のフローにまとめる、エンドツーエンドのオーケストレーションスキルです。これはメタスキルです。コマンド自体は実行せず、ほかのスキルを適切な順序で調整します。

使用するタイミング

ユーザーが予約全体を一度に処理したい場合に、このスキルを使用します。

  • 「来週末の東京のホテルを予約して。USDC で支払って」
  • 「5 月 1 日から 5 日までパリで 4 つ星のホテルを探して、ウォレットから予約して」
  • 「渋谷の近くで 3 泊できるホテルが必要です。すべてお任せします」

ユーザーが明らかに段階ごとの操作を希望している場合は、個別のスキル(search-hotel、book-hotel など)を使用してください。

フロー全体

以下のステップを順番に実行します。前提条件がすでに満たされている場合に限り、そのステップを省略してください。

ステップ 1:ホテルを検索する

search-hotel スキルを使用します。検索結果の上位候補をユーザーに提示し、希望するホテルを尋ねてください。ユーザーに代わって選んではいけません。

ステップ 2:(任意)客室の選択肢を表示する

ユーザーが特定のホテルの異なる料金プランを確認したい場合は、search-room スキルを使用します。それ以外の場合は、search-hotel のデフォルトの packageId で問題ありません。

ステップ 3:ウォレットの準備状況を確認する

認証の前に、現在の状態を確認します。

npx awal@latest balance

該当するケースは 3 つです。

  • 未認証 → coinbase/agentic-wallet-skills の authenticate-wallet スキルを実行します。ユーザーにメールアドレスを尋ねます。awal が OTP を送信します。
  • 認証済みだが USDC が予約総額未満 → fund スキルを実行します。不足額(booking_total - current_balance + small buffer)を計算し、入金が必要な金額をユーザーに伝えます。
  • 認証済みで十分な USDC がある → ステップ 4 に進みます。
ステップ 4:最終確認と予約

book-hotel スキルを使用します。x402 による決済と予約確認を処理します。

ステップ 5:概要を伝える

予約 ID、支払総額(USDC)、tx hash、キャンセル期限を含む、分かりやすい概要をユーザーに伝えます。

判断フロー

User asks to book a hotel autonomously
  │
  ├─ Has destination + dates?
  │    No → ask once, gather both
  │    Yes ↓
  │
  ├─ search-hotel skill → present results
  │
  ├─ User picked a hotel?
  │    No → wait for choice
  │    Yes ↓
  │
  ├─ User wants to see other rate plans?
  │    Yes → search-room skill
  │    No ↓ (use default packageId)
  │
  ├─ Wallet authenticated?
  │    No → authenticate-wallet skill
  │    Yes ↓
  │
  ├─ USDC balance >= total + 5%?
  │    No → fund skill
  │    Yes ↓
  │
  ├─ User confirmed total + guest details?
  │    No → ask for guest details, summarize, confirm
  │    Yes ↓
  │
  └─ book-hotel skill (x402 pay) → confirm + recap

セッション例

User: Find me a hotel in Tokyo May 1-5 and book it with USDC

Agent: [search-hotel skill]
  → Presents 5 hotels

User: Book the Park Hyatt

Agent: [check wallet] → not authenticated
  → "Need to log in first. What email?"

User: [email protected]

Agent: [authenticate-wallet skill] → email OTP
User: OTP code is 123456
Agent: [authenticate-wallet completes]
  → "Logged in. Wallet balance: 0 USDC."
  → "You'll need 1,800 USDC for this booking. Want to fund the wallet?"

User: Yes, fund 2000

Agent: [fund skill] → onramp link
  → User completes onramp
  → "Wallet now has 2000 USDC."
  → "Ready to book Park Hyatt Tokyo, May 1-5, 1,800 USDC.
     What name/email for the guest?"

User: Nguyen Van A, [email protected]

Agent: → "Booking summary: ... Confirm? (yes/no)"
User: yes
Agent: [book-hotel skill — awal x402 pay]
  → "✅ Booked! BK_2026_05_001, paid 1,800 USDC, tx 0xabc..."

重要なルール

  • ユーザーが選択するステップを省略してはいけません。 検索結果が明らかに 1 件だけでも、ユーザーに提示して確認を待ってください。
  • 自動で入金してはいけません。 fund スキルを実行する前に、必ずユーザーに確認してください。入金にはユーザーによる外部決済が伴います。
  • 自動で支払ってはいけません。 最終ステップの book-hotel では、必ず概要を表示し、明示的な承認を待ってください。
  • 日付、宿泊人数、ホテルの選択、宿泊者情報、入金額などが不明確な場合は、処理を停止して確認してください。
  • ユーザーはどのステップでも中断できます(「やっぱり、別の日程で探して」など)。該当する前のステップからやり直してください。

参照するスキル(インストール必須)

スキルソース用途
search-hotelこのパッケージホテルを検索
search-roomこのパッケージ(任意)料金プランを確認
book-hotelこのパッケージx402 決済と予約
authenticate-walletcoinbase/agentic-wallet-skillsメール OTP でログイン
fundcoinbase/agentic-wallet-skillsCoinbase Onramp 経由で USDC をチャージ

Coinbase のスキルがインストールされていない場合は、ユーザーに次のように伝えてください。

このフローでは Coinbase のウォレットスキルも必要です。次のコマンドでインストールしてください。

npx skills add coinbase/agentic-wallet-skills

コメント