mcpField
P
pp-alaska-airlines

pp-alaska-airlines

github.com/mvanhorn其他2.1k69 次安装今天更新
代码仓库

关于 pp-alaska-airlines

用于以编程方式搜索 Alaska Airlines 航班和查询 Atmos Rewards 数据的 CLI 技能。支持现金与里程搜索、按月规划最低里程往返行程,以及现金与积分价值比较;不自动处理预订。

主要功能

  1. 01现金和奖励航班搜索
  2. 02灵活日期票价矩阵
  3. 03按月规划最低里程往返行程
  4. 04比较现金与积分价值
  5. 05查询 Atmos Rewards 余额和机场信息

适用场景

  1. 01比较临近日期的票价
  2. 02查找某月低里程往返航班
  3. 03评估奖励兑换是否划算
  4. 04查询 Atmos Rewards 余额

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mvanhorn/printing-press-library --skill pp-alaska-airlines

安装后在 Claude Code 中输入/pp-alaska-airlines确认已加载。

详细介绍

Alaska Airlines — Printing Press CLI

前提条件:安装 CLI

此技能通过 alaska-airlines-pp-cli 二进制文件运行。**调用此技能中的任何命令前,必须先确认 CLI 已安装。**如果尚未安装,请先安装:

  1. 通过 Printing Press 安装程序安装。在 macOS/Linux 上,二进制文件默认安装到 $HOME/.local/bin;在 Windows 上,默认安装到 %LOCALAPPDATA%\Programs\PrintingPress\bin:
    npx -y @mvanhorn/printing-press-library install alaska-airlines --cli-only
    
  2. 验证:alaska-airlines-pp-cli --version
  3. 确保报告的安装目录位于将调用此技能的 Agent/运行时的 $PATH 中。

如果 npx 安装失败(没有 Node、处于离线状态等),则改用直接 Go 安装(需要 Go 1.26.6 或更高版本):

go install github.com/mvanhorn/printing-press-library/library/travel/alaska-airlines/cmd/alaska-airlines-pp-cli@latest

如果安装后 --version 报告“command not found”,则运行时无法在 $PATH 中找到二进制文件目录。验证成功前,请勿继续执行此技能的命令。

何时使用此 CLI

当 Agent 需要搜索 Alaska 航班,或以编程方式查询 Atmos Rewards 数据,并使用缓存的机场查询和精简的 JSON 输出时,请选择此 CLI。不要将其用于预订自动化;最终付款 POST 无法通过静态二进制文件重放,也不会尝试执行。

已知限制

这些功能在本 CLI 的手稿规划中有涉及,但本次生成并未实现。目前无法使用;如果围绕这些功能进行规划,将会收到“unknown command”或“unknown flag”错误。适用时请改用列出的实际命令:

  • book prepare(结账前的深层链接生成器)——尚未实现
  • flights search --want-seats-together(查找 N 人同行座位)——尚未实现
  • flights award-watch(监控奖励票价降价)——尚未实现;请按计划手动重新运行 flights award-cheapest
  • atmos status(等级进度)——尚未实现;原始积分请使用 atmos-rewards balance
  • flights search multi(多航段组合器)——尚未实现;每个航段请分别运行 flights search
  • doctor --auth(专用 JWT 解码标记)——尚未实现;doctor 会执行常规身份验证检查

独特功能

这些功能在此 API 的其他工具中均不可用。

面向 Agent 的原生机制
  • flights search --select — 通用的 --select 标记可将约 50KB 的搜索/结果 JSON 缩减为 Agent 所需的字段。

    让 Agent 只请求所需内容,省去无关信息。

    alaska-airlines-pp-cli flights search --origin SFO --destination SEA --depart 2026-11-27 --json --select flights.flightNumber,flights.fares.saver.price,flights.duration
    
奖励(里程 + 现金)规划器
  • flights award-cheapest --destination-region japan --month 2026-08 — 在一个日历月内,针对多个目的地机场并行搜索每一种(出发、返程)组合;返回里程价格最低的往返行程。

    只需一条命令,即可解决“帮我找一班 8 月用积分飞往日本且价格最低的航班”,无需反复点击 Alaska 网站。

    alaska-airlines-pp-cli flights award-cheapest --origin SFO --destination-region japan --month 2026-08 --cabin economy --max-stops 1 --json
    

    基于现金搜索使用的同一 /search/results/__data.json 端点;--award 标记(或 flights award-search)会将 ShoppingMethod=onlineaward 作为查询方式。

