mcpField
S
search-hotel

search-hotel

github.com/justintravala其他0188 次安装23 周前更新
代码仓库

关于 search-hotel

用于住宿查询的技能,通过 travel-cli 搜索符合条件的酒店,并返回价格、评分及后续查房或预订所需的酒店 ID。

主要功能

  1. 01按目的地与日期搜索酒店
  2. 02按入住人数和房间数筛选
  3. 03设置价格范围与酒店条件
  4. 04返回价格、评分和酒店 ID

适用场景

  1. 01比较指定城市的酒店选择
  2. 02查找符合预算的住宿
  3. 03按泳池或免费早餐等条件筛选

安装

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

$npx skills add https://github.com/justintravala/travel-skills --skill search-hotel

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

详细介绍

搜索酒店

使用 travel-cli 搜索酒店。返回符合条件的酒店列表,包括价格、评分,以及预订或查看房型所需的 ID。

适用场景

当用户想寻找住宿时,触发此技能。例如:

  • “帮我找 5 月 1 日至 5 月 5 日在东京的酒店”
  • “给我看看巴黎有海景的 4 星级酒店”
  • “下个周末涩谷附近有什么地方可以住”
  • “我需要曼谷一间可住 2 位成人和 1 位儿童的房间”

请勿将此技能用于航班、旅行团、餐厅或其他非住宿类旅行查询。

前提条件

必须能使用 travel-cli CLI。通过 npx 运行:

npx @tvl-justin/travel-cli@latest search-hotel ...

如果用户已全局安装(npm install -g @tvl-justin/travel-cli),请直接调用 travel-cli。

调用方式

完整命令:

npx @tvl-justin/travel-cli@latest search-hotel \
  --location "<city or destination>" \
  --checkin <YYYY-MM-DD> \
  --checkout <YYYY-MM-DD> \
  --rooms "<occupancy>" \
  --limit 5
参数规则
  • --location(必填)——城市、街区或目的地名称。使用用户提供的最具体地点。如果用户只说“Tokyo”,则使用 "Tokyo";如果用户说“Shinjuku, Tokyo”,则使用 "Shinjuku, Tokyo"。
  • --checkin / --checkout(必填)——使用 YYYY-MM-DD 格式。调用前,先根据今天的日期换算相对日期(如“下个周末”“明天”)。如果用户只提供了单个日期和住宿时长(如“从 5 月 1 日开始住 3 晚”),请计算退房日期。
  • --rooms——入住人数字符串。格式:
    • "2" = 1 间客房,2 位成人
    • "2,5" = 1 间客房,2 位成人 + 1 位 5 岁儿童
    • "2,3,8" = 1 间客房,2 位成人 + 3 岁和 8 岁儿童
    • 多间客房用 ; 分隔:"2;2,5" = 第 1 间客房住 2 位成人,第 2 间客房住 2 位成人 + 1 位 5 岁儿童
    • 用户未指定时的默认值:"2"。
  • --limit——返回的酒店数量。默认值为 5。如果用户想要更多选项,则增加到 10。
  • --min-price / --max-price——每晚价格,单位为 USD。传入前,请务必将其他货币换算为 USD。例如,“低于 200 万 VND” → --max-price 80。
  • --filters——用逗号分隔。允许的值:free_breakfast、swimming_pool、ocean_view、all_inclusive。仅添加用户明确提出的筛选条件。
  • --lat / --lng——可选的坐标,用于提高精确度。已知知名城市的坐标时使用。

询问缺失信息

如果用户提供了目的地但未提供日期,请一次性询问入住和退房日期(或入住日期加住宿时长)。除非用户的问题暗示了非默认入住人数(例如“适合我一家 4 口入住”),否则不要询问入住人数。

输出

CLI 会将 JSON 输出到 stdout:

{
  "sessionId": "abc123",
  "hotels": [
    {
      "hotelId": "h_001",
      "name": "Park Hyatt Tokyo",
      "rating": 9.2,
      "star": 5,
      "pricePerNight": 450,
      "totalPrice": 1800,
      "currency": "USD",
      "packageId": "pkg_001",
      "refundability": "free_cancellation_until_2026-04-29"
    }
  ]
}

重要——保存 sessionId。用户后续调用(search-room、book-hotel)时需要用到它。

向用户展示结果

以简洁、易浏览的列表展示结果,包括名称、每晚价格、评分和一项显著特色。不要直接输出原始 JSON。示例:

在东京找到 5 家酒店,日期为 5 月 1 日至 5 月 5 日:

  1. Park Hyatt Tokyo — $450/晚 · 9.2/10 · 4 月 29 日前可免费取消
  2. Hotel Gracery Shinjuku — $180/晚 · 8.5/10 · 免费早餐
  3. ...

您想查看其中任何一家酒店的房型,还是直接预订?

始终明确提出下一步:查看房型(search-room 技能)或直接预订(book-hotel 技能)。

常见错误

  • Network error — Travel API 无法访问。告知用户并询问是否要重试。
  • 400 Bad Request — 通常是日期无效(退房日期早于入住日期,或日期已过)。重新验证输入并再次询问用户。
  • No hotels found — 尝试更宽泛的地点或更换日期。

评论

支持 Markdown