mcpField
P
pp-airhint

pp-airhint

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

关于 pp-airhint

pp-airhint 是用于 AirHint 航班搜索和机票价格预测的 CLI 技能,可提供买入或等待建议。它支持跨日期或航线批量比较,并提供面向 Agent 的输出与本地状态功能。

主要功能

  1. 01搜索航班和当前价格
  2. 02机票买入或等待预测
  3. 03按日期范围批量预测
  4. 04多航线比较
  5. 05按月查找最低价日期
  6. 06Agent 输出与结果投递选项

适用场景

  1. 01决定何时购买机票
  2. 02比较不同出行日期的预测票价
  3. 03比较同一日期的多条航线
  4. 04查找某月票价最低的出发日期

MCP 相关

README 提到可安装并注册 MCP 二进制文件 `airhint-pp-mcp`,供 MCP 客户端使用,但未说明该服务公开的工具或数据。

安装

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

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

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

详细介绍

Airhint — Printing Press 命令行工具

前置条件:安装 CLI

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

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

如果通过 npx 安装失败(没有 Node、离线等),请改用直接通过 Go 安装(需要 Go 1.26.6 或更高版本)。此方式会将程序安装到 $GOPATH/bin(默认为 $HOME/go/bin),因此请将该目录添加到 $PATH:

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

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

AirHint 航班价格预测 API — 为机票提供买入/等待建议

独特功能

其他任何适用于此 API 的工具都不具备这些功能。

组合查询
  • workflow predict-sweep — 针对某条航线,在日期范围内批量进行买入/等待预测,并获取每个日期的实时价格

    为行程灵活的旅客提供批量价格分析,找出最便宜且最稳妥的购票日期

    airhint-pp-cli workflow predict-sweep STN DUB --days 14 --airline FR --json
    
  • workflow compare-routes — 在同一日期比较多个出发地-目的地组合的买入/等待预测

    一条命令即可比较 3 条以上的航线,无需打开 3 个以上的浏览器标签页 — 专为 Agent 打造的旅行规划

    airhint-pp-cli workflow compare-routes 2026-08-16 STN:DUB LGW:BCN MAD:LIS --json
    
可累积的本地状态
  • workflow cheapest-window — 使用 cheapest-deal-month 和 cheapest-airline-deal-month 端点,找出指定月份内最便宜的出发日期

    无需打开浏览器,即可回答“8 月哪天飞 STN→DUB 最便宜?”

    airhint-pp-cli workflow cheapest-window STN DUB 8 --airline FR
    

HTTP 传输

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

发现信号

此 CLI 根据浏览器观察到的流量上下文生成。

  • 捕获覆盖范围:共 16 个网络条目,其中包含 8 个 API 条目
  • 协议:rest_json(置信度 75%)
  • 生成提示:browser_http_transport、requires_protected_client、weak_schema_confidence
  • 候选命令创意:create_airport_names — 根据观察到的 POST /airport-names 流量推导而来;get_DUB — 根据观察到的 GET /cheapest-deal-month/one-way/STN/DUB/{dub_id} 流量推导而来;get_search — 根据观察到的 GET /search/{search_id} 流量推导而来;list_2026_08_16 — 根据观察到的 GET /predict/FR/STN/DUB/2026-08-16 流量推导而来;list_airport_autocomplete — 根据观察到的 GET /airport-autocomplete 流量推导而来;list_inline_ads — 根据观察到的 GET /inline-ads 流量推导而来;list_kayak_location_lookup — 根据观察到的 GET /kayak-location-lookup 流量推导而来。
  • 注意事项:weak_schema_evidence:二进制或 protobuf 响应无法提供可靠的 JSON Schema 证据。

命令参考

airport-autocomplete — 机场和城市搜索自动补全

  • airhint-pp-cli airport-autocomplete — 按名称或 IATA 代码搜索机场和城市

airport-names — 批量查询机场名称

  • airhint-pp-cli airport-names — 获取一组 IATA 代码对应的机场名称