现金与积分价值比较器(使用 TPG 估值)
  • flights value-compare --origin FCO --destination SEA --depart 2026-08-30 — 对同一行程分别执行现金和奖励票搜索,并应用每积分美分数基准值(默认值:Alaska/Atmos 在 The Points Guy 月度估值页面上的数值;首次使用时抓取,并在本地缓存 30 天)。返回有效 cpp、TPG 倍数,以及使用积分支付时按 TPG 估值计算的美元成本。

    只需一目了然,即可回答“这次兑换划算吗?”,无需分别运行两次搜索再用计算器计算。

    alaska-airlines-pp-cli flights value-compare --origin FCO --destination SEA --depart 2026-08-30 --cabin economy --max-stops 0 --json
    

    使用 --cpp 1.2 可覆盖基准值(例如采用 NerdWallet 的数值);使用 --no-valuation-cache 可强制重新抓取 TPG 数据。软回退链:覆盖值 → 最新缓存 → 实时 TPG → 过期缓存 → 常量。估值查询出现问题时不会彻底失败;来源会显示在 meta.cpp_baseline_source 中(tpg-live、tpg-cached、override、fallback-stale、fallback-constant)。

HTTP 传输

此 CLI 使用兼容 Chrome 的 HTTP 传输来访问面向浏览器的端点。执行常规 API 调用时,无需常驻浏览器进程。

命令参考

account — 登录状态、会话令牌

  • alaska-airlines-pp-cli account login-status — 检查当前 Cookie 会话是否已通过身份验证
  • alaska-airlines-pp-cli account token — 刷新主会话 JWT

airports — 机场查询、代码共享合作伙伴信息和完整目录

  • alaska-airlines-pp-cli airports get — 根据 IATA 代码获取机场详情,包括代码共享承运商覆盖范围
  • alaska-airlines-pp-cli airports list — Alaska Airlines 及代码共享机场的完整列表(IATA 代码 + 城市 + 地区 + 经纬度)

atmos-rewards — Atmos Rewards 忠诚计划账户数据

  • alaska-airlines-pp-cli atmos-rewards balance — 当前 Atmos Rewards 积分余额
  • alaska-airlines-pp-cli atmos-rewards token-refresh — 通过 Cookie 会话刷新 Atmos Rewards 令牌

cart — 已构建行程深链的购物车状态(只读检查)

  • alaska-airlines-pp-cli cart — 检查已构建行程深链的购物车状态(需要 --leg1 和 --adults 标志)

flights — 搜索 Alaska Airlines 航班,查看票价、舱位等级和灵活日期矩阵

  • alaska-airlines-pp-cli flights business — Alaska for Business 计划元数据
  • alaska-airlines-pp-cli flights et-info — 电子机票信息 / 通用元数据
  • alaska-airlines-pp-cli flights get-features — 针对用户的功能标志(网站内部使用)
  • alaska-airlines-pp-cli flights search — 根据指定日期和乘客构成,搜索两个机场之间的航班。传入 --award 可将现金票价切换为里程 + 现金票价(使用同一端点,ShoppingMethod=onlineaward)。
  • alaska-airlines-pp-cli flights shoulder-dates — 灵活日期票价矩阵:获取目标日期前后的票价
  • alaska-airlines-pp-cli flights award-search — 单日奖励票价矩阵(里程 + 现金)。这是 flights search --award 的简写别名。
  • alaska-airlines-pp-cli flights award-cheapest — 每月最低里程规划器。并行遍历多个目的地和(出发、返程)日期组合;返回里程数最低的往返行程。
  • alaska-airlines-pp-cli flights value-compare — 按 TPG 每点价值估算比较现金与积分。对同一行程执行配对搜索,并输出有效 cpp、TPG 倍数,以及使用积分支付时按 TPG 估值的美元成本。传入 --cpp <float> 可覆盖基准值。
