mcpField
P
pp-hotelist

pp-hotelist

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

关于 pp-hotelist

通过命令行发现和比较 Hotelist 的 AI 评级及照片验证酒店数据,支持全国排名、连锁对比、多城市路线和变化跟踪;用于发现,不支持预订或实时房态查询。

主要功能

  1. 01按评分、价格和设施筛选酒店
  2. 02按国家排名性价比
  3. 03比较连锁品牌及评分一致性
  4. 04查找多城市路线酒店
  5. 05通过快照和差异跟踪变化
  6. 06返回 JSON 和指定字段

适用场景

  1. 01查找全国高性价比酒店
  2. 02比较某地区的酒店连锁
  3. 03为多城市路线选择酒店
  4. 04跟踪酒店评分或价格变化

MCP 相关

项目文档说明可安装 Hotelist MCP 服务并注册到 Claude Code,但未说明该服务具体提供哪些数据或工具。

安装

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

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

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

详细介绍

Hotelist — Printing Press CLI

前置条件:安装 CLI

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

  1. 使用 Printing Press 安装程序安装。在 macOS/Linux 上,二进制文件默认安装到 $HOME/.local/bin;在 Windows 上,默认安装到 %LOCALAPPDATA%\Programs\PrintingPress\bin:
    npx -y @mvanhorn/printing-press-library install hotelist --cli-only
    
  2. 验证:hotelist-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/hotelist/cmd/hotelist-pp-cli@latest

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

Hotelist.com(由 @levelsio 创建)使用 AI 为酒店评分:它会读取真实旅客评价,为实际客房照片评分,并通过照片验证酒店宣称的设施,因此你可以筛选出配有真实哑铃的健身房,或确实设有浴缸的酒店。此 CLI 将这些数据带入终端和 Agent 上下文,支持 --json/--select 输出、离线缓存,以及网站单地图无法实现的跨地点命令:rank-country、chain-compare、corridor 和 watch/diff 漂移追踪器。数据抓取自 Hotelist(由社区/AI 评分,并非官方 API)。

何时使用此 CLI

当 Agent 或用户希望在不受付费排名影响的情况下,发现经 AI 评分并经照片验证的酒店时,请使用此 CLI;尤其适用于跨地点问题:在一个国家内寻找性价比最高的酒店、比较不同连锁酒店、多城市路线规划,或追踪某个地点随时间的变化。当答案需要汇总或关联 Hotelist 一次只能查看一座城市的地图无法提供的酒店数据时,此 CLI 尤其有用。

不适用情况

以下情况请勿使用此 CLI:

  • 请勿使用此 CLI 预订酒店或查询实时客房空房情况——Hotelist 仅用于发现酒店,不提供预订服务或指定日期的价格。
  • 请勿将其用于查询特定日期的每晚报价;价格是 AI 估算的平均值。
  • 请勿将其作为通用的 Booking.com/Expedia 客户端使用——它只提供 Hotelist 的 AI 评分数据集。

独特功能

其他任何用于此 API 的工具都不具备以下功能。

地图界面无法呈现的跨地点性价比
  • rank-country — 根据 Hotelist 的评分与价格比,对整个国家的最佳酒店进行排名,并支持组合设施和价格筛选条件。

    当 Agent 需要在严格条件下找出整个国家性价比最高的酒店时,请使用此命令,而不是逐个城市分页搜索。

    hotelist-pp-cli rank-country thailand --min-rating 8 --max-price 150 --amenities pool,coworking --json
    
  • chain-compare — 在一个国家内,对比不同酒店连锁的平均评分、中位价格和评分与价格比。

    一次调用即可回答“这里哪家连锁酒店真正值得入住?”,无需手动设置十几次地图筛选条件。

    hotelist-pp-cli chain-compare --chains marriott,hilton,hyatt --country japan --metric best-value --json
    
  • corridor — 一次性找出多城市路线中每个停靠点的最佳酒店,并应用共同的筛选条件。

    只需一条命令即可规划游牧者的年度路线;用户提到多个城市时,请优先使用此命令,而不是分别搜索。

    hotelist-pp-cli corridor --cities "Chiang Mai,Lisbon,Medellin" --min-rating 7.5 --max-price 120 --amenities coworking --json
    
