mcpField
C
compare-hotels

compare-hotels

github.com/borski生产力780105 次安装2 天前更新
代码仓库

关于 compare-hotels

面向 Agent 的住宿搜索编排技能,将酒店现金价、高端预订门户和度假租赁纳入统一比较。它协调搜索工具并评估项目权益,不是独立脚本。

主要功能

  1. 01协调酒店与租赁搜索
  2. 02比较现金价和门户价格
  3. 03纳入 Airbnb 与 VRBO 选项
  4. 04核查高端项目资格
  5. 05按列明权益调整价格
  6. 06报告来源错误与缺失

适用场景

  1. 01比较目的地的酒店与租赁
  2. 02评估 Chase 和 Amex 酒店门户选项
  3. 03对照高端权益与直接预订价

MCP 相关

该技能可调用 airbnb_search MCP 工具查询度假租赁和价格。

安装

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

$npx skills add https://github.com/borski/travel-hacking-toolkit --skill compare-hotels

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

详细介绍

**配套参考技能。**加载以下技能以获取更深入的背景信息:

  • hotel-chains — 品牌酒店与忠诚度计划的对应关系
  • premium-hotels — FHR / THC / Chase Edit 额度及叠加策略
  • points-valuations — 酒店计划每积分美分价值(CPP)的下限/上限(Hyatt 为 1.4-1.7cpp,Hilton 下限为 0.4cpp 等)
  • fallback-and-resilience — 酒店来源失效时的恢复方案

比较酒店

搜索所有可用来源,查找住宿并提供统一的比较结果。将门户高端计划(Chase Edit、Amex FHR/THC)、现金价格和 Airbnb 备选方案整合到一个视图中。

**这是一项编排技能。**它会告诉 Agent 要运行哪些工具以及如何组合结果。没有独立脚本。

适用场景

  • “帮我找 8 月 11 日至 15 日在巴黎的酒店”
  • “这家酒店应该通过 Chase 还是 Amex 预订?”
  • “比较奥斯陆的酒店和 Airbnb”
  • 用户希望全面了解住宿选择的任何搜索需求

来源

尽可能并行运行以下来源。绝不静默失败。

门户高端计划(需要 Docker)
来源技能速度可查找内容
Chase Travelchase-travel~45sEdit 酒店(100 美元额度、早餐、升级)、Points Boost、普通酒店
Amex Travelamex-travel~45sFHR(100 美元以上额度、早餐、升级、延迟退房)、THC(入住 2 晚及以上可享 100 美元额度)
现金价格和元搜索
来源技能/工具速度可查找内容
SerpAPIserpapi~3sGoogle Hotels 现金价格和直接预订链接。
Trivago网络搜索~5s对多个 OTA 进行元搜索。使用 tavily/exa 搜索 trivago.com。查找最便宜的 OTA 价格。
LiteAPI网络搜索~5s提供协议价格的酒店 API 聚合器。查看 liteapi.travel。可能找到低于公开 OTA 价格的价格。
RapidAPIrapidapi~3sBooking.com 房源和价格。可选,仅在用户特别询问 Booking.com 时使用。
质量和评分
来源技能/工具速度可查找内容
TripAdvisortripadvisor~2s评分、排名、分项评分(位置/服务/清洁度)、评论、照片、设施、奖项。每月 5K 次调用。

**SerpAPI、Trivago 和 LiteAPI 均为默认来源。**始终搜索这三个来源。只有在用户特别询问 Booking.com 时,才添加 RapidAPI。使用 TripAdvisor 获取质量数据(评分、排名、评论),补充其他来源提供的价格信息。

度假租赁
来源技能/工具速度可查找内容
Airbnbairbnb_search MCP 工具~5s整套房源、独立房间及总价
VRBOvrbo 技能(Patchright)~20s整套住宅、公寓、木屋。由专业机构管理的房源通常不会出现在 Airbnb 上。使用有头模式/Docker — 受 Akamai 保护。
高端酒店数据库(本地,立即可用)
来源数据文件可查找内容
FHR 房源data/fhr-properties.json预订前检查酒店是否属于 FHR
THC 房源data/thc-properties.json检查酒店是否属于 THC
Chase Edit 房源data/chase-edit-properties.json检查酒店是否加入 Chase 的 Edit 计划