查找合适的命令

知道想做什么,但不清楚该用哪个命令时,可直接向 CLI 查询:

alaska-airlines-pp-cli which "<capability in your own words>"

which 会根据自然语言功能查询,从此 CLI 精选的功能索引中找出最匹配的命令。退出代码 0 表示至少有一个匹配项;退出代码 2 表示没有可信匹配项——请改用 --help 或缩小查询范围。

使用示例

将航班搜索结果精简为仅显示票价和航班号
alaska-airlines-pp-cli flights search --origin SFO --destination SEA --depart 2026-11-27 --json --select flights.flightNumber,flights.duration,flights.fares.saver.price

将约 50 KB 的结果载荷精简为仅显示航班号、时长和优惠票价。避免将完整载荷写入 Agent 上下文。

家庭往返搜索
alaska-airlines-pp-cli flights search --origin SFO --destination SEA --depart 2026-11-27 --return 2026-11-30 --adults 2 --children 4 --json

为两名成人和四名儿童生成涵盖所有舱位等级的往返票价矩阵。

灵活日期票价矩阵
alaska-airlines-pp-cli flights shoulder-dates --json

获取目标出发日期前后的票价,方便你找到更便宜的临近日期,无需分别执行 N 次搜索。

搜索单日奖励票价
alaska-airlines-pp-cli flights award-search --origin SFO --destination HND --depart 2026-08-15 --return 2026-08-22 --cabin economy --json

单日里程 + 现金票价矩阵。与现金 flights search 使用同一端点,只是将 ShoppingMethod 设为 onlineaward。也可以向常规 flights search 传入 --award,效果相同。

使用里程搜索一个月内前往日本的最低价往返行程
alaska-airlines-pp-cli flights award-cheapest --origin SFO --destination-region japan --month 2026-08 --cabin economy --max-stops 1 --json

并行遍历 8 个日本机场在 8 月的所有(出发、返程)组合,返回按里程价格排序的前 5 个往返行程。使用 --min-nights 和 --max-nights 限定行程时长(默认为 5 至 21 晚)。使用 --top-n 设置结果数量,使用 --concurrency 调整并发扇出,并使用 --save <path> 保存完整结果集,而不仅是前 N 项。

使用 TPG 估值比较现金与积分
alaska-airlines-pp-cli flights value-compare --origin FCO --destination SEA --depart 2026-08-30 --cabin economy --max-stops 0 --json

针对同一行程同时搜索现金票和奖励票,首次使用时抓取 TPG 每月公布的 Alaska/Atmos 每积分美分估值(缓存 30 天),并输出可直接对比的结果。输出的 meta 会显示 cpp_baseline_source(tpg-live、tpg-cached、override、fallback-stale、fallback-constant),方便 Agent 审核基准数据的新鲜度。

使用其他来源的估值覆盖 TPG:

alaska-airlines-pp-cli flights value-compare --origin FCO --destination SEA --depart 2026-08-30 --cpp 1.2 --json
Atmos Rewards 积分余额
alaska-airlines-pp-cli atmos-rewards balance --json

Cookie 会话账户当前的 Atmos Rewards 积分余额。

机场查询
alaska-airlines-pp-cli airports get --iata SEA --json

从本地存储中获取单个 IATA 代码对应的机场详情(城市、地区、经纬度、代码共享承运人)。

身份验证设置

运行一次 auth login --chrome。该命令会通过 macOS 钥匙串,从已登录的 Chrome 配置文件中提取 Alaska 的 Cookie(AS_ACNT、AS_NAME、guestsession、ASSession 等)。后续命令会通过 Surf transport 和 Chrome TLS 指纹重放这些 Cookie。

运行 alaska-airlines-pp-cli doctor 验证设置。doctor 会检查身份验证和连通性;手册中计划的专用 doctor --auth JWT 解码标记尚未在此版本中实现。

Agent 模式

