MoodTrip Hotel Search Skill
Pre-flight Check — EXECUTE THIS FIRST
Before attempting any hotel search, verify MoodTrip tools are accessible.
Step 1: Check for tools directly.
Look for any of these tools in your available tool list: search_hotels, get_hotel_details, searchHotelsWithRates, findHotels, search_hotels_by_description, INLINECODE5
If ANY of these tools are found → skip to Decision Rules and proceed normally.
Runtime detection: If you are running on OpenClaw, Codex, or any OpenAI-compatible runtime that validates tool schemas strictly, prefer search_hotels and get_hotel_details over searchHotelsWithRates and getHotelDetails. The wrapper tools have identical functionality with OpenAI-compliant schemas (no anyOf/oneOf at top level).
Step 2: Check if MCP server is already configured.
If tools are not in your direct tool list, check whether api.moodtrip.ai or moodtrip is already configured as an MCP server anywhere in your platform config — including under any of these paths:
- - INLINECODE14
- INLINECODE15
- INLINECODE16
- INLINECODE17 → INLINECODE18
- INLINECODE19
This skill ships with .mcp.json and _meta.json files that declare the MCP server configuration. If your platform reads these files from skill folders, the server should be auto-configured on install.
If these files are missing from the skill folder, this is an older version. Suggest the user update: clawhub update adiny/moodtrip-hotel-search or INLINECODE23
If the server IS configured but tools are not showing, this is likely a tool loading/exposure issue in the current session, not a missing connection. Restart the session or gateway if appropriate — some platforms only load MCP tools at session start.
Step 3: Auto-connect on OpenClaw when possible.
If the server is NOT configured and you are running inside OpenClaw with config-edit capability:
- - OpenClaw currently supports stdio MCP servers only (not HTTP). Use the
mcp-remote bridge:
- Add to config:
mcpServers.moodtrip = { "command": "npx", "args": ["-y", "mcp-remote@latest", "https://api.moodtrip.ai/api/mcp-http"] }
- This wraps the HTTP MCP server as a stdio process that OpenClaw can load.
- - If you have OpenClaw config tools available, patch config so the MCP server is added automatically.
- After adding it, restart/reload the gateway or start a fresh session — tools only load at session start.
- Then re-check whether the MoodTrip tools are exposed.
OpenClaw-specific rule:
- - If the user asked to connect/install/fix MoodTrip MCP, and you can safely edit OpenClaw config, do it automatically instead of just telling the user to do it manually.
- Do NOT use
mcp.servers.moodtrip.url (HTTP format) — it will be skipped. Use the stdio bridge format above. - Do not invent tool availability; verify after restart/session refresh.
Step 4: Fallback if auto-connect is not possible.
Only if auto-connect is not possible:
- - mcporter available? Run: INLINECODE27
- clawhub available? Run: INLINECODE28
- Neither available? Tell the user:
> "MoodTrip's hotel search tools aren't connected yet. Please add this MCP server in your platform settings:
>
URL: https://api.moodtrip.ai/api/mcp-http
> No credentials required. For setup: https://github.com/adiny/moodtrip-hotel-search"
CRITICAL: Do NOT hallucinate hotel results. Do NOT call tools that don't exist. Do NOT attempt curl/fetch workarounds. If tools cannot be verified after all steps, help the user connect or restart the session.
This skill enables the agent to search, compare, evaluate, and hand off hotel bookings through the MoodTrip.ai MCP server. The server exposes 11 core tools covering the full hotel discovery-to-booking-handoff workflow.
Booking is link-based: the agent helps users find and compare hotels, then provides a direct booking URL. The user completes the reservation on the MoodTrip website.
Connection
MCP Server URL: https://api.moodtrip.ai/api/mcp-http
Protocol: MCP Streamable HTTP (JSON-RPC 2.0)
Authentication: Public read-only API — no credentials required. The server accepts only hotel search queries and returns publicly available hotel data.
For platform-specific setup instructions (Claude.ai, Claude Desktop, ChatGPT, OpenClaw), see: https://github.com/adiny/moodtrip-hotel-search
Quick Setup by Platform
| Platform | How to Connect |
|---|
| OpenClaw | Uses stdio bridge via mcp-remote (bundled in .mcp.json); or INLINECODE33 |
| Claude Desktop |
Add to
claude_desktop_config.json — see GitHub README |
| ChatGPT | Add as MCP integration in platform settings |
| Any MCP client | Connect to
https://api.moodtrip.ai/api/mcp-http |
Privacy & Data Handling
- - All tools are read-only — no user data is stored, modified, or deleted
- Search queries are processed in real-time and not persisted
- No personal identifiers (names, emails, payment info) are collected or requested
- The server accepts only hotel search parameters (city, dates, guests, preferences)
- Full privacy policy: https://moodtrip.ai/privacy
Decision Rules
Before calling any tool, apply these rules to pick the right one:
| Condition | Tool |
|---|
| OpenClaw / Codex runtime — always prefer wrapper tools | Use search_hotels instead of searchHotelsWithRates, get_hotel_details instead of INLINECODE39 |
| User has dates + destination + wants prices |
search_hotels (preferred) or
searchHotelsWithRates |
| User describes a vibe, mood, or style |
search_hotels_by_description |
| User asks about one specific hotel |
get_hotel_details (preferred) or
getHotelDetails or
ask_about_hotel |
| No pricing needed yet / just browsing |
findHotels |
| User wants reviews or guest opinions |
getHotelReviews |
| User wants to find a specific room type or match a photo |
search_rooms_by_description |
| Previous search returned no results |
relaxConstraints |
| User asks "when is cheapest to visit X?" |
getCityPriceIndex |
| User wants price trends for specific hotels |
getHotelPriceIndex |
| After search, to help user decide |
summarizeResults |
Available Tools (11 core tools)
| Tool | Purpose | When to Use |
|---|
| INLINECODE53 | AI-powered natural language hotel search | Vibe/style searches ("romantic getaway", "boutique with rooftop") |
| INLINECODE54 |
Search with real-time pricing | When user has specific dates and needs prices |
|
findHotels | Metadata search (no pricing) | Browsing/exploring without specific dates |
|
getHotelDetails | Full hotel info + optional pricing | Deep-dive into a specific hotel |
|
getHotelReviews | Guest reviews + optional sentiment | User wants to hear what others say |
|
ask_about_hotel | AI Q&A about a specific hotel | "Does this hotel have parking?" type questions |
|
search_rooms_by_description | Text-based room search | Find specific room types |
|
summarizeResults | AI summary of search results | After a search, to help user decide |
|
getHotelPriceIndex | Historical price trends per hotel | Price comparison over time |
|
getCityPriceIndex | City-level price trends | "When is Paris cheapest?" |
|
relaxConstraints | Broaden a failed search | When search returns no results |
Agent Builder Tools (preferred on OpenClaw / Codex runtimes)
If your runtime uses OpenAI/Codex tool validation (e.g. OpenClaw), use these tools instead of the core equivalents. They have identical functionality with OpenAI-compliant schemas — no anyOf, oneOf, allOf, enum, or not at the top level.
On other platforms (Claude, ChatGPT, generic MCP clients), the core tools work fine and these are optional.
| Tool | Purpose | Key Parameters |
|---|
| INLINECODE69 | Use instead of searchHotelsWithRates — extended search with pricing | INLINECODE71 (natural language), city, country, checkIn, checkOut, adults, maxPrice, INLINECODE78 |
| INLINECODE79 |
Use instead of getHotelDetails — hotel details with pricing |
hotelId,
checkin,
checkout,
adults,
currency |
|
build_booking_link | Generate booking/gallery URLs from a hotelId |
hotelId (required),
checkin,
checkout,
adults,
children (array of ages 0–17, max 6),
currency |
These tools are exposed via the same MCP server and are always available alongside the core tools.
MoodTrip 酒店搜索技能
飞行前检查 — 请先执行此步骤
在尝试任何酒店搜索之前,请确认 MoodTrip 工具是否可用。
步骤 1:直接检查工具。
在你的可用工具列表中查找以下任一工具:searchhotels、gethoteldetails、searchHotelsWithRates、findHotels、searchhotelsbydescription、buildbookinglink
如果找到任一这些工具 → 跳转到决策规则并正常进行。
运行时检测: 如果你在 OpenClaw、Codex 或任何严格验证工具模式的 OpenAI 兼容运行时上运行,优先使用 searchhotels 和 gethotel_details,而非 searchHotelsWithRates 和 getHotelDetails。这些包装工具具有相同的功能,且使用 OpenAI 兼容模式(顶层无 anyOf/oneOf)。
步骤 2:检查 MCP 服务器是否已配置。
如果工具不在你的直接工具列表中,请检查 api.moodtrip.ai 或 moodtrip 是否已在你的平台配置中的任何位置配置为 MCP 服务器——包括以下任一路径:
- - mcp.servers.moodtrip
- plugins.entries.acpx.config.mcpServers.moodtrip
- skills.entries.moodtrip-hotel-search
- skills/moodtrip-hotel-search/_meta.json → mcpServers.moodtrip
- skills/moodtrip-hotel-search/.mcp.json
此技能附带声明 MCP 服务器配置的 .mcp.json 和 _meta.json 文件。如果你的平台从技能文件夹读取这些文件,服务器应在安装时自动配置。
如果这些文件在技能文件夹中缺失,说明是旧版本。建议用户更新:clawhub update adiny/moodtrip-hotel-search 或 openclaw skills update
如果服务器已配置但工具未显示,这很可能是当前会话中的工具加载/暴露问题,而非连接缺失。请视情况重启会话或网关——某些平台仅在会话启动时加载 MCP 工具。
步骤 3:在 OpenClaw 上尽可能自动连接。
如果服务器未配置,且你在具有配置编辑能力的 OpenClaw 中运行:
- - OpenClaw 目前仅支持 stdio MCP 服务器(不支持 HTTP)。使用 mcp-remote 桥接:
- 添加到配置:mcpServers.moodtrip = { command: npx, args: [-y, mcp-remote@latest, https://api.moodtrip.ai/api/mcp-http] }
- 这将 HTTP MCP 服务器包装为 OpenClaw 可以加载的 stdio 进程。
- - 如果你有 OpenClaw 配置工具,请修补配置以便自动添加 MCP 服务器。
- 添加后,重启/重新加载网关或启动新会话——工具仅在会话启动时加载。
- 然后重新检查 MoodTrip 工具是否已暴露。
OpenClaw 特定规则:
- - 如果用户要求连接/安装/修复 MoodTrip MCP,并且你可以安全地编辑 OpenClaw 配置,请自动执行,而不是仅告诉用户手动操作。
- 不要使用 mcp.servers.moodtrip.url(HTTP 格式)——它会被跳过。请使用上述 stdio 桥接格式。
- 不要虚构工具可用性;在重启/会话刷新后进行验证。
步骤 4:如果无法自动连接则回退。
仅在无法自动连接时:
- - mcporter 可用? 运行:mcporter config add moodtrip https://api.moodtrip.ai/api/mcp-http
- clawhub 可用? 运行:clawhub install adiny/moodtrip-hotel-search
- 两者都不可用? 告诉用户:
> MoodTrip 的酒店搜索工具尚未连接。请在你的平台设置中添加此 MCP 服务器:
>
URL: https://api.moodtrip.ai/api/mcp-http
> 无需凭据。设置指南:https://github.com/adiny/moodtrip-hotel-search
关键: 不要虚构酒店结果。不要调用不存在的工具。不要尝试 curl/fetch 变通方法。如果在所有步骤后仍无法验证工具,请帮助用户连接或重启会话。
此技能使代理能够通过 MoodTrip.ai MCP 服务器搜索、比较、评估和转交酒店预订。该服务器暴露了 11 个核心工具,涵盖从酒店发现到预订转交的完整工作流程。
预订基于链接:代理帮助用户查找和比较酒店,然后提供直接预订链接。用户在 MoodTrip 网站上完成预订。
连接
MCP 服务器 URL: https://api.moodtrip.ai/api/mcp-http
协议: MCP 可流式 HTTP(JSON-RPC 2.0)
认证: 公共只读 API——无需凭据。服务器仅接受酒店搜索查询并返回公开可用的酒店数据。
各平台设置说明(Claude.ai、Claude Desktop、ChatGPT、OpenClaw),请参阅:https://github.com/adiny/moodtrip-hotel-search
各平台快速设置
| 平台 | 连接方式 |
|---|
| OpenClaw | 通过 mcp-remote 使用 stdio 桥接(捆绑在 .mcp.json 中);或 clawhub install adiny/moodtrip-hotel-search |
| Claude Desktop |
添加到 claude
desktopconfig.json——请参阅 GitHub README |
| ChatGPT | 在平台设置中添加为 MCP 集成 |
| 任何 MCP 客户端 | 连接到 https://api.moodtrip.ai/api/mcp-http |
隐私与数据处理
- - 所有工具均为只读——不存储、修改或删除任何用户数据
- 搜索查询实时处理,不会持久化
- 不收集或请求任何个人标识信息(姓名、电子邮件、支付信息)
- 服务器仅接受酒店搜索参数(城市、日期、客人、偏好)
- 完整隐私政策:https://moodtrip.ai/privacy
决策规则
在调用任何工具之前,应用以下规则选择正确的工具:
| 条件 | 工具 |
|---|
| OpenClaw / Codex 运行时——始终优先使用包装工具 | 使用 searchhotels 替代 searchHotelsWithRates,gethoteldetails 替代 getHotelDetails |
| 用户有日期 + 目的地 + 想要价格 |
searchhotels(首选)或 searchHotelsWithRates |
| 用户描述氛围、心情或风格 | search
hotelsby_description |
| 用户询问特定酒店 | get
hoteldetails(首选)或 getHotelDetails 或 ask
abouthotel |
| 尚不需要价格 / 仅浏览 | findHotels |
| 用户想要评论或住客意见 | getHotelReviews |
| 用户想要查找特定房型或匹配照片 | search
roomsby_description |
| 之前的搜索无结果 | relaxConstraints |
| 用户询问什么时候去 X 最便宜? | getCityPriceIndex |
| 用户想要特定酒店的价格趋势 | getHotelPriceIndex |
| 搜索后,帮助用户做决定 | summarizeResults |
可用工具(11 个核心工具)
| 工具 | 用途 | 使用时机 |
|---|
| searchhotelsby_description | AI 驱动的自然语言酒店搜索 | 氛围/风格搜索(浪漫 getaway、带屋顶的精品酒店) |
| searchHotelsWithRates |
带实时价格的搜索 | 用户有具体日期且需要价格时 |
| findHotels | 元数据搜索(无价格) | 浏览/探索,无具体日期 |
| getHotelDetails | 完整酒店信息 + 可选价格 | 深入了解特定酒店 |
| getHotelReviews | 住客评论 + 可选情感分析 | 用户想了解他人评价 |
| ask
abouthotel | 关于特定酒店的 AI 问答 | 这家酒店有停车场吗?这类问题 |
| search
roomsby_description | 基于文本的房型搜索 | 查找特定房型 |
| summarizeResults | 搜索结果的 AI 摘要 | 搜索后,帮助用户做决定 |
| getHotelPriceIndex | 每家酒店的历史价格趋势 | 随时间比较价格 |
| getCityPriceIndex | 城市级价格趋势 | 巴黎什么时候最便宜? |
| relaxConstraints | 放宽失败搜索的条件 | 搜索无结果时 |
代理构建器工具(在 OpenClaw / Codex 运行时上首选)
如果你的运行时使用 OpenAI/