mcpField
C
compare-hotels

compare-hotels

github.com/borski生産性780105 回インストール2 日前に更新
リポジトリ

compare-hotels について

ホテルの現金料金、プレミアム予約ポータル、バケーションレンタルを一括比較するエージェント向けの検索統括スキルです。検索ツールを連携し、単独スクリプトではなく各プログラムの特典も評価します。

主な機能

  1. 01ホテルとレンタルの検索連携
  2. 02現金料金とポータル価格の比較
  3. 03Airbnb と VRBO の選択肢
  4. 04プレミアムプログラム対象の確認
  5. 05記載された特典を価格に反映
  6. 06検索元のエラーと欠落の報告

活用シーン

  1. 01目的地のホテルとレンタルの比較
  2. 02Chase と Amex のホテルポータルの評価
  3. 03プレミアム特典と直接予約料金の比較

MCP 対応

宿泊施設と価格の検索に airbnb_search MCP ツールを利用できます。

インストール

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

$npx skills add https://github.com/borski/travel-hacking-toolkit --skill compare-hotels

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

詳細

補足リファレンススキル。 より詳しい情報を確認するには、以下を読み込んでください。

  • hotel-chains — ブランドとホテルをロイヤルティプログラムにマッピング
  • premium-hotels — FHR/THC/Chase Editのクレジットと特典の組み合わせ戦略
  • points-valuations — ホテルプログラムのCPP下限/上限(Hyattは1.4~1.7cpp、Hiltonは0.4cppが下限など)
  • fallback-and-resilience — ホテルの情報源が利用できない場合の復旧方法

ホテルを比較する

利用可能なすべての情報源を検索して宿泊施設を探し、統合した比較結果を提示します。ポータルのプレミアムプログラム(Chase Edit、Amex FHR/THC)、現金価格、Airbnbの代替宿泊施設をひとつの一覧にまとめます。

これはオーケストレーションスキルです。 実行するツールと結果の組み合わせ方をエージェントに指示します。単体で実行するスクリプトはありません。

使用する場面

  • 「8月11日から15日までパリのホテルを探して」
  • 「このホテルはChaseとAmexのどちらから予約すべきですか?」
  • 「オスロのホテルとAirbnbを比較して」
  • ユーザーが宿泊施設について全体像を把握したい、あらゆる検索

情報源

可能な場合は並行して実行してください。失敗を黙って無視してはいけません。

ポータルのプレミアムプログラム(Dockerが必要)
情報源スキル速度検索できるもの
Chase Travelchase-travel~45sEdit対象ホテル($100クレジット、朝食、アップグレード)、Points Boost、一般ホテル
Amex Travelamex-travel~45sFHR($100以上のクレジット、朝食、アップグレード、レイトチェックアウト)、THC(2泊以上で$100クレジット)
現金価格とメタサーチ
情報源スキル/ツール速度検索できるもの
SerpAPIserpapi~3sGoogle Hotelsの現金価格と直接予約リンク。
Trivagoウェブ検索~5s多数のOTAを横断するメタサーチ。tavily/exaを使ってtrivago.comを検索してください。OTAの最安料金を見つけられます。
LiteAPIウェブ検索~5s交渉済み料金を扱うホテルAPIアグリゲーター。liteapi.travelを確認してください。一般公開されているOTA料金より安い料金が見つかる場合があります。
RapidAPIrapidapi~3sBooking.comの在庫と料金。任意です。ユーザーが特にBooking.comを指定した場合に使用してください。
品質と評価
情報源スキル/ツール速度検索できるもの
TripAdvisortripadvisor~2s評価、ランキング、サブ評価(立地/サービス/清潔さ)、口コミ、写真、設備、受賞歴。月間5K件の呼び出し。

SerpAPI、Trivago、LiteAPIはすべてデフォルトで使用します。 必ず3つすべてを検索してください。RapidAPIを追加するのは、ユーザーが特にBooking.comを指定した場合のみです。他の情報源の料金情報を補完する品質データ(評価、ランキング、口コミ)にはTripAdvisorを使用してください。

バケーションレンタル
情報源スキル/ツール速度検索できるもの
Airbnbairbnb_search MCPツール~5s一棟貸し、個室、総額
VRBOvrboスキル(Patchright)~20s一棟貸し、コンドミニアム、キャビン。Airbnbには掲載されていないことが多い、専門業者が管理する物件も検索できます。ヘッドレスではなくブラウザー表示/Dockerで実行 — Akamaiの保護下にあります。
プレミアム物件データベース(ローカル、即時)
情報源データファイル検索できるもの
FHR対象物件data/fhr-properties.json予約前にホテルがFHR対象か確認
THC対象物件data/thc-properties.jsonホテルがTHC対象か確認
Chase Edit対象物件data/chase-edit-properties.jsonホテルがChaseのEditプログラムに含まれているか確認