cheapest-airline-deal-month — 查找某家航空公司在某个月份的最优惠机票

  • airhint-pp-cli cheapest-airline-deal-month <airline> <origin> <destination> <date> <currency> — 获取某家航空公司在某条航线上、指定日期附近的最低票价

cheapest-deal-month — 查找指定月份的最优惠机票

  • airhint-pp-cli cheapest-deal-month <origin> <destination> <month> — 获取某条航线在指定月份的最低单程票价

flights — 航班搜索 — 查找可预订航班和当前价格

  • airhint-pp-cli flights create-search — 发起航班搜索,并返回用于轮询的 search_id
  • airhint-pp-cli flights get-search — 使用 create_search 返回的 search_id 轮询搜索结果

predict — 航班价格预测 — 买入或等待建议

  • airhint-pp-cli predict <airline> <origin> <destination> <date> — 根据指定价格获取航班的买入或等待建议
查找合适的命令

当你知道要做什么,但不知道该使用哪个命令时,可以直接询问 CLI:

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

which 会根据自然语言能力查询,从此 CLI 精选的功能索引中找到最匹配的命令。退出代码 0 表示至少找到一个匹配项;退出代码 2 表示没有足够可靠的匹配项,此时可改用 --help 或使用更具体的查询。

身份验证设置

无需身份验证。

运行 airhint-pp-cli doctor 验证设置。

Agent 模式

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

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

  • 可筛选 — --select 保留字段子集。点分路径可深入嵌套结构;数组会逐元素遍历。对于冗长 API,精简上下文至关重要:

    airhint-pp-cli airport-autocomplete --query example-value --agent --select id,name,status
    
  • 可预览 — --dry-run 显示请求,但不发送

  • 适合离线使用 — 本地 SQLite 存储可用时,同步或搜索命令可以使用该存储

  • 非交互式 — 从不提示输入,每个输入都通过标志传入

  • 明确重试行为 — 只有当已存在的创建结果应视为成功时,才使用 --idempotent

响应封装

从本地存储或 API 读取数据的命令会将输出封装在一个来源信息对象中:

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

解析 .results 获取数据,并查看 .meta.source 判断数据来自实时来源还是本地存储。只有当 stdout 是终端且未设置机器可读格式标志(--json、--csv、--compact、--quiet、--plain、--select)时,才会将便于阅读的 N results (live) 摘要输出到 stderr;管道或 Agent 使用者以及显式指定格式的运行会在 stdout 上获得纯 JSON。

Agent 反馈

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

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

条目会保存在本地 ~/.local/share/airhint-pp-cli/feedback.jsonl。只有在设置了 AIRHINT_FEEDBACK_ENDPOINT,且传入 --send 或 AIRHINT_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)

不支持的方案会被拒绝,并返回指出受支持方案的结构化错误。Webhook 失败时会返回非零状态,并在 stderr 中记录 URL 和 HTTP 状态码。

命名配置

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

airhint-pp-cli profile save briefing --json
airhint-pp-cli --profile briefing airport-autocomplete --query example-value
airhint-pp-cli profile list --json
airhint-pp-cli profile show briefing
airhint-pp-cli profile delete briefing --yes

显式标志始终优先于配置文件中的值;配置文件中的值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置文件,方便进行自省的 Agent 在运行时发现它们。

退出代码

代码含义
0成功
2用法错误(参数错误)
3未找到资源
5API 错误(上游问题)
7请求过于频繁(等待后重试)
10配置错误

参数解析

解析 $ARGUMENTS:

  1. 为空、help 或 --help → 显示 airhint-pp-cli --help 的输出
  2. 以 install 开头 → 以 mcp 结尾 → 安装 MCP;否则 → 参见上文的先决条件
  3. 其他情况 → 直接使用(作为 CLI 命令执行,并添加 --agent)

MCP 服务安装

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

claude mcp add airhint-pp-mcp -- airhint-pp-mcp

验证:claude mcp list

直接使用

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

评论

支持 Markdown