MCP server for CuddlyNest hotel search and listing details (rooms, prices, availability from the public listing page)
Two well-defined tools with complete JSON schemas, clear descriptions, and proper parameter documentation. Tool names follow verb_noun convention (search, listing_details). Descriptions are detailed (194 - 250 chars) and explain what each tool does, when to use it, and what it returns. All parameters have types and descriptions. Tool annotations (readOnlyHint, openWorldHint) are present. However, output schemas are not explicitly documented in the source, only inferred from descriptions. Error handling guidance is minimal. Parameter validation rules (e.g., date format YYYY-MM-DD) are stated in descriptions but not enforced via JSON Schema patterns.
Get details for a specific CuddlyNest hotel: static basics (name, location, description, amenities, images) from the listing page, plus room options, prices, availability and cancellation policies read from the public listing page rendered in a headless browser.
Search CuddlyNest for a destination and the top hotels there. Returns place candidates (city/region + coordinates + total property count) and a list of hotels — name, listing URL, star + guest rating, and (when available) images, distance from the centre and key amenities. Pass a hotel's product_id from the results to cuddlynest_listing_details for live rooms and prices. The hotel list is top-matches scale (~10-60), not the full inventory.
Output schemas not documented. Descriptions mention what fields are returned (name, listing URL, star rating, images, amenities, rooms, prices, availability, cancellation policies) but no formal JSON Schema for responses. LLMs cannot plan downstream tool calls or extract structured data without knowing response field types and names.
Date format constraints (YYYY-MM-DD) stated in descriptions but not enforced via JSON Schema format or pattern. LLMs may pass invalid dates; no server-side validation error guidance provided.
No error recovery guidance. If a destination is not found, or a hotel product_id is invalid, or the scrape times out, the tool description does not explain what the LLM should do next (e.g., 'Try a broader destination name' or 'Verify the product_id from search results').
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | <=2025-11-25 | v2 |
Parameter 'ignoreRobotsText' in cuddlynest_listing_details lacks context. Description does not explain why an LLM would set this to true, what robots.txt violations mean, or when this is necessary. Undocumented parameter relationships increase misuse risk.
No pagination or result-limiting guidance. cuddlynest_search returns 'top-matches scale (~10-60)' but does not document whether results are paginated, how to request more, or what happens if the user wants all hotels in a city. Large result sets risk context window exhaustion.