mcpField
P
pp-hotel-tonight

pp-hotel-tonight

github.com/mvanhornその他2.1k105 回インストール今日更新
リポジトリ

pp-hotel-tonight について

pp-hotel-tonightは、HotelTonightの直前ホテル割引を調べるエージェントやスクリプト向けの読み取り専用コマンドラインスキルです。現在の検索結果とローカルの価格履歴を組み合わせ、値下がりの追跡や料金の評価に使えます。ログインや予約には対応しません。

主な機能

  1. 01直前ホテル割引の検索
  2. 02価格監視と値下がり検出
  3. 03ホテルの価格履歴と評価
  4. 04エリアと日程の比較
  5. 05市場とDaily Dropの確認
  6. 06エージェント向け出力の絞り込み

活用シーン

  1. 01価格目標に沿った都市の割引追跡
  2. 02ホテル料金が割安かの確認
  3. 03エリアまたは宿泊日の比較
  4. 04当日と過去のDaily Dropの確認

MCP 対応

`hotel-tonight-pp-mcp` MCPサーバーのインストールとClaude Codeへの登録手順が記載されています。MCPに公開するツールの説明はありません。

インストール

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

$npx skills add https://github.com/mvanhorn/printing-press-library --skill pp-hotel-tonight

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

詳細

HotelTonight — Printing Press CLI

前提条件:CLI のインストール

このスキルでは hotel-tonight-pp-cli バイナリを使用します。このスキルのコマンドを実行する前に、CLI がインストールされていることを必ず確認してください。 インストールされていない場合は、先にインストールしてください。

  1. Printing Press インストーラーを使ってインストールします。バイナリの既定のインストール先は、macOS/Linux では $HOME/.local/bin、Windows では %LOCALAPPDATA%\Programs\PrintingPress\bin です。
    npx -y @mvanhorn/printing-press-library install hotel-tonight --cli-only
    
  2. 確認します:hotel-tonight-pp-cli --version
  3. スキルを実行するエージェント/ランタイムで、表示されたインストールディレクトリが $PATH に含まれていることを確認してください。

npx によるインストールに失敗した場合(Node がない、オフラインなど)は、Go からの直接インストールに切り替えてください(Go 1.26.6 以降が必要です)。

go install github.com/mvanhorn/printing-press-library/library/travel/hotel-tonight/cmd/hotel-tonight-pp-cli@latest

インストール後に --version が「command not found」と表示する場合、ランタイムから $PATH 上のバイナリディレクトリが見えていません。確認に成功するまでは、スキルのコマンドを実行しないでください。

この CLI を使用する場合

エージェントやスクリプトで、HotelTonight の直前予約向けホテル情報を継続的に蓄積・活用したい場合に、この CLI を使用してください。たとえば、都市の値下がりを監視する、ホテルの価格履歴を作成する、提示された料金が本当に安いかを判断する、近隣エリアや日付を比較するといった用途に使えます。読み取り専用かつ匿名で動作し、予約を行うこともログインを必要とすることもありません。

この CLI を使用しない場合

作成、更新、削除、公開、コメント、賛成票の追加、招待、注文、メッセージの送信、予約、購入、またはリモート状態の変更が必要なリクエストでは、この CLI を有効にしないでください。この CLI が提供するのは、調査、エクスポート、同期、分析用の読み取り専用コマンドです。

独自の機能

これらの機能は、この API のほかのツールでは利用できません。

ローカルの価格情報
  • watch — 場所の最新のお得情報をスナップショットとして記録し、客室料金が設定したしきい値を下回った場合や、前回の確認時より値下がりした場合に通知します。

    エージェントが、検索を何度も行うのではなく、都市の直前予約向けホテルの値下がりを継続的に監視する必要がある場合に使用してください。

    hotel-tonight-pp-cli watch --lat 37.7749 --lng -122.4194 --when tonight --below 150 --agent
    
  • history — ローカルストアから、1軒のホテルについて記録された価格と割引率の履歴を表示します。

    一時的な料金を1件見るだけでなく、ホテルの実際の価格推移を確認する必要がある場合に使用してください。

    hotel-tonight-pp-cli history "Argonaut Hotel" --days 30 --agent
    
  • verdict — ホテルの現在の提示価格を、観測された最低価格・中央値・最高価格と比較し、安い、標準的、高いのいずれかに分類します。

    推測ではなく、根拠のある基準を使って「これは本当に安いのか?」に答える場合に使用してください。

    hotel-tonight-pp-cli verdict "Argonaut Hotel" --agent
    