ワークフロー

ステップ1:すべての情報源を検索
PARALLEL GROUP 1 (fast — HTTP/API/MCP calls, no browser, ~3-5s):
  - SerpAPI: Google Hotels cash prices
  - Trivago: metasearch across OTAs (web search)
  - LiteAPI: negotiated hotel rates (web search)
  - Airbnb: vacation rentals in the area (npx MCP — lightweight scrape, not a browser)
  - Local data: check premium-hotels databases for the city

PARALLEL GROUP 2 (slow — headed browser via Patchright/Xvfb in Docker, ~20-45s):
  - VRBO: whole homes / condos / cabins — vrbo skill (~20s, headed/Docker, behind Akamai; run for whole-home comparisons alongside Airbnb)
  - Chase Travel: --hotel --dest "City" --checkin YYYY-MM-DD --checkout YYYY-MM-DD --json
  - Amex Travel: --hotel --dest "City" --checkin YYYY-MM-DD --checkout YYYY-MM-DD --json

各情報源について、以下を記録してください。

  • 情報源名
  • ステータス:「ok」|「error: {reason}」|「skipped: {reason}」
  • 結果数
  • データ
ステップ2:特典の組み合わせ機会を特定

検索結果をdata/fhr-properties.json、data/thc-properties.json、data/chase-edit-properties.jsonと照合してください。

For each hotel in results:
  - Is it in FHR? → Tag [FHR]
  - Is it in THC? → Tag [THC]
  - Is it in Chase Edit? → Tag [EDIT]
  - Is it in multiple? → Tag [FHR+EDIT] and note stacking potential

特典の組み合わせとは、ひとつのポータルで予約し、もう一方のカードを別の支払いに使うことです。たとえば、Amex経由でFHRを予約して(朝食+クレジット+アップグレードを獲得)、CSRの$300旅行クレジットをその施設で別の用途に使います。

ステップ 3:ポイントの価値を計算する

Chase:

  • CSR/CSPでChaseのポータルを利用する場合、Points Boostの価格は変動します。予約ごとに特定のポイント価格が提示され、CSRでは実質的なCPPは通常1.5〜2.0 CPPの範囲ですが、すべての予約でこの水準が保証されるわけではありません。実際のポータル価格を確認してください。
  • Points Boostのオファーは変動し、ルート、日付、空室状況によって異なります。
  • ポータルに表示される価格が実際のUR必要額です。1.5で割らないでください。表示ポイント数には、見積もり時点の変動するBoostレートがすでに反映されています。

Amex:

  • ホテルポータルの価格は変動します(航空券のように常に1 CPPとは限りません)。
  • 表示されるポイント数が実際のMR必要額です。現金価格とポイント数の比率からCPPを計算してください。
  • FHRの特典(100ドル以上のクレジット、朝食)を考慮すると、実質価格は大幅に下がります。

特典を考慮した価格を計算する:

FHR adjusted = total_price - $100 credit - (breakfast_value × nights)
  breakfast_value ≈ $30-50/person × 2 people = $60-100/night
THC adjusted = total_price - $100 credit (2+ night stays only)
Edit adjusted = total_price - $100 credit - (breakfast_value × nights)
ステップ 4:統一テーブルを提示する

常にMarkdownテーブルを使用してください。 特典を考慮した合計価格の安い順にホテルを並べます。

例:パリ、8月11〜15日(4泊、2名)
#ホテルプログラム星1泊あたり合計ポイント特典調整後合計
1SO/ ParisEDIT+BOOST5★$639$2,555127,756 UR朝食、100ドルのクレジット、アップグレード~$1,855
2Hotel BalzacEDIT+BOOST5★$614$2,455122,769 UR朝食、100ドルのクレジット、アップグレード~$1,755
3Le BristolFHR5★$1,849$8,284該当なし100ドルのクレジット、朝食、アップグレード、午後4時のチェックアウト~$6,884
4Marriott Champs-Élysées—4★$289$1,156——$1,156
5Airbnb:マレ地区の2ベッドルーム——$195$780—キッチン、洗濯機$780

