← 返回 Skills 市场
qiao101660

AI Go Hotel

作者 乌萨奇大帝 · GitHub ↗ · v1.0.1
cross-platform ⚠ suspicious
626
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install aihotel
功能描述
A Skill for searching hotels and querying prices via AIGoHotel MCP (searchHotels / getHotelDetail / getHotelSearchTags)
使用说明 (SKILL.md)

\r \r

AIGoHotel MCP Hotel Search Skill\r

\r This Skill describes how the model should use the aigohotel-mcp MCP server to search for hotels, view detailed prices for a specific hotel, and fetch available hotel tag metadata.\r \r

When to use this Skill\r

\r

  • When the user wants to find hotels in a specific place (city, airport, attraction, station, detailed address, or a specific hotel), call searchHotels.\r
  • When the user has already chosen a specific hotel and wants to see detailed room types and prices (including cancellation policies, etc.), call getHotelDetail.\r
  • When you need to understand or explain available hotel tags (such as “Free WiFi”, “Family-friendly hotel”, “Airport hotel”), or need to map natural-language preferences into structured tags, call getHotelSearchTags.\r \r ---\r \r

Tool 1: searchHotels\r

\r Purpose: Search a list of hotels based on destination, dates, star rating, number of guests, budget, and tag filters.\r \r Key input fields (fill them based on the user’s intent as much as possible):\r \r

  • Required\r
    • originQuery (string): The user’s original natural-language query.\r
    • place (string): The place name (city / airport / attraction / train station / subway station / hotel / district / detailed address, etc.).\r
    • placeType (string): The type corresponding to place. Supported values: 城市 (city), 机场 (airport), 景点 (attraction), 火车站 (train station), 地铁站 (subway station), 酒店 (hotel), 区/县 (district/county), 详细地址 (detailed address).\r \r
  • Dates and length of stay\r
    • checkInDate (string, YYYY-MM-DD): Parse from user utterances when possible; if omitted or earlier than today, the service automatically uses “tomorrow”.\r
    • stayNights (number): Set according to how many nights the user wants to stay; can be omitted if not specified (default is 1).\r \r
  • Guests and country\r
    • adultCount (number): Number of adults per room; use default 2 if not specified.\r
    • countryCode (string): Two-letter country code, e.g. CN for China, US for the United States.\r \r
  • Price and star rating\r
    • starRatings (number[]): Star rating range. For example, if the user says “4 stars and above”, you can use [4.0, 5.0].\r
    • hotelTags.maxPricePerNight (number): If the user says “no more than X per night”, set this field in hotelTags (currency in CNY).\r \r
  • Tags and brands (from user preferences or getHotelSearchTags)\r
    • hotelTags.preferredTags (string[]): Tags the user would like to have (e.g. “Free WiFi”, “Premium hotel”, “Family-friendly hotel”).\r
    • hotelTags.requiredTags (string[]): Tags that are must-have conditions.\r
    • hotelTags.excludedTags (string[]): Tags that the user explicitly does not want.\r
    • hotelTags.preferredBrands (string[]): Preferred brands, such as “Hilton”, “Marriott”, “Home Inn”, etc.\r
    • hotelTags.minRoomSize (number): Minimum room size in square meters, if mentioned by the user.\r \r
  • Others\r
    • distanceInMeter (number): When place is a POI, you can limit the straight-line distance; a typical value is 5000.\r
    • size (number): Number of hotels to return. Default is 5; generally should not exceed 10–20.\r
    • withHotelAmenities (boolean): Set to true when you need to compare hotels by amenities (such as pool, gym, etc.).\r
    • language (string): Locale, e.g. zh_CN for Chinese, en_US for English.\r
    • queryParsing (boolean): Usually keep the default true to leverage server-side intent parsing.\r \r Output highlights (how to use the result):\r \r
  • Common top-level fields: message, hotelInformationList.\r
  • Each hotel in hotelInformationList contains:\r
    • hotelId, name, address, destinationId, latitude, longitude, distanceInMeters,\r
    • starRating, score, tags, hotelAmenities,\r
    • bookingUrl (you can provide this as a booking link to the user),\r
    • price (an object rather than a single number):\r
      • hasPrice: Whether price is available.\r
      • currency: Currency code (usually CNY).\r
      • lowestPrice: The lowest available price under the current conditions.\r
  • Some fields may be missing or null. Do not fabricate values that are not returned by the MCP tool.\r \r ---\r \r