工作流

步骤 1:搜索所有来源
PARALLEL GROUP 1 (fast — HTTP/API/MCP calls, no browser, ~3-5s):
  - SerpAPI: Google Hotels cash prices
  - Trivago: metasearch across OTAs (web search)
  - LiteAPI: negotiated hotel rates (web search)
  - Airbnb: vacation rentals in the area (npx MCP — lightweight scrape, not a browser)
  - Local data: check premium-hotels databases for the city

PARALLEL GROUP 2 (slow — headed browser via Patchright/Xvfb in Docker, ~20-45s):
  - VRBO: whole homes / condos / cabins — vrbo skill (~20s, headed/Docker, behind Akamai; run for whole-home comparisons alongside Airbnb)
  - Chase Travel: --hotel --dest "City" --checkin YYYY-MM-DD --checkout YYYY-MM-DD --json
  - Amex Travel: --hotel --dest "City" --checkin YYYY-MM-DD --checkout YYYY-MM-DD --json

对每个来源,记录:

  • 来源名称
  • 状态:“ok” | “error: {reason}” | “skipped: {reason}”
  • 结果数量
  • 数据
步骤 2:识别叠加机会

将搜索结果与 data/fhr-properties.json、data/thc-properties.json 和 data/chase-edit-properties.json 交叉核对:

For each hotel in results:
  - Is it in FHR? → Tag [FHR]
  - Is it in THC? → Tag [THC]
  - Is it in Chase Edit? → Tag [EDIT]
  - Is it in multiple? → Tag [FHR+EDIT] and note stacking potential

叠加是指:通过一个门户预订,单独使用另一张卡付款。例如,通过 Amex 预订 FHR(获得早餐、额度和升级),然后在该酒店的其他消费上使用 CSR 的 300 美元旅行额度。

第 3 步:计算积分价值

Chase:

  • CSR/CSP 的 Chase 门户定价采用动态 Points Boost。每次预订都会显示特定的积分价格;CSR 的有效 cpp 通常在 1.5-2.0 cpp 之间,但并非每次预订都能保证达到这一底线。请获取门户中的实际报价。
  • Points Boost 优惠是动态的,会因路线、日期和库存而异。
  • 门户报价就是实际的 UR 成本。不要除以 1.5——所列积分已经反映报价时的动态 Boost 费率。

Amex:

  • 酒店门户定价会变动(航班并非总是按 1 cpp 计价)。
  • 显示的积分价格就是实际的 MR 成本。根据现金与积分的比例计算 CPP。
  • FHR 礼遇($100+ 抵用金、早餐)能大幅抵扣价格。

计算扣除礼遇后的价格:

FHR adjusted = total_price - $100 credit - (breakfast_value × nights)
  breakfast_value ≈ $30-50/person × 2 people = $60-100/night
THC adjusted = total_price - $100 credit (2+ night stays only)
Edit adjusted = total_price - $100 credit - (breakfast_value × nights)
第 4 步:呈现统一表格

始终使用 Markdown 表格。 酒店按扣除礼遇后的总价排序。

示例:巴黎,8 月 11-15 日(4 晚,2 位客人)
#酒店计划星级每晚总价积分礼遇调整后总价
1SO/ ParisEDIT+BOOST5★$639$2,555127,756 UR早餐、$100 抵用金、升级~$1,855
2Hotel BalzacEDIT+BOOST5★$614$2,455122,769 UR早餐、$100 抵用金、升级~$1,755
3Le BristolFHR5★$1,849$8,284不适用$100 抵用金、早餐、升级、下午 4 点退房~$6,884
4Marriott Champs-Élysées—4★$289$1,156——$1,156
5Airbnb:Marais 2BR——$195$780—厨房、洗衣机$780

