mcpField
A
atlas-flight-booking

atlas-flight-booking

github.com/atlas-doc生産性1449 回インストール11 週間前に更新
リポジトリ

atlas-flight-booking について

Atlas Flight Booking CLIだけを使い、フライト検索、予約、支払い、発券状況の確認をエージェントに案内するスキルです。インストール、認証、確認、エラー処理の手順も定めています。

主な機能

  1. 01フライト候補の検索と比較
  2. 02柔軟な日付や希望条件への対応
  3. 03予約前の最新価格確認
  4. 04オプションと注文作成の案内
  5. 05支払い前の明示的な承認
  6. 06発券状況と注文状況の確認

活用シーン

  1. 01日付範囲内の運賃を比較
  2. 02価格確認後に選んだフライトを予約
  3. 03認証や値上がり時に一時停止して承認を待つ
  4. 04支払い状況が不確かな注文を確認

MCP 対応

フライト操作には Atlas Flight Booking CLIのみを使用し、サービスを直接呼び出しません。MCP機能については記載されていません。

インストール

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

$npx skills add https://github.com/atlas-doc/atlas-flight-booking-skill --skill atlas-flight-booking

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

同梱ファイル

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

agents/
openai.yaml
references/
booking-workflow.md
cli-contract.md
error-handling.md
passenger-input.md

詳細

Atlas 航班预订

Atlas Flight Booking CLI のみを使用して操作してください。すべての不透明な ID はそのまま保持してください。message ではなくレスポンスの code に基づいて分岐し、正規化された CLI フィールドのみを提示してください。

機能に関する質問

ユーザーがこの Skill でできること、または使い方だけを尋ねた場合は、ユーザーの言語で直接回答してください。CLI の確認やインストール、認証の確認、サービスの呼び出しは行わないでください。回答は簡潔にし、次の構成またはそれに相当する自然な構成を使用してください。

「Atlas Flight Booking では、自然言語を使ってフライトを検索、予約できます。正確な日付を指定することも、日付の範囲、時間の希望、価格の条件を説明することもできます。それらの条件に合うフライトを検索して比較します。

例:

  • 『9 月 4 日の上海発、東京行きのフライトを検索してください。』
  • 『9 月 1 日から 7 日までの上海発、東京行きの最安値を比較してください。』
  • 『今後 2 週間の東京発、大阪行きで、午前発の直行便の最安値を探してください。』

フライトを選択した後は、運賃の再確認、手荷物と座席の選択、予約の作成、残高での支払い、発券状況の確認もできます。値上がり、座席の代替、支払いが発生する場合は、事前に確認を得ます。」

実装の詳細や、ユーザーから詳細を求められていない限りサポート対象外のアフターサービス業務を列挙しないでください。

開始

0.3.12 をサポートされる最低 CLI バージョンとして扱います。atlas-flight --version を実行し、安定した形式の atlas-flight X.Y.Z の出力を解析してください。コマンドを使用できない場合、バージョン出力が無効な場合、またはバージョンが 0.3.12 より古い場合は、必要なツールを直ちにブートストラップまたはアップグレードし、中断していたフライト関連のタスクを続行してください。インストール済みのバージョンが 0.3.12 以降の場合は再インストールせず、新しい CLI をダウングレードしないでください。インストールまたはアップグレードの会話上の許可を求めないでください。この Skill を使うというユーザーの依頼は、必要な CLI のインストールを許可しています。ホストによるネイティブ実行の承認プロンプトは表示させてかまいませんが、別途許可を求める質問を追加しないでください。

uv を使用できない場合は、オペレーティングシステムを検出し、該当する公式スタンドアロンインストーラーを実行してください。

  • macOS または Linux:curl -LsSf https://astral.sh/uv/install.sh | sh。curl を使用できない場合に限り、wget -qO- https://astral.sh/uv/install.sh | sh を使用してください。
  • Windows:powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"。

