mcpField
C
compare-flights

compare-flights

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

compare-flights について

航空券の現金運賃、特典航空券、ポイント利用の予約、移行先を比較するエージェント向けのオーケストレーションスキルです。結果をコスト順の表にまとめ、検索失敗への対応や予約判断も案内します。

主な機能

  1. 01現金運賃と特典航空券の並列検索
  2. 02ポイント予約の価格比較
  3. 03移行パートナー経由のコスト計算
  4. 04統合比較表のコスト順表示
  5. 05検索元のエラー報告

活用シーン

  1. 01現金運賃と特典航空券の比較
  2. 02ポイント予約の見積もり評価
  3. 03特典航空券への移行経路の確認

インストール

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

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

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

詳細

フライトを比較

利用可能なすべての情報源でルートを検索し、統一された比較結果を提示します。現金価格、特典航空券の空席状況、ポイントで支払うポータル、移行先パートナーの最適化を、1つの表にまとめます。

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

関連リファレンススキル。 詳しい情報を確認するには、次のスキルを読み込んでください。

  • flight-search-strategy — 情報源の優先順位、市場の選定、情報源の精度階層の全容
  • points-valuations — CPP のルール、下限と上限、燃油サーチャージのあるプログラム、移行ボーナス
  • partner-awards — アライアンスおよび二者間提携で利用できる特典航空券
  • lessons-learned — Seats.aero のワークフロー、Southwest の詳細、Companion Pass の計算方法
  • fallback-and-resilience — 情報源に問題が起きた場合の対処方法
  • transfer-bonuses — 現在有効な移行ボーナス(ライブデータ)。比較表の選択肢 4〜7 を算出する際の移行比率に影響します
  • stopovers — 旅程に長い乗り継ぎがある場合や複数都市を巡る場合は、ストップオーバーが可能なプログラムで、個別の片道航空券より安くなるか確認してください
  • round-the-world — 3 回以上の途中降機を伴う複数地域の旅程では、世界一周航空券の特典が区間ごとの特典航空券の合計よりお得な場合があります
  • award-holds — 西洋圏の主要プログラムの多く(UA、Aeroplan、AS、DL、BA、ANA、Qatar、Korean)は、現在予約保留に対応していません。対応しているプログラムもあります:AA(オンラインで 24 時間)、Lufthansa M&M(5 日間)、Flying Blue(3 日間、電話予約手数料 $25)、Cathay(2 日間、手数料 $39)、Turkish(2 日間)、Virgin Atlantic(電話で無料、1〜2 日間)、Singapore(担当者の裁量)。推奨ルートが「先にポイントを移行してから発券」か「すぐに発券」かに影響します
  • status-match — アップグレードやエリート会員限定の特典(ラウンジ利用、無料手荷物、優先サービスなど)を含む選択肢を比較する場合に確認してください。ステータスによってフライトの実質的な費用が変わります

使用する場面

  • 「8 月に SFO から CDG へ行く最適な方法を探してください」
  • 「このフライトは現金で払うべきですか、それともポイントを使うべきですか?」
  • 「SFO から NRT へのビジネスクラスの選択肢をすべて比較してください」
  • ユーザーがフライト検索の全体像を求めている場合

情報源

可能であれば、以下を並行して実行してください。問題を黙って無視してはいけません。 情報源でエラーが発生した場合は、何が不足しているかユーザーにわかるよう、出力に記載してください。

現金価格(並行して実行)
情報源スキル速度備考
Duffelduffel~3s主な情報源。運賃クラスを含む実際の GDS 運賃。Southwest は対象外です。
Ignavignav~2s高速 REST API。価格比較に便利です。予約リンクがあります。
Google Flightsgoogle-flights~10sブラウザーによる自動検索。現金払いなら Southwest を含むすべての航空会社が対象です。相互確認に便利です。
Skiplaggedweb search~5s途中降機地を目的地として利用するチケット。大幅に安い運賃が見つかることがよくあります。skiplagged.com/flights/{origin}/{dest}/{date} を検索してください。
Kiwi.comweb search~5s独創的な経路、自力乗り継ぎの組み合わせ、複数都市の旅程が見つかります。kiwi.com を検索してください。
Southwestsouthwest~20sPatchright、Docker のみ。4 つすべての運賃クラスについて、ポイント払いと現金払いを確認できます。ルートに SW が就航している場合のみ必要です。

Skiplagged と Kiwi: web search(tavily または exa)を使って価格を調べてください。MCP スキルはありませんが、URL は予測可能です。Skiplagged の運賃には制限があることを必ず明記してください(手荷物を預けられず、乗り継ぎを「乗り逃した」都市を目的地として利用する必要があります)。