リアルタイムのお得情報
  • compare-neighborhoods — 都市圏の今夜のお得情報を近隣エリアごとにまとめ、価格の中央値または割引率の高さでエリアを順位付けします。

    今夜、都市のどのエリアが直前予約で最もお得かを判断する場合に使用してください。

    hotel-tonight-pp-cli compare-neighborhoods --metro 1 --when tonight --agent
    
  • datescan — 今夜、明日、週末の各日について、場所のお得情報を並べて比較し、順位付きで表示します。

    検索を何度も実行せずに、エリアで宿泊する最も安い夜を見つける場合に使用してください。

    hotel-tonight-pp-cli datescan --lat 30.3071 --lng -97.7354 --agent
    
  • daily-drop — 市場ごとに、今日の Daily Drop 対象ホテルと実際の割引価格を表示します(アプリではスライドして解除するゲートの先に隠されています)。また、--history を指定すると、過去の Daily Drop の記録を確認できます。

    ロックを解除するまでアプリで非表示になり、毎日消去される、HotelTonight 限定の1日1回のフラッシュセールを確認・追跡する場合に使用してください。

    hotel-tonight-pp-cli daily-drop --metro 1 --agent
    

コマンドリファレンス

inventory — 場所ごとの直前予約向けホテルのお得情報

  • hotel-tonight-pp-cli inventory — 緯度/経度と日付範囲を指定して、近くの直前予約向けホテルのお得情報を検索します

markets — HotelTonight の市場(お得情報を提供している都市)

  • hotel-tonight-pp-cli markets get — 数値 ID を指定して、単一の市場を取得します
  • hotel-tonight-pp-cli markets list — HotelTonight の主要市場を、場所、スラッグ、カテゴリ別価格とともに一覧表示します
  • hotel-tonight-pp-cli markets nearby — 市場 ID を指定して、人気の市場や近隣の市場を一覧表示します
適切なコマンドを見つける

やりたいことは分かっていても、どのコマンドを使えばよいか分からない場合は、CLI に直接尋ねてください。

hotel-tonight-pp-cli which "<capability in your own words>"

which は、自然言語で記述した機能の問い合わせを、この CLI の厳選された機能インデックスから最適なコマンドに対応付けます。終了コード 0 は少なくとも 1 件の一致があったことを意味し、終了コード 2 は確信を持てる一致がなかったことを意味します。その場合は --help を確認するか、より絞り込んだ問い合わせを使用してください。

レシピ

座標付近で今夜最も安い宿をエージェント向けに絞り込む
hotel-tonight-pp-cli inventory --latitude 37.7749 --longitude -122.4194 --agent --select rooms.hotel.name,rooms.hotel.neighborhood,rooms.customer_price_per_night,rooms.strikethrough_price,rooms.deal_type

生の在庫データのペイロードは、ネストされた取引データが数十 KB にもなります。--select とドット区切りのパスを使うと、ホテル、周辺地域、料金、過去 30 日間の最高値、取引タイプだけを取得できるため、エージェントのコンテキストを無駄に消費しません。

目標価格を設定して周辺地域を監視する
hotel-tonight-pp-cli watch --lat 37.7749 --lng -122.4194 --when tonight --below 150

現在の取引情報をスナップショットとして保存し、料金が 150 ドルを下回った部屋や、前回の観測時より安くなった部屋を報告します。外出中の値下がりを検知できるよう、cron で実行してください。

どの夜に宿泊するか決める
hotel-tonight-pp-cli datescan --lat 30.3071 --lng -97.7354

同じエリアの今夜、明日、週末の料金を並べて表示するため、最も安い夜を一目で選べます。

この料金は本当にお得ですか?
hotel-tonight-pp-cli verdict "Argonaut Hotel"

現在の見積もりを、ホテル独自の記録上の最安値・中央値・最高値と比較して判定します。基準を作るために、事前に数回同期しておく必要があります。

認証の設定

認証は不要です。

hotel-tonight-pp-cli doctor を実行して、設定を確認してください。

エージェントモード

任意のコマンドに --agent を追加します。次のオプションに展開されます:--json --compact --no-input --no-color --yes。

  • パイプ可能 — JSON は標準出力に、エラーは標準エラー出力に出力されます

  • フィルタ可能 — --select でフィールドを絞り込めます。ドット区切りのパスはネストされた構造をたどり、配列では各要素を対象に処理します。詳細な API でコンテキストを小さく保つために重要です。

    hotel-tonight-pp-cli inventory --latitude example-value --longitude example-value --agent --select id,name,status
    
  • プレビュー可能 — --dry-run で、送信せずにリクエストを表示します

  • オフラインでも利用可能 — 同期/検索コマンドは、利用可能な場合、ローカルの SQLite ストアを使用できます

  • 非対話型 — プロンプトは表示されず、入力はすべてフラグで指定します

  • 読み取り専用 — この CLI を作成、更新、削除、公開、コメント、賛成投票、招待、注文、送信、その他の変更を伴うリクエストに使用しないでください