在任意命令中添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。

  • 可通过管道传递 — JSON 输出到 stdout,错误输出到 stderr

  • 可筛选 — --select 保留指定字段子集。点分路径可逐层访问嵌套结构;数组会逐元素遍历。对于内容冗长的 API,这对控制上下文大小至关重要:

    alaska-airlines-pp-cli airports list --agent --select id,name,status
    
  • 可预览 — --dry-run 显示请求但不发送

  • 适合离线使用 — 有本地 SQLite 存储时,sync/search 命令可使用该存储

  • 非交互式 — 从不提示输入,所有输入均通过标记指定

  • 显式重试 — 只有在已存在的创建操作也应视为成功时,才使用 --idempotent

响应封装

从本地存储或 API 读取数据的命令会使用来源信息封装输出:

{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

解析 .results 获取数据,并通过 .meta.source 判断数据来自实时接口还是本地存储。只有当 stdout 连接到终端时,才会将易读的 N results (live) 摘要输出到 stderr;通过管道传输或由 Agent 使用时,stdout 只会输出纯 JSON。

Agent 反馈

当你(或 Agent)发现此 CLI 有不妥之处时,请记录下来:

alaska-airlines-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
alaska-airlines-pp-cli feedback --stdin < notes.txt
alaska-airlines-pp-cli feedback list --json --limit 10

条目会本地存储在 ~/.alaska-airlines-pp-cli/feedback.jsonl。只有设置了 ALASKA_AIRLINES_FEEDBACK_ENDPOINT,并且传入了 --send 或设置了 ALASKA_AIRLINES_FEEDBACK_AUTO_SEND=true 时,才会将反馈 POST 到服务器。默认情况下,反馈只保存在本地。

记录让你感到意外的地方,而不是提交 Bug 报告。简短、具体、单行描述:这些细节才会逐步累积成效。

输出传递

每条命令都接受 --deliver <sink>。输出会发送到指定目标,同时输出到 stdout,或替代 stdout,这样 Agent 无需手动通过管道传递,就能路由命令结果。支持以下三种目标:

目标效果
stdout默认;仅输出到 stdout
file:<path>原子地将输出写入 <path>(临时文件 + 重命名)
webhook:<url>将输出正文 POST 到该 URL(使用 --compact 时,内容类型为 application/json 或 application/x-ndjson)

遇到未知 scheme 时会拒绝执行,并返回结构化错误,列出支持的 scheme。Webhook 请求失败时会返回非零状态码,并将 URL 和 HTTP 状态码记录到 stderr。

命名配置

配置是保存的一组标志值,可在多次调用中重复使用。如果定时 Agent 每次运行都使用相同配置调用同一命令,请使用配置——这是 HeyGen 的“Beacon”模式。

alaska-airlines-pp-cli profile save briefing --json
alaska-airlines-pp-cli --profile briefing airports list
alaska-airlines-pp-cli profile list --json
alaska-airlines-pp-cli profile show briefing
alaska-airlines-pp-cli profile delete briefing --yes

显式标志始终优先于配置值;配置值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置,方便内省型 Agent 在运行时发现这些配置。

退出代码

代码含义
0成功
2用法错误(参数不正确)
3未找到资源
4需要身份验证
5API 错误(上游问题)
7触发速率限制(等待后重试)
10配置错误

参数解析

解析 $ARGUMENTS:

  1. 为空、help 或 --help → 显示 alaska-airlines-pp-cli --help 的输出
  2. 以 install 开头 → 以 mcp 结尾 → 安装 MCP;否则 → 参见上文的先决条件
  3. 其他任何内容 → 直接使用(作为带有 --agent 的 CLI 命令执行)

MCP 服务安装

从此 CLI 已发布的公共库条目或预构建版本中安装 MCP 二进制文件,然后注册:

claude mcp add alaska-airlines-pp-mcp -- alaska-airlines-pp-mcp

验证:claude mcp list

直接使用

  1. 检查是否已安装:which alaska-airlines-pp-cli 如果未找到,请提供安装选项(参见本技能顶部的先决条件)。
  2. 将用户查询与上文“独特功能和命令参考”中的最佳命令匹配。
  3. 使用 --agent 标志执行:
    alaska-airlines-pp-cli <command> [subcommand] [args] --agent
    
  4. 如果存在歧义,请查看子命令帮助:alaska-airlines-pp-cli <command> --help。

评论

支持 Markdown