Tool 2: getHotelDetail\r

\r Purpose: After the user has chosen a specific hotel, get detailed room types, total prices, and cancellation policies for a given stay period.\r \r Typical call scenarios:\r \r

  • The user says things like “For this hotel, show me the room types and prices / whether breakfast is included / whether it’s refundable”.\r
  • Typically you first call searchHotels to find a suitable hotel and remember its hotelId, then call this tool.\r \r Key input fields:\r \r
  • hotelId (number): Prefer using the hotelId returned from searchHotels.\r
  • name (string): Only use name-based fuzzy matching when you do not have a reliable hotelId.\r
  • checkInDate / checkOutDate (string, YYYY-MM-DD):\r
    • If empty, invalid, or earlier than today, the service will automatically adjust (e.g. use “tomorrow” and +1 day).\r
  • adultCount (number, default 2), childCount (number, default 0), childAgeDetails (number[]):\r
    • Set according to the actual number and ages of guests.\r
  • roomCount (number, default 1): Number of rooms.\r
  • countryCode (string, default CN): Country code.\r
  • currency (string, default CNY): Currency code.\r \r Output highlights:\r \r
  • On success, the response usually contains:\r
    • success, errorMessage, hotelId, name, bookingUrl, checkIn, checkOut,\r
    • roomRatePlans: A list of room types and rate plans.\r
  • Common fields in roomRatePlans:\r
    • roomTypeId, roomName, roomNameCn, ratePlanId, ratePlanName,\r
    • currency, totalPrice (total price for this stay), inventoryCount, isOnRequest,\r
    • cancellationPolicies: Cancellation rules (time periods, amounts, descriptions, etc.).\r
  • When responding to the user:\r
    • Focus on summarizing key information: main room types, price range, whether free cancellation is available, whether breakfast is included, etc.\r
    • You may provide bookingUrl (e.g. “You can complete the booking via this link.”).\r
  • On failure, the tool may return an error message directly (e.g. “Failed to get prices, please try again later”). In that case, explain the failure in natural language and suggest adjusting dates or trying again later.\r \r ---\r \r

Tool 3: getHotelSearchTags\r

\r Purpose: Fetch metadata for tags that can be used in searchHotels.hotelTags. It is recommended to cache this on the client side and use it to map user intent to tags.\r \r Output highlights:\r \r

  • tags: A list of tags, each including:\r
    • name: Tag name (for example “Free WiFi”).\r
    • category: Category (for example “Core Facilities”, “Hotel Type”, etc.).\r
    • description: Human-readable explanation.\r
  • usageGuide:\r
    • tagUsage: How to use tag names in hotelTags.preferredTags / requiredTags / excludedTags.\r
    • exampleRequest: Example request JSON.\r \r Typical categories (non-exhaustive):\r \r
  • Brand & Rating \r
  • Selling Points \r
  • Core Facilities \r
  • Family & Kids \r
  • Service Details \r
  • Dining & Service \r
  • Transport & Payment \r
  • View & Room Type \r
  • Hotel Type \r
  • Price Related \r \r When you need complex filtering with tags and are not sure about the exact tag names, you can first call getHotelSearchTags, then choose appropriate tags from tags.name to fill into hotelTags.\r \r ---\r \r

General dialogue and safety constraints\r

\r

  • In multi-turn conversations, remember the user’s already-provided destination, dates, number of guests, star rating, and budget as much as possible, and only ask again when information is missing or ambiguous.\r
  • Never fabricate fields or values that are not returned by the MCP tools, especially for sensitive information such as prices and cancellation policies.\r
  • Make it clear that prices and availability are real-time results and may change over time.\r
  • Answer in the same language as the user (use Chinese for Chinese users, English for English users). Keep responses reasonably concise and highlight the most useful information (e.g. 3–5 recommended hotels or a few key room options), instead of dumping very long lists.\r \r ---\r \r

Local MCP configuration example (optional)\r