Southwest: ルートに SW が就航している場合は、southwest スキルを実行してください。比較表では SW Rapid Rewards のポイントを別通貨として含めてください。SW の詳細(運賃クラスの要件、Companion Pass の計算方法、GDS の空白)については、lessons-learned スキルに詳しい情報があります。

SerpAPI は任意です。 ユーザーが Google Hotels または旅行先の検索を依頼した場合にのみ使用してください。

特典航空券の空席状況
情報源スキル速度備考
Seats.aeroseats-aero~5s25 以上のプログラムにわたる、キャッシュ済みの特典航空券の空席状況です。主な特典航空券の情報源です。
ポータルのポイント利用(並列実行。Docker が必要です)
ソーススキル所要時間備考
Chase URchase-travel約45秒ポイントブーストによる動的な価格設定です(一部の予約では約1.5~2.0 cppですが、最低値が保証されているわけではありません)。
Amex MRamex-travel約45秒Platinum の IAP 割引を検出します。

ポータル検索はブラウザーへのログインが必要なため、時間がかかります。互いに並列で実行しますが、完了を待って処理を止めないでください。まず現金と特典の検索を開始して結果を提示し、準備ができたらポータルの結果を追加してください。

ユーザーが該当するカードを持っている場合、またはポータル価格を尋ねた場合にのみ、ポータル検索を実行してください。 Sapphire カードを持っていない場合は、Chase の検索を実行しないでください。

ワークフロー

ステップ 1:すべての価格を収集する

検索を並列で実行します。成功したソースと失敗したソースを記録します。

PARALLEL GROUP 1 (fast, ~3-5s):
  - Duffel: cash prices with fare classes
  - Ignav: cash prices with booking links
  - Seats.aero: award availability by program
  - Skiplagged: hidden city fares (web search)
  - Kiwi.com: creative routings (web search)

PARALLEL GROUP 2 (browser-automated, ~10-45s, Docker):
  - Google Flights: all airlines including Southwest cash
  - Southwest: points + cash for all fare classes (if SW flies the route)
  - Chase Travel: UR portal pricing + Points Boost
  - Amex Travel: MR portal pricing + IAP discounts

各ソースについて、以下を取得します。

  • ソース名
  • ステータス:「ok」|「error: {reason}」|「skipped: {reason}」
  • 結果数
  • データ
ステップ 2:移行パートナーの最適化を適用する

seats.aero の特典検索結果ごとに、data/transfer-partners.json を使って、移行可能な各ポイント通貨での実質コストを計算します。

For each award (e.g., United business at 88,000 miles):
  1. Look up which currencies transfer to United: Chase UR (1:1), Bilt (1:1)
  2. Calculate effective cost: 88,000 / 1.0 = 88,000 UR or 88,000 Bilt
  3. Calculate opportunity cost using data/points-valuations.json:
     88,000 UR × 1.7cpp floor = $1,496 equivalent

最安の経路だけでなく、実行可能なすべての移行経路を含めてください。ユーザーは、ある通貨のポイントを別の通貨より多く持っている場合があります。

ステップ 3:ポータルの CPP を計算する

Chase ポータルでは、CSR/CSP のポイントブーストによる動的な価格設定が使われます。以前の固定 1.5 倍の倍率は廃止されました。 予約ごとに具体的なポイント価格が提示されるようになりました。CSR では実質 CPP が通常 1.5~2.0 の範囲になりますが、すべての予約で最低値が保証されているわけではありません。必ず実際のポータル見積もりを取得し、倍率から算出しないでください。

ポイントブーストの見積もり例(実際の価格を確認してください):

Portal quote: 269,841 points for a $5,397 flight
True CPP: $5,397 / 269,841 = 2.0 cpp (excellent)

ブースト率の低い予約やブーストなしの予約では、同じフライトの価格が 1.5 CPP、またはそれより低くなる場合があります。比較には必ず実際の見積もりを使ってください。

Amex ポータルのフライト価格は約 1 CPP です(1 MR = 1 セント)。IAP の運賃は割引後の現金価格です。

Standard: $5,044 = 504,400 MR points
IAP: $4,381 = 438,100 MR points (saves 66,300 MR)
ステップ 4:統合テーブルを提示する

必ず Markdown テーブルを使用してください。 すべての選択肢を含む 1 つのテーブルを、実質コストの低い順に並べます。

例:SFO → CDG、ビジネスクラス、8月11日
#選択肢ソース価格ポイント通貨CPP評価
1現金(最安)Duffel$4,200————
2Chase UR 経由の Flying Blueseats.aero税金 $12055,000Chase UR7.4優秀
3Chase UR 経由の Aeroplanseats.aero税金 $20070,000Chase UR5.7優秀
4Chase ポータル(ブースト適用)chase-travelポータル価格 $5,400180,000Chase UR3.0優秀(適用時)
5Chase ポータル(ブーストなし)chase-travelポータル価格 $5,400360,000Chase UR変動(通常は約1.5)実際の見積もりを取得
6Amex ポータル(IAP)amex-travelポータル価格 $5,044438,100Amex MR1.15低評価
7Amex ポータル(標準)amex-travelポータル価格 $5,044504,400Amex MR1.0低評価