現在のセッションでは新たにインストールされた実行ファイルを使用してください。uv がまだ PATH にない場合は、macOS/Linux では $HOME/.local/bin/uv、Windows では $HOME\.local\bin\uv.exe を使用してください。CLI が見つからない場合、無効な場合、またはサポートされる最低バージョンより古い場合は、解決した実行ファイルのパスを使用して、正確に uv tool install --force --python 3.12 atlas-flight-booking==0.3.12 を実行してください。atlas-flight がまだ PATH にない場合は、uv tool dir --bin でツールのバイナリディレクトリを解決し、そのディレクトリにある atlas-flight を実行してください。ユーザーにターミナルの再起動を求めないでください。atlas-flight --version が 0.3.12 以降を報告することを確認し、処理を続行してください。自動インストールまたはアップグレードが実際に失敗した場合に限り、停止してください。その場合は失敗の理由を簡潔に説明し、公式リンク https://docs.astral.sh/uv/getting-started/installation/ を提示してください。別の Python 環境やパッケージマネージャーに切り替えないでください。

続いて atlas-flight auth status --json を実行してください。返された場合に限り、data.ticketing_activation_url と data.ticketing_blocker を保持してください。いずれのフィールドも作り出したり、推測で導き出したりしないでください。認証が必要な場合は、references/cli-contract.md に従ってください。中断しているタスクを続行するには Atlas の認証が必要であることを説明し、返された URL を説明的なクリック可能リンクとして提示してください。ユーザーがページで行うことについて簡潔に説明してください。既存の ATRIP アカウントでサインインして認証するか、Create one を選択して登録を完了し、その後サインインして認証します。認証が完了したら会話に戻り、完了した旨を返信するようユーザーに依頼してください。現在のターンでは停止し、ポーリングは行わないでください。ユーザーが完了を確認した後、最大 120 秒間に限り 1 回ポーリングし、AUTHORIZED になった後にのみ中断していたタスクを再開してください。

検索と予約

不足している検索情報を収集して検索し、オファーを一覧表示します。保持されている data.ticketing_blocker が TOP_UP_REQUIRED の場合は、アカウントで引き続きフライトや価格を検索できますが、残高のチャージがまだ完了していないため、価格確認、注文の作成、発券はまだ利用できないことを、親しみやすい言葉で説明します。この利用可否を「リアルタイム」と表現してはいけません。data.ticketing_activation_url が返された場合は、次の中国語の文言を使用します:“当前账户可以继续查询航班和价格,但充值状态尚未生效,因此暂时不能继续核价、创建订单或出票。你可以前往 ATRIP 工作台查看充值状态;状态更新后,我会重新检查;如果你已选择某个报价,我会先核价确认最新价格。” {ticketing_activation_url} には返された URL を使用します。price_status=current の選択済みオファーを保持します。ユーザーがチャージの反映を伝えた後、認証状態を確認します。data.ticketing_available=true の場合は、以前の検索結果で bookable=false だった場合でも、選択済みの offer_id の価格を確認します。このフラグが示すのは検索時点での利用可否であり、それだけを理由に新たな検索を行う必要はありません。以前の金額はあくまで前回の価格として扱います。現在価格のオファーが選択されていない場合、または価格確認で OFFER_EXPIRED か FLIGHT_UNAVAILABLE が返された場合にのみ、再検索します。price_status=reference のオファーは再利用してはいけません。これらの結果を、別の価格比較サービスの結果として説明したり、そのドキュメントへのリンクを含めたりしてはいけません。

柔軟な検索

相対日付や曖昧な日付は、現在の日付とユーザーのタイムゾーンに基づいて解釈します。解釈した絶対日付を検索結果とともに示します。出発日を1日だけ指定された場合は、新しい検索を1回実行します。複数の日付または日付範囲が指定された場合は、暦日ごとに新しい検索を1回ずつ完全に実行し、それぞれの日付の search_id とオファー ID を個別に保持します。指定されたすべての日付の検索を試みた後にのみ、正規化した結果を統合します。範囲を指定する引数を捏造したり、ある日付の検索を別の日付の検索として再利用したり、日付を黙って間引いたり、比較の一部に失敗した状態で最安値を断定したりしてはいけません。