已检查的来源:

  • ✅ Chase Travel:21 家酒店(15 家 Edit,6 家标准酒店)
  • ✅ Amex Travel:17 家酒店(13 家 FHR,4 家 THC)
  • ✅ SerpAPI:25 家酒店
  • ✅ Trivago:30 家酒店(每家酒店最便宜的 OTA)
  • ✅ LiteAPI:22 家酒店(协商价)
  • ✅ Airbnb:18 个房源
  • ✅ 高端数据库:巴黎有 8 家 FHR、3 家 THC、15 家 Edit 酒店
  • ⏭️ RapidAPI/Booking.com:已跳过(未请求)
第 5 步:推荐

表格之后,始终提供:

  1. 奢华酒店最佳性价比: 哪家高端酒店扣除礼遇后节省最多
  2. 最佳经济型选择: 最便宜的选项(较长时间入住时通常是 Airbnb)
  3. 礼遇叠加机会: 同时属于 FHR/THC 和 Chase Edit 的酒店
  4. 抵用金使用: 适用哪些信用卡抵用金($600 Amex FHR、$300 CSR 旅行、$250 Select Hotels)
  5. 积分还是现金: 使用积分是否值得?(计算 CPP)
  6. 直接预订对比: 如果直接预订比门户价格便宜很多,请注明

Airbnb 集成

使用 airbnb_search MCP 工具:

airbnb_search(
  location="Paris, France",
  checkin="2026-08-11",
  checkout="2026-08-15",
  adults=2,
  propertyType="entire_home"
)

对于每个 Airbnb 搜索结果,请提取:

  • 名称、价格、评分、评论数
  • 房源类型(整套住宅、独立房间)
  • 主要设施(厨房、洗衣机、Wi-Fi、空调)
  • 房源直达链接

适合选择 Airbnb 的情况:

  • 入住 5 晚或以上(每晚价格通常更低)
  • 团体或家庭需要更大空间
  • 酒店价格过高的目的地
  • 需要使用厨房(饮食限制、节省餐费)

适合选择酒店的情况:

  • 短期入住(1-2 晚)
  • 高端礼遇可抵扣房价(仅 FHR 早餐的价值就可能达到每晚 $100+)
  • 积分兑换可获得不错的 CPP
  • 忠诚度计划会籍礼遇(升级、延迟退房、休息室使用权)

错误处理

绝不能默默失败。 每个来源都必须报告其状态。

- ❌ Chase Travel: Login failed. No Chase portal pricing available.
- ❌ Airbnb: No results for this location/dates.
- ⚠️ Amex Travel: Only 3 results (some hotels may not be available for these dates).

如果高端数据库显示该城市有 FHR/Edit 酒店,但门户搜索没有返回这些酒店,请注明:“FHR 数据库列出巴黎有 8 家酒店,但 Amex Travel 只返回了 3 家。部分酒店可能在您选择的日期无空房。”

使用的数据文件

文件用途
data/fhr-properties.json按城市/坐标查询 FHR 酒店
data/thc-properties.json查询 THC 酒店
data/chase-edit-properties.json查询 Chase Edit 酒店
data/hotel-chains.json酒店集团到忠诚度计划的映射
data/points-valuations.json积分计算所用的 CPP 估值

限制

  • 门户搜索需要 Docker 和凭据。若未配置,请跳过。
  • 必须能够使用 Airbnb MCP。若不可用,请妥善跳过。
  • FHR/THC/Edit 数据库会定期更新。住宿可能已添加或移除。
  • Amex 酒店积分价格浮动(并非 1 cpp)。请使用门户中的实际积分价格。
  • Chase 门户价格会动态变化,采用 Points Boost(部分预订约为 1.5-2.0 cpp,并非保证的最低值)。过去固定的 1.5x 倍数已不复存在。
  • 直接预订价格(通过 SerpAPI)可能与同一家酒店的门户价格不同。

评论

支持 Markdown