注:ポータルの行の CPP は、ポータルが実際に請求する現金価格であるポータル独自の見積もり($5,400/$5,044)を基準にします。特典の行では、マイルを使うことで手放す現金相当額として、Duffel の市場価格($4,200)を基準にします。ポータルには上乗せ価格が含まれるため、基準額は異なります。そのため、ポータルの CPP と特典の CPP は直接比較できません。より適切な比較方法は、各選択肢の現金支出総額(税金+現金払い分)です。

例:SFO → LAX エコノミー、8月11日
#オプションソース価格ポイント通貨CPP評価
1SW Wanna Get Awaysouthwest$795,200SW RR1.52良好
2現金(最安)Duffel$89————
3SW WGA+southwest$1198,400SW RR1.42普通
4Chase UR 経由の Unitedseats.aero税金 $5.605,000Chase UR1.67良好
5Chase Portalchase-travel—8,900Chase UR変動(通常は約1.5)最新の見積もりを取得
6SW Anytimesouthwest$21916,800SW RR1.30普通

注:SW のポイント価値は、直接交換時の CPP を示しています。ユーザーが Companion Pass を持っている場合、1人分のポイントで2人分の航空券を利用できるため、実質的な CPP は2倍になります。

確認したソース:

  • ✅ Duffel:45件の結果
  • ✅ Ignav:38件の結果
  • ✅ Skiplagged:隠れ都市オプション3件
  • ✅ Kiwi.com:工夫を凝らした旅程12件
  • ✅ Seats.aero:特典航空券のオプション12件
  • ✅ Southwest:運賃クラス4種類(WGA $79/5.2K、WGA+ $119/8.4K、Anytime $219/16.8K、BizSelect $289/22.1K)
  • ✅ Chase Travel:300件の結果(うち3件は Points Boost 対象)
  • ✅ Amex Travel:292件の結果(IAP 利用可能)
  • ✅ Google Flights:52件の結果
ステップ5:おすすめ

表の後には、必ず以下を示してください。

  1. 総合的に最もお得: 最も高い CPP が得られるオプション
  2. 最も便利: 予約が最も簡単なオプション(オンラインか電話か、即時移行か待ち時間ありか)
  3. 現金払いかポイント払いかの判断: 旅行計算のフレームワークを使用します。
    • 現金価格 < 最適な特典航空券の機会費用 → 「現金で支払う」
    • 現金価格 > 機会費用 → 「ポイントを使う」
  4. 移行に関する注意: 「空席状況を確認するまで移行しないでください。移行は通常即時ですが、48時間かかる場合があります。」
  5. 残高の確認: ユーザーの残高が(AwardWallet または以前のコンテキストから)分かる場合、ポイントが不足していないかを確認してください。

エラー処理

エラーを黙って無視してはいけません。 各ソースは必ずステータスを報告してください。

ソースでエラーが発生した場合:

- ❌ Duffel: API error (rate limit exceeded). Cash prices from Ignav only.
- ❌ Chase Travel: Login failed (2FA timeout). No portal pricing available.

現金価格を調べるすべてのソースでエラーが発生した場合は、その旨を明示してください。現金価格との比較ができないことを示さずに、特典航空券のみの結果を提示してはいけません。

seats.aero で空席が見つからない場合、特典航空券のセクションを黙って省略するのではなく、「特典航空券の空席は見つかりませんでした」と記載してください。

使用するデータファイル

ファイル用途
data/transfer-partners.jsonクレジットカードからロイヤルティプログラムへのポイント移行比率
data/points-valuations.json機会費用の計算に使用する CPP の下限/上限
data/partner-awards.jsonアライアンスをまたぐ予約オプション(VA→ANA、EY→AA など)

制限事項

  • ポータル検索には Docker とログイン認証情報が必要です。設定されていない場合はスキップしてください。
  • Seats.aero の空席状況はキャッシュ済みで、最大24時間前の情報です。seats-aero-web によるライブ検索はローカルでのみ利用できます。
  • ポイント移行比率は transfer-partners.json に基づきます。高額な移行の前に、発行元に確認してください。
  • Chase のポータル価格は Points Boost により変動します(対象予約では約1.5~2.0 cpp ですが、保証された下限ではありません)。以前の固定1.5倍乗数は廃止されています。乗数から計算せず、ポータルの実際の見積もりを取得してください。
  • Southwest は Duffel、Ignav、seats.aero では検索できません。SW の価格が必要な場合は、Google Flights のスキルを使用してください。

コメント