1人あたりの金額ではなく、指定された乗客全員分の合計である total_price を比較します。価格を直接比較できるのは同じ通貨の場合だけです。異なる通貨はグループ分けするか、明確に区別して提示します。指定された出発時刻、直行便、空港、航空会社の希望条件は、正規化したオファーに適用し、最終候補に含まれる日付を明記します。出発地と目的地は必須です。目的地が指定されていない場合に、対象を限定しない「どこでも」検索に変えてはいけません。検証や予約に進む前に、選択したオファーの元の日付と不透明な ID を保持します。

それ以外の場合、オファーの price_status=reference のときは、結果をリアルタイムの航空券価格検索と比較のみとしてユーザーに説明します。価格の継続的な検証や発券には対応していないことを伝え、中国語で「价格查询与比价说明」、またはユーザーの言語で自然に相当する説明的なリンクテキストを付けて https://resources.atriptech.com/api-wen-dang/api-reference/booking-apis/price-compare-search#price-compare-search にリンクします。認証結果が ticketing_available=false で、data.ticketing_blocker=TICKETING_ACTIVATION_REQUIRED および data.ticketing_activation_url が返された場合は、返された URL を説明的な「ATRIP ワークベンチ」リンクから開き、表示された未完了の有効化手順を完了してから戻ると、エージェントがステータスを確認し、新しい検索を実行できることも説明します。未完了の手順がメール認証、サブスクリプション、アクセス承認のいずれかだと推測してはいけません。比較のみのオファーを後から購入できると示唆したり、有効化後にその ID を再利用したりしてはいけません。内部の製品ラベルを公開してはいけません。それ以外の場合は、CLI が返した offer_id のみを検証します。検証後に価格が下がった場合はユーザーに伝えます。検証後に価格が上がった場合は、新たに明示的な確認を得ます。

オプションサービス、注文の作成、支払い、発券については、references/booking-workflow.md に従います。乗客情報を収集する前に references/passenger-input.md を読みます。オプションサービスを利用できない場合でも、検証、注文の作成、支払い、発券を妨げてはいけません。

支払いの前に、CLI の最新の支払い概要を提示し、data.order_url が存在する場合にのみ表示してから、ユーザーによる概要への明示的な承認を待ちます。返された支払い確認 ID は、正確に1回だけ使用します。支払いや注文の作成が完了したか不確かな場合、注文番号があればステータスを照会し、副作用のあるコマンドを繰り返してはいけません。

PAYMENT_BALANCE_CHECK_REQUIRED が発生した場合は、支払いを確認できなかったことと、ATRIP アカウントの残高が不足している可能性があることを説明します。残高を確認するよう依頼し、返された場合にのみ data.order_url を表示します。支払いを再度送信してはいけません。その後のステータス確認には order status のみを使用します。

必須チェックポイント

  • 🛑 AUTHORIZATION: 認証リンクと、既存アカウント/新規アカウントの手順を提示した後、そのターンを終了します。ユーザーが認証完了を返信するまで、ポーリングしてはいけません。
  • 🛑 PRICE INCREASE: 旧料金と新料金を提示した後、停止します。ユーザーが値上げを明示的に受け入れた場合にのみ、その価格を確定します。
  • 🛑 SEAT FALLBACK: 座席を選択する前に停止し、注文作成時にその座席が利用できなくなった場合の対応をユーザーが選ぶまで待ちます。
  • 🛑 PAYMENT: 現在のマスキング済み支払い概要と、返された注文リンクがあればそれを提示した後、停止します。ユーザーがその概要を明示的に承認した場合にのみ支払います。

安全性

設定、認証情報、内部ルーティングを調べないでください。サービスを直接呼び出さないでください。乗客の入力を公開したり、チャット、ログ、コマンド引数、保存済みの Skill ファイルにコピーしたりしないでください。再試行可能な読み取り専用の失敗は、同一の再試行を最大 1 回まで許可します。注文の作成や支払いは、決して再試行しないでください。

参照資料

コマンドを組み立てる前に、references/cli-contract.md を読んでください。エンドツーエンドのフローについては references/booking-workflow.md、乗客入力を一度だけ扱う方法については references/passenger-input.md、成功以外のすべてのコードについては references/error-handling.md を読んでください。

コメント