mcpField
P
pp-hotel-goat

pp-hotel-goat

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

pp-hotel-goat について

pp-hotel-goatは、Hotel GOAT CLIを操作してGoogle Hotelsの検索、施設情報の確認、ローカルのウィッシュリスト管理を行うスキルです。予約ではなく旅行先の調査向けで、エージェント用に出力項目を絞れます。

主な機能

  1. 01場所と日程でホテルを検索
  2. 02クラス、料金、通貨で絞り込み
  3. 03施設情報とレビューを確認
  4. 04エージェント用にネスト項目を選択
  5. 05ホテルをローカルのウィッシュリストに保存

活用シーン

  1. 01旅行日程のホテル料金を比較
  2. 02指定場所付近のホテルを検索
  3. 03ホテルの設備と評価を確認
  4. 04候補ホテルを後で見るために保存

MCP 対応

hotel-goat-pp-mcpサーバーのインストールとClaude Codeへの登録方法が説明されています。

インストール

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

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

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

詳細

Hotel GOAT — Printing Press CLI

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

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

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

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

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

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

この CLI を使う場合

ユーザーが場所と日付範囲を指定してホテルを検索したい場合、期間内で最安の日程を見つけたい場合、特定の住所の近くにあるホテルを探したい場合、または宿泊施設をローカルのウィッシュリストに保存したい場合は、hotel-goat を使ってください。旅程を作成するときは flight-goat と組み合わせてください。どちらも同じフラグとエンベロープ形式を共有しているため、将来の travel-pp-cli オーケストレーターは薄いマージレイヤーとして実装できます。実際に予約したいユーザーには使わないでください(Google Hotels はメタサーチです。hotel-goat は OTA へのディープリンクを表示し、ユーザーは OTA で予約します)。

この CLI を使わない場合

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

独自の機能

この API の他のツールでは利用できない機能です。

エージェント向けのネイティブな連携
  • hotels — ネストされた results.prices[]、results.booking_urls、results.images[] をドットパスで選択します。エージェントが必要とするフィールドだけを返します。

    ホテルごとに完全なネストレスポンスではなく、必要なフィールドを数個だけ取得したい場合に使います。

    hotel-goat-pp-cli hotels "San Francisco" 2026-08-15 2026-08-17 --agent --select results.name,results.rating,results.price_per_night,results.booking_urls.primary
    

コマンドリファレンス

hotels — 場所と日付範囲を指定した Google Hotels のホテル検索結果

  • hotel-goat-pp-cli hotels — 場所と日付範囲を指定してホテルを検索します。

hotel — 個別の宿泊施設に関するコマンド

  • hotel-goat-pp-cli hotel show <property-token> — Google の property_token を指定して、宿泊施設の詳細をすべて表示します
  • hotel-goat-pp-cli hotel reviews <property-token> — 1 つの宿泊施設のレビュー内訳を表示します
適切なコマンドを見つける

実行したいことは分かっていても、どのコマンドを使うべきか分からない場合は、CLI に直接尋ねてください。

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

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

レシピ

ヨーロッパの通貨を使った絞り込み検索
hotel-goat-pp-cli hotels "Paris" 2026-07-20 2026-07-23 --currency EUR --hotel-class 4,5 --max-price 300 --sort cheapest

パリの 4~5 つ星の高級ホテルを 1 泊 300 ユーロ未満で、最安順に表示します。

エージェント向けのネストフィールド選択
hotel-goat-pp-cli hotels "San Francisco" 2026-08-15 2026-08-17 --agent --select results.name,results.rating,results.price_per_night,results.booking_urls.primary

検索結果ごとの完全なペイロードではなく、エージェントが必要とする 4 つのフィールドだけを返します。

トークンを使った宿泊施設の詳細表示
hotel-goat-pp-cli hotel show <property-token>

検索結果から取得した property_token を使って、宿泊施設の詳細(アメニティ、近隣のスポット、画像ギャラリー全体)を表示します。

宿泊施設の保存と呼び出し
hotel-goat-pp-cli wishlist add <property-token> && hotel-goat-pp-cli wishlist list

ローカルの SQLite ウィッシュリストに宿泊施設を保存し、後から一覧表示します。

ヘルスチェック
hotel-goat-pp-cli doctor

Google Hotels へのネットワーク接続が可能で、パーサーが引き続き AF_initDataCallback ブロブを検出できることを確認します。

認証の設定

認証は不要です。Google Hotels の SSR は公開されています。システムロケールで Accept-Language を設定してください。別の通貨で価格を取得するには --currency EUR を渡します。

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

エージェントモード

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

  • パイプ可能 — stdout に JSON、stderr にエラーを出力します

  • フィルタ可能 — --select でフィールドを絞り込みます。ドット区切りのパスはネストされた構造をたどり、配列の場合は各要素をたどります。出力が冗長な API でコンテキストを小さく保つために重要です:

    hotel-goat-pp-cli hotels "San Francisco" 2026-08-15 2026-08-17 --agent --select results.name,results.price_per_night,results.booking_urls.primary
    
  • プレビュー可能 — --dry-run で送信せずにリクエストを表示します

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

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

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

レスポンスエンベロープ

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

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

データには .results を解析し、ライブデータかローカルデータかを確認するには .meta.source を参照します。人間が読める N results (live) の概要は、stdout がターミナルで、かつ機械向けフォーマットのフラグ(--json、--csv、--compact、--quiet、--plain、--select)が指定されていない場合にのみ stderr に出力されます。パイプやエージェント経由の利用、および明示的にフォーマットを指定した実行では、stdout に JSON のみが出力されます。

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

この CLI について気づいたことがあれば(エージェントが気づいた場合も)、記録してください:

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

エントリーは ~/.hotel-goat-pp-cli/feedback.jsonl にローカル保存されます。HOTEL_GOAT_FEEDBACK_ENDPOINT が設定され、かつ --send が渡された場合、または HOTEL_GOAT_FEEDBACK_AUTO_SEND=true の場合を除き、POST されることはありません。デフォルトの動作ではローカルにのみ保存されます。

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

出力の配信

すべてのコマンドで --deliver <sink> を指定できます。出力は stdout に加えて(または stdout の代わりに)指定したシンクへ送られるため、エージェントはコマンド結果を手動でパイプせずに振り分けられます。対応するシンクは 3 種類です:

シンク動作
stdoutデフォルト。stdout のみに出力
file:<path>出力を <path> にアトミックに書き込みます(一時ファイルを作成してリネーム)
webhook:<url>出力本文を URL に POST します(--compact の場合は application/json または application/x-ndjson)

不明なスキームは、対応するスキームの一覧を示す構造化エラーとともに拒否されます。Webhook の失敗時はゼロ以外の終了コードを返し、URL と HTTP ステータスを stderr に記録します。

名前付きプロファイル

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

hotel-goat-pp-cli profile save briefing --json
hotel-goat-pp-cli --profile briefing hotels "San Francisco" 2026-08-15 2026-08-17
hotel-goat-pp-cli profile list --json
hotel-goat-pp-cli profile show briefing
hotel-goat-pp-cli profile delete briefing --yes

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

終了コード

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

引数の解析

$ARGUMENTS を解析します:

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

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

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

直接使用

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

コメント