mcpField
A
atlas-flight-booking

atlas-flight-booking

github.com/atlas-doc生产力1449 次安装11 周前更新
代码仓库

关于 atlas-flight-booking

指导 Agent 仅通过 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 原样不变。根据响应中的 code 分支处理,绝不使用 message,且只呈现规范化的 CLI 字段。

能力相关问题

如果用户只是询问此 Skill 能做什么或如何使用,请直接用用户所用的语言回答。不要检查或安装 CLI、检查授权状态,也不要调用任何服务。回答简洁,并采用以下结构或自然等效形式:

“Atlas Flight Booking 支持使用自然语言查询和预订航班。你可以提供准确日期,也可以描述日期范围、时间偏好或价格要求;我会搜索并比较符合条件的航班。

例如:

  • ‘查询 9 月 4 日上海到东京的航班。’
  • ‘比较 9 月 1 日至 7 日上海到东京的最低价格。’
  • ‘找未来两周东京到大阪最便宜的上午直飞航班。’

选定航班后,还可以继续核价、选择行李和座位、创建订单、余额支付并查询出票状态。涉及涨价、座位替代或支付时,会先获得你的确认。”

除非用户要求了解更多详情,否则不要列举实现细节或不支持的售后操作。

开始

将 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 秒轮询一次,且只有在状态为 AUTHORIZED 后才恢复被中断的任务。

搜索和预订

收集缺失的搜索信息,进行搜索并列出报价。如果保留的 data.ticketing_blocker 为 TOP_UP_REQUIRED,请用友好的语言说明:账户可以继续搜索航班和价格,但余额充值尚未完成,因此暂时无法核价、创建订单或出票。不要将此可用性描述为“实时”。如果返回了 data.ticketing_activation_url,请使用以下中文措辞:“当前账户可以继续查询航班和价格,但充值状态尚未生效,因此暂时不能继续核价、创建订单或出票。你可以前往 ATRIP 工作台查看充值状态;状态更新后,我会重新检查;如果你已选择某个报价,我会先核价确认最新价格。” {ticketing_activation_url} 使用返回的 URL。保留一个 price_status=current 的已选报价。用户表示充值已生效后,检查授权状态。如果 data.ticketing_available=true,则核验所选的 offer_id,即使其先前的搜索结果显示 bookable=false 也一样;该标记表示搜索时的可用性,本身不需要重新搜索。将先前的金额仅视为之前的价格。只有在未选中当前价格报价,或核验返回 OFFER_EXPIRED 或 FLIGHT_UNAVAILABLE 时,才重新搜索。切勿重复使用 price_status=reference 的报价。不要将这些结果描述为独立的价格比较服务,也不要附上其文档链接。

灵活搜索

根据当前日期和用户的时区解析相对日期或模糊日期。将解读后的绝对日期与搜索结果一同呈现。对于一个确定的出发日期,运行一次新的搜索。对于限定日期列表或日期范围,按每个日历日期分别运行一次完整的新搜索,分别保留每个日期的 search_id 和报价 ID,并且只有在尝试过所有请求日期后才合并规范化结果。绝不编造范围参数、将某个日期的搜索结果当作另一个日期的结果重放、静默抽样日期,或在部分比较失败时声称得出了确定的最低价。

比较完整乘客请求的 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 时,还要说明用户可以通过描述性“ATRIP 工作台”链接打开返回的 URL,完成页面显示的未完成激活步骤,然后返回以便 Agent 检查状态并运行新的搜索。不要猜测未完成的步骤是邮箱验证、订阅还是访问审批。不要暗示仅用于比价的报价之后可以购买,也不要在激活后重用其 ID。不要透露内部产品标签。其他情况下,只验证 CLI 返回的 offer_id。价格验证后如价格下降,告知用户;如价格上涨,须取得新的明确确认。

可选服务、创建订单、付款和出票请遵循 references/booking-workflow.md。收集乘客信息前,请阅读 references/passenger-input.md。可选服务不可用,绝不会阻止价格验证、创建订单、付款或出票。

付款前,展示 CLI 当前的付款摘要,并且仅在 data.order_url 存在时显示该链接,然后等待用户明确批准该摘要。返回的付款确认 ID 必须原样使用,且只能使用一次。如果付款或创建订单的结果不确定,并且已有订单号,则查询状态,绝不重复执行会产生副作用的命令。

遇到 PAYMENT_BALANCE_CHECK_REQUIRED 时,说明付款未能确认,ATRIP 账户余额可能不足。请用户检查余额;仅在返回 data.order_url 时显示该链接,且绝不再次提交付款。之后如需查询状态,只能使用 order status。

强制检查点

  • 🛑 **授权:**展示授权链接以及现有账户/新账户的操作说明后,立即结束本轮。只有用户回复授权已完成后,才能轮询。
  • 🛑 **价格上涨:**展示原总价和新总价后,立即结束本轮。只有用户明确接受涨价后,才能确认该价格。
  • 🛑 **座位备选方案:**选择座位前,暂停操作,等待用户决定若创建订单时该座位不可用该怎么办。
  • 🛑 **付款:**展示当前的脱敏付款摘要及任何返回的订单链接后,立即结束本轮。只有用户明确批准该摘要后,才能付款。

安全

不要检查配置、凭据或内部路由。不要直接调用服务。不要泄露乘客输入,也不要将其复制到聊天、日志、命令参数或已保存的 Skill 文件中。对于可重试的只读失败,最多只能进行一次相同的重试;绝不要重试订单创建或付款。

参考资料

构造命令前,请先阅读 references/cli-contract.md。阅读 references/booking-workflow.md 了解端到端流程,阅读 references/passenger-input.md 了解一次性乘客输入,并阅读 references/error-handling.md 了解所有非成功代码。

评论

支持 Markdown