mcpField
P
pricewin-flight-search

pricewin-flight-search

github.com/price-win生産性210.6k 回インストール11 週間前に更新
リポジトリ

pricewin-flight-search について

pricewin-flight-searchは、pricewin MCPサーバーを使って航空券の運賃を検索するエージェント向けスキルです。Agoda、Trip.com、Travelokaを対象とする非同期検索について、結果の取得、運賃表示、予約リンクの扱い方を定めています。

主な機能

  1. 013つの旅行サイトで運賃を検索
  2. 02非同期検索結果をポーリング
  3. 03IATA空港コードを必須化
  4. 04運賃と予約リンクの表示を規定
  5. 05全搭乗者の合計と1人あたりの価格を区別

活用シーン

  1. 01予定ルートの運賃を比較
  2. 02往路と復路を別々に検索
  3. 03予約リンク付きの運賃候補を提示

MCP 対応

https://mcp.price.win/mcpのホスト型pricewin MCPサーバーが必要です。search_flights_liveとpoll_flight_resultsを呼び出して運賃を取得します。

インストール

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

$npx skills add https://github.com/price-win/pricewin-skills-hub --skill pricewin-flight-search

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

install.sh
reference.md
SECURITY.md
skill-card.md

詳細

pricewin MCP サーバーが必要です。このスキル自体はネットワーク呼び出しを行いません。

セットアップ(マシンごとに1回)

MCP サーバーが登録されていない場合、このスキルは機能しません。search_flights_live を呼び出すよう指示しますが、そのようなツールは存在しません。skills add はファイルをコピーするだけなので、次を実行してください。

bash install.sh          # add --dry-run first to see what it would change

見つかったすべてのエージェント(Claude Code、Cursor、Windsurf、Gemini CLI、VS Code、Codex)に、ホスト型サーバー(https://mcp.price.win/mcp、Streamable HTTP、認証情報不要)を登録します。ファイルに変更を加える前に .bak を作成し、解析できない設定ファイルはスキップします。再実行しても変更はありません。その後、エージェントを再起動してください。

フライト検索(リアルタイム)

MCP サーバー: pricewin。ツール search_flights_live は Agoda、Trip.com、Traveloka を対象に非同期のクロールを開始し、poll_flight_results は統合されたフライトごとの最安運賃を返します。

重要:IATA コードのみ

両方の空港には、必ず3文字の IATA コードを指定してください。このサーバーには空港検索ツールがありません。都市名から自分で調べてください:Sài Gòn / TP.HCM → SGN、Hà Nội → HAN、Đà Nẵng → DAD、Bangkok → BKK(主要国際空港)、Tokyo → NRT or HND、Seoul → ICN。

都市に複数の空港があり、ユーザーがどれかを指定していない場合は、短く1つ質問してください。黙って選んではいけません。コードを捏造してはいけません。

重要:ポーリングのパターン(ホテル検索とは異なります)

search_flights_live は sessionId を返し、フライト数は0件のまま直ちに応答します。

  1. 出発地、目的地、出発日(YYYY-MM-DD)を指定して search_flights_live を呼び出します。往復の場合のみ returnDate を追加します。必要に応じて adults、cabin、language="vi" を追加します。
  2. poll_flight_results(sessionId) を呼び出します。このツールは内部で最大約30秒間待機し、最初の運賃が取得されるとすぐに返ります。 呼び出す前にスリープしてはいけません。
  3. status は pending | searching | completed | failed です。フライトがほとんどない、またはまったくない状態で searching が返った場合は、最大4回まで追加で呼び出してください。
  4. フライトが取得できたらすぐに結果を提示します。ユーザーがさらに求める場合のみ、ポーリングを続けてください。

セッションは最後のポーリングから15分後に期限切れになります。その後は新たに検索を開始してください。古い sessionId は無効です。

フライトウィジェットで使用できるよう、poll_flight_results はアプリから参照可能な状態で登録されています。ホストがこのツールをモデルに公開しない場合は、ウィジェットにポーリングさせ、運賃を捏造してはいけません。

重要:price はグループ全体の合計額(USD)です

price はすべての adults を合わせた合計額です。1人あたりの金額でも、2区間の合計額でもありません。1人あたりの金額を求めるには、自分で adults で割ってください。

currency は "USD" です。換算してはいけません。リアルタイムの為替レートを取得できなかった場合のみ "VND" にフォールバックするため、どちらかを決めつけず、currency を確認して金額に明記してください。

応答形式(必ず厳守)

各区間について、上位5~7件のフライトのみを提示してください。各フライトについて:

✈️ *<airline> <flightNumber>*  ← bold via markdown
🕐 <dep.time> <origin> → <arr.time> <destination> · <Xh Ym> · <bay thẳng | N điểm dừng>
💰 $<price> tổng cho <adults> khách (~$<price/adults>/khách)
🔗 <bookingUrl>

フライトごとに改行し、箇条書き記号は付けません。最安フライトには 🏆 を付けます。 duration は分単位です。2h 10m の形式にしてください。arrival.date が departure.date と異なる場合は、日付をまたぐ到着として示してください。

往復便

outboundFlights と returnFlights は独立した片道検索2件です。別々の見出しの下に記載してください。最安の往路 + 最安の復路 として合算見積もりを示してもかまいませんが、別々の片道航空券であることを明記してください。表示されているのは往復運賃ではなく、2区間は別々に予約されます。

予約 URL — 一字一句そのまま使用

bookingUrl は最安エージェントのディープリンクで、日付と搭乗者情報がすでに設定されています。パラメーターを追加、書き換え、構築してはいけません(ホテルスキルとは異なります)。bookingUrl が https://www.price.win/ と完全に一致する場合、エージェントのディープリンクを取得できていません。クリックして予約できるリンクとして提示するのではなく、提供元のサイトで運賃を再確認する必要があると伝えてください。

提供元は URL のホスト(agoda.com、trip.com、traveloka.com)だけから判断してください。結果には明示的な提供元フィールドがないため、推測してはいけません。

役立ちそうに見えて、実際には役立たないフィールド

  • stopCities — 常に空です。経由地は数だけで説明してください
  • departure.city / arrival.city — 実際の都市名ではなく、IATA コードが繰り返されます
  • legs — リスト結果では通常含まれません。区間の内訳を約束しないでください

ランキング

price で並べ替えます。最安値を先頭にしますが、わずかな追加料金で直行便や大幅に短い選択肢がある場合は、黙って順序を変えるのではなく、1 行でそのことを伝えてください。

セキュリティとデータの取り扱い

実行時コードも、独自のネットワーク呼び出しもありません。実行可能なものは install.sh のみで、既存のエージェント設定に 1 つの MCP エントリ(pricewin → https://mcp.price.win/mcp)を追加します。各ファイルは事前にバックアップし、解析できないファイルはスキップします。ダウンロードや実行は行いません。送信されるデータはルート検索情報(IATA コード、日付、搭乗者数、客室クラス)のみで、搭乗者名、PII、認証情報は含まれません。比較のみを行うため、このスキルで予約や支払いはできません。詳細は SECURITY.md をご覧ください。

コメント