確認した情報源:

  • ✅ Chase Travel:ホテル21軒(Edit 15軒、通常6軒)
  • ✅ Amex Travel:ホテル17軒(FHR 13軒、THC 4軒)
  • ✅ SerpAPI:ホテル25軒
  • ✅ Trivago:ホテル30軒(各ホテルの最安OTA)
  • ✅ LiteAPI:ホテル22軒(契約料金)
  • ✅ Airbnb:リスティング18件
  • ✅ プレミアムデータベース:パリのFHR対象施設8軒、THC対象施設3軒、Edit対象施設15軒
  • ⏭️ RapidAPI/Booking.com:スキップ(依頼なし)
ステップ 5:おすすめを提示する

テーブルの後に、必ず以下を提示してください。

  1. 最もお得な高級ホテル: 特典を考慮した場合に、節約額が最も大きい高級ホテル
  2. 最もお得な低価格オプション: 最安のオプション(長期滞在ではAirbnbが最安となることがよくあります)
  3. 特典の併用機会: FHR/THCとChase Editの両方に該当するホテル
  4. クレジットの利用: 適用されるカードのクレジット(Amex FHRの600ドル、CSR旅行クレジット300ドル、Select Hotelsの250ドル)
  5. ポイント利用と現金払いの比較: これらのいずれかでポイントを使う価値があるか(CPPを計算)
  6. ホテルへの直接予約との比較: ホテルの直接予約価格がポータル価格より大幅に安い場合は、その旨を記載する

Airbnbの統合

airbnb_search MCP ツールを使用してください。

airbnb_search(
  location="Paris, France",
  checkin="2026-08-11",
  checkout="2026-08-15",
  adults=2,
  propertyType="entire_home"
)

Airbnbの各検索結果について、以下を抽出してください。

  • 名前、価格、評価、レビュー数
  • 物件タイプ(貸切、個室)
  • 主な設備(キッチン、洗濯機、Wi-Fi、エアコン)
  • リスティングへの直接リンク

Airbnbが適している場合:

  • 5泊以上の滞在(通常、1泊あたりの料金が安くなります)
  • 広いスペースが必要なグループや家族
  • ホテルの価格が割高な目的地
  • キッチンの利用が重要な場合(食事制限、食費の節約)

ホテルが適している場合:

  • 短期滞在(1〜2泊)
  • プレミアム特典によって料金の価値が高まる場合(FHRの朝食だけでも、1泊あたり100ドル以上の価値になることがあります)
  • ポイント交換で良好なCPPが得られる場合
  • ロイヤルティステータスの特典(アップグレード、レイトチェックアウト、ラウンジ利用)

エラー処理

エラーを黙って無視してはいけません。 すべての情報源について、ステータスを報告してください。

- ❌ Chase Travel: Login failed. No Chase portal pricing available.
- ❌ Airbnb: No results for this location/dates.
- ⚠️ Amex Travel: Only 3 results (some hotels may not be available for these dates).

プレミアムデータベースに市内のFHR/Edit対象施設が記載されているにもかかわらず、ポータル検索で表示されなかった場合は、次のように記載してください。「FHRデータベースにはパリの対象施設が8軒掲載されていますが、Amex Travelの検索結果には3軒しか表示されませんでした。予約日によっては、空室がない施設もあります。」

使用するデータファイル

ファイル用途
data/fhr-properties.json都市/座標によるFHR対象施設の検索
data/thc-properties.jsonTHC対象施設の検索
data/chase-edit-properties.jsonChase Edit対象施設の検索
data/hotel-chains.jsonホテルチェーンとロイヤルティプログラムの対応付け
data/points-valuations.jsonポイント計算用のCPP評価値

制限事項

  • ポータルで検索するには、Docker と認証情報が必要です。設定されていない場合はスキップしてください。
  • Airbnb MCP が利用可能である必要があります。利用できない場合は、エラーにならないようスキップしてください。
  • FHR/THC/Edit データベースは定期的に更新されます。施設が追加または削除されている可能性があります。
  • Amex のホテルポイント価格は変動します(1 cpp ではありません)。ポータルに表示される実際のポイント価格を使用してください。
  • Chase ポータルの価格は Points Boost によって変動します(対象の予約で約 1.5~2.0 cpp ですが、最低保証ではありません)。以前の固定 1.5 倍の倍率は廃止されました。
  • 直接予約の価格(SerpAPI 経由)は、同じホテルでもポータルの価格と異なる場合があります。

コメント