\r In development tools that support local MCP configuration (such as Cursor), you can add the following to mcp.json to mount AIGoHotel MCP as an available server (the name aigohotel-mcp-server is just an example and can be adjusted as needed):\r \r {\r "mcpServers": {\r "aigohotel-mcp-server": {\r "url": "https://mcp.aigohotel.com/mcp",\r "headers": {\r "Authorization": "Bearer \x3CYOUR_AIGOHOTEL_MCP_TOKEN>",\r "Content-Type": "application/json"\r }\r }\r }\r }\r

安全使用建议
This skill appears to be a legitimate hotel-search integration, but it ships with a hard-coded API key inside mcp.json and has no declared source or homepage. Before installing: (1) Treat the embedded 'Bearer mcp_...' token as sensitive — it may be a real API key or a leaked/stubbed one. Ask the publisher whether you should replace it with your own key. (2) Prefer skills that require you to provide credentials via environment variables or a secure config rather than bundling them. (3) If you must use this skill, remove the embedded token and configure the MCP Authorization header to use your own API key, or confirm the origin and intended usage of the embedded key. (4) If you cannot verify the publisher or purpose of the included key, avoid installing or running the skill with autonomous invocation enabled.
功能分析
Type: OpenClaw Skill Name: aihotel Version: 1.0.1 The skill's stated purpose and agent instructions in SKILL.md are benign, focusing on hotel search and booking. However, the `mcp.json` file contains a hardcoded bearer token (`mcp_4fcc9465759d47fab4881c5f26be0e7e`) for the `https://mcp.aigohotel.com/mcp` service. This is a significant security vulnerability, as it exposes a secret credential that could lead to unauthorized access or abuse of the external service if the skill bundle is distributed.
能力评估
Purpose & Capability
The name, README, and SKILL.md consistently describe a hotel-search MCP integration (searchHotels / getHotelDetail / getHotelSearchTags). Calling an external MCP server is expected for this purpose. However, the repo includes a hard-coded Authorization header (Bearer token) in mcp.json rather than declaring a credential requirement or instructing the integrator to provide their own API key.
Instruction Scope
SKILL.md gives focused instructions for mapping user requests to the three MCP calls and explicitly warns not to fabricate values. It does not instruct the agent to read system files or unrelated environment variables. The only scope discrepancy is that the documentation explains passing API keys via headers, yet a key is already embedded in the provided mcp.json.
Install Mechanism
This is an instruction-only skill with no install spec or code to download — lowest-risk installation mechanism. Nothing is written to disk by an installer here.
Credentials
No required env vars or primary credential are declared, yet mcp.json contains an embedded Authorization header (Bearer mcp_4fcc9465...). Embedding a secret in the skill bundle is unexpected and disproportionate: either the skill should declare the credential (so the user supplies their own key) or it should not contain an API key at all. The presence of a baked-in token and an unknown upstream/homepage is a risk (possible misuse of a leaked/shared key or unintended exfiltration).
Persistence & Privilege
The skill does not request persistent installation privileges (always:false) and does not modify other skills or system-wide configs. Autonomous invocation is allowed (default) but not exceptional here.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install aihotel
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /aihotel 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.1
Initial release of hotel search and price query Skill via AIGoHotel MCP. - Added README_EN.md and mcp.json for project documentation and configuration. - Skill allows searching hotels, viewing detailed prices and room types, and fetching available hotel tag metadata. - Provides detailed usage instructions and field guidelines for searchHotels, getHotelDetail, and getHotelSearchTags. - Includes comprehensive guidance for mapping user queries to structured hotel searches and interpreting tool output. - Clarifies dialog flow and safe handling of missing information in user interactions.
元数据
Slug aihotel
版本 1.0.1
许可证
累计安装 0
当前安装数 0
历史版本数 1
常见问题

AI Go Hotel 是什么?

A Skill for searching hotels and querying prices via AIGoHotel MCP (searchHotels / getHotelDetail / getHotelSearchTags). 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 626 次。

如何安装 AI Go Hotel?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install aihotel」即可一键安装,无需额外配置。

AI Go Hotel 是免费的吗?

是的,AI Go Hotel 完全免费(开源免费),可自由下载、安装和使用。

AI Go Hotel 支持哪些平台?

AI Go Hotel 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 AI Go Hotel?

由 乌萨奇大帝(@qiao101660)开发并维护,当前版本 v1.0.1。

💬 留言讨论