レスポンスのエンベロープ

ローカルストアまたは API から読み取るコマンドは、データの出所を示すエンベロープで出力をラップします。

{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

データには .results を、ライブデータかローカルデータかの確認には .meta.source を解析してください。人間が読める N results (live) の概要は、標準出力が端末で、かつ機械処理用の形式フラグ(--json、--csv、--compact、--quiet、--plain、--select)が設定されていない場合に限り、標準エラー出力に表示されます。パイプやエージェントでの利用、および形式を明示した実行では、標準出力に JSON のみが出力されます。

エージェントからのフィードバック

この CLI に問題があると気付いた場合は(エージェントが気付いた場合も同様に)、記録してください。

hotel-tonight-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
hotel-tonight-pp-cli feedback --stdin < notes.txt
hotel-tonight-pp-cli feedback list --json --limit 10

記録はローカルの ~/.hotel-tonight-pp-cli/feedback.jsonl に保存されます。HOTEL_TONIGHT_FEEDBACK_ENDPOINT が設定され、さらに --send が渡されるか、HOTEL_TONIGHT_FEEDBACK_AUTO_SEND=true が設定されていない限り、POST されることはありません。デフォルトではローカルにのみ保存されます。

バグ報告ではなく、意外だったことを書いてください。短く、具体的に、1 行で記録してください。積み重ねる価値があるのはその部分です。

出力の送信先

すべてのコマンドで --deliver <sink> を指定できます。出力は、標準出力に加えて、または標準出力の代わりに、指定した送信先に送られます。これにより、エージェントは手作業でパイプをつながずにコマンドの結果を振り分けられます。次の 3 種類の送信先に対応しています。

送信先動作
stdoutデフォルト。標準出力にのみ書き込みます
file:<path>出力を <path> にアトミックに書き込みます(tmp + rename)
webhook:<url>出力本文を URL に POST します(--compact の場合は application/json または application/x-ndjson)

未対応のスキームを指定すると、対応している送信先を示す構造化エラーが返され、処理は拒否されます。Webhook の送信に失敗すると、ゼロ以外の終了コードが返され、URL と HTTP ステータスが標準エラー出力に記録されます。

名前付きプロファイル

プロファイルは、保存したフラグ値のセットで、複数回の実行で再利用できます。スケジュールされたエージェントが、毎回同じ設定で同じコマンドを呼び出す場合に使用します。これは HeyGen の「Beacon」パターンです。

hotel-tonight-pp-cli profile save briefing --json
hotel-tonight-pp-cli --profile briefing inventory --latitude example-value --longitude example-value
hotel-tonight-pp-cli profile list --json
hotel-tonight-pp-cli profile show briefing
hotel-tonight-pp-cli profile delete briefing --yes

明示的に指定したフラグは常にプロファイルの値より優先され、プロファイルの値はデフォルト値より優先されます。agent-context は、実行時に情報を調べるエージェントが利用可能なプロファイルを検出できるよう、available_profiles の下にすべてのプロファイルを一覧表示します。

終了コード

コード意味
0成功
2使用方法のエラー(引数が正しくありません)
3リソースが見つかりません
5API エラー(上流の問題)
7レート制限中(待機して再試行してください)
10設定エラー

引数の解析

$ARGUMENTS を解析します。

  1. 空、help、または --help → hotel-tonight-pp-cli --help の出力を表示します
  2. install で始まる場合 → mcp で終わる場合は MCP のインストール、それ以外の場合は上記の前提条件を参照してください
  3. それ以外 → 直接使用(--agent を付けて CLI コマンドとして実行します)

MCP サーバーのインストール

  1. MCP サーバーをインストールします。
    go install github.com/mvanhorn/printing-press-library/library/travel/hotel-tonight/cmd/hotel-tonight-pp-mcp@latest
    
  2. Claude Code に登録します。
    claude mcp add hotel-tonight-pp-mcp -- hotel-tonight-pp-mcp
    
  3. 確認します:claude mcp list

直接使用

  1. インストール済みか確認します:which hotel-tonight-pp-cli 見つからない場合は、インストールを提案します(このスキルの冒頭にある前提条件を参照してください)。
  2. ユーザーのクエリに最適なコマンドを、上記の独自の機能とコマンドリファレンスから選びます。
  3. --agent フラグを付けて実行します。
    hotel-tonight-pp-cli <command> [subcommand] [args] --agent
    
  4. 曖昧な場合は、サブコマンドのヘルプを確認します:hotel-tonight-pp-cli <command> --help。

コメント