会不断积累的本地状态
  • watch — 随时间记录某个已保存地点的快照,并比较自上次查看以来哪些酒店有所改善、评价下降或价格变动。

    这是回答“这座城市的酒店自上次以来变得更好或更贵了吗?”的唯一方法——遇到任何关于随时间变化的问题,都选它。

    hotelist-pp-cli watch diff lisbon --since 2026-01-01 --metric both --json
    
  • chain-consistency — 计算某个连锁品牌在一个国家的评分均值、中位数和分布范围,查看该品牌的表现是否一贯出色,还是存在大量离群值。

    在陌生地区信赖某个忠诚计划品牌之前使用;它能揭示单个房源无法体现的隐藏离群风险。

    hotelist-pp-cli chain-consistency --chain marriott --country thailand --json
    
  • price-cliff — 找出某座城市中评分与额外花费的性价比骤降的价格点——即仍真正称得上不错的最便宜酒店。

    将“尽可能少花钱,同时不牺牲品质”转化为一个数字,并列出价格刚低于这一临界点的酒店。

    hotelist-pp-cli price-cliff bangkok --min-rating 7 --json
    

命令参考

hotel — Hotelist 中一间由 AI 评分的酒店。

  • hotelist-pp-cli hotel <hotel_id> — 获取一间酒店的原始详情弹窗 HTML(Hotelist Score、已验证的设施、AI 评分明细)。
找到合适的命令

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

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

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

示例

在城市中寻找有正规健身房的高性价比酒店
hotelist-pp-cli filter lisbon --gym-weights --json --select hotels.name,hotels.hotellist_rating,hotels.price

照片验证过的举重健身房,并将结果缩减为名称、评分和价格,方便 Agent 无需解析完整载荷。

全国高性价比排行榜
hotelist-pp-cli rank-country thailand --min-rating 8 --max-price 150 --top 10 --json

一次调用,按评分与价格的比值列出全国前 10 家酒店。

决定入住前比较忠诚计划连锁品牌
hotelist-pp-cli chain-compare --chains marriott,hyatt --country japan --metric best-value --json

并列比较各连锁品牌的平均评分、中位数价格和性价比。

规划游牧路线
hotelist-pp-cli corridor --cities "Chiang Mai,Lisbon,Tbilisi" --min-rating 7.5 --max-price 120 --json

一次运行,为每个停留地点筛选出符合所有条件的最佳酒店。

深入查看一家酒店的 AI 评分明细
hotelist-pp-cli show KYLCGAVE --json

完整的 Hotelist Score、AI 照片和评价评分、共识、已验证的设施、优缺点。

身份验证设置

无需身份验证。

运行 hotelist-pp-cli doctor 以验证设置。

Agent 模式

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

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

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

    hotelist-pp-cli hotel mock-value --agent --select id,name,status
    
  • 可预览 — --dry-run 会显示请求,但不会发送

  • 支持离线使用 — sync/search 命令在本地 SQLite 存储可用时可以使用它

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

  • 只读 — 请勿使用此 CLI 执行创建、更新、删除、发布、评论、点赞、邀请、下单、发送或其他会修改数据的请求

响应封装

从本地存储或 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 有不妥之处时,请记录下来:

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

条目保存在本地的 ~/.local/share/hotelist-pp-cli/feedback.jsonl。除非设置了 HOTELIST_FEEDBACK_ENDPOINT,并且传入了 --send 或设置了 HOTELIST_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”模式。

hotelist-pp-cli profile save briefing --json
hotelist-pp-cli --profile briefing hotel mock-value
hotelist-pp-cli profile list --json
hotelist-pp-cli profile show briefing
hotelist-pp-cli profile delete briefing --yes

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

退出代码

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

参数解析

解析 $ARGUMENTS:

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

安装 MCP 服务

  1. 安装 MCP 服务:
    go install github.com/mvanhorn/printing-press-library/library/travel/hotelist/cmd/hotelist-pp-mcp@latest
    
  2. 在 Claude Code 中注册:
    claude mcp add hotelist-pp-mcp -- hotelist-pp-mcp
    
  3. 验证:claude mcp list

直接使用

  1. 检查是否已安装:which hotelist-pp-cli 如果未找到,请提供安装选项(参见本技能开头的先决条件)。
  2. 将用户查询与上方“独特功能”和“命令参考”中的最佳命令相匹配。
  3. 使用 --agent 标志执行:
    hotelist-pp-cli <command> [subcommand] [args] --agent
    
  4. 如果不明确,可进一步查看子命令帮助:hotelist-pp-cli <command> --help。

评论

支持 Markdown