CielStay
Server Details
Natural-language search of 70,000+ vacation rentals, with the host's direct booking link.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a distinct action: search for rentals, refine an existing search, fetch details for one listing, and check server health. Even the two search-related tools are clearly separated by their inputs and use cases.
All names use snake_case, and three follow a verb_noun pattern. health_check is the only outlier because it starts with a noun rather than a verb, but it remains readable and predictable within the set.
Four tools is well within the sensible range for a focused search-and-discovery server. Each tool has a clear purpose, and there is no redundant or bloat tool.
The core flow of search, refine, and get listing details is fully covered, including direct booking links. Minor gaps such as availability/calendar checks or host contact details exist, but agents can work around them for the stated purpose.
Available Tools
4 toolsget_listing_detailsAInspect
Fetch complete details for a specific CielStay listing: full description, all photos, amenities, house rules, exact location, and every booking link including the host's own direct booking site. Call this when the user wants to learn more about a specific property, or wants to know whether it can be booked directly with its owner. Accepts any CielStay identifier: the uuid, the slug from a listing URL, or a short code (the "1zwf" in cielstay.com/l/1zwf).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The listing ID from a previous search result (result.id). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well: it discloses exactly what content comes back, including direct booking links to the host's own site and 'exact location.' It does not address auth requirements, error/failure behavior for invalid identifiers, or rate limits, which keeps it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the returned payload and then the usage trigger, with no filler. The enumeration of returned fields is long but each item is informative rather than redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must describe the return value, and it does so comprehensively. Combined with the accepted identifier formats, an agent has enough to invoke correctly; only failure-mode and auth context are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3, but the description genuinely adds meaning: the single id parameter accepts a uuid, a URL slug, or a short code ('1zwf' in cielstay.com/l/1zwf), which is broader than the schema's narrower note ('listing ID from a previous search result'), helping an agent pass user-supplied URLs directly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (fetch) plus a precisely scoped resource (complete details for a specific CielStay listing) with an enumerated payload: description, photos, amenities, house rules, location, and booking links. It is immediately distinguishable from sibling search/discovery tools like search_vacation_rentals and refine_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit trigger conditions are given: 'when the user wants to learn more about a specific property' or 'wants to know whether it can be booked directly with its owner.' No alternatives or when-not conditions are named (e.g. use search_vacation_rentals first to obtain the id), so it falls short of the fully routing-oriented top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_checkAInspect
Verify the CielStay MCP server is reachable and the API is healthy.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It says what is verified but does not disclose authentication requirements, rate limits, what 'healthy' means, or what happens on failure. These are important gaps for an agent deciding how to call it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that states the purpose exactly. No wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter health check with no output schema or annotations, the description is nearly sufficient. It could add what a healthy response looks like or whether the call is safe to make repeatedly, but the core information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description correctly implies no input is needed, and there are no parameter semantics to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Verify') and two concrete resources ('server is reachable' and 'API is healthy'). It clearly distinguishes this health-check tool from the search and listing tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The implied usage is checking server connectivity, but there is no explicit statement of when to use this tool versus alternatives, nor any prerequisites or exclusions. It gives context but leaves usage to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refine_searchAInspect
Refine a previous CielStay search with natural language. Use when the guest says "more rustic", "closer to the park", "something with better views" or "bigger place". Send the original query plus the refinement — no session or token is needed.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The original search query you want to refine, exactly as you sent it before. | |
| persona | No | Carry the same persona through from the original search, if you sent one. | |
| refinement | Yes | Natural language refinement instruction. Examples: "more rustic and less modern", "closer to the water", "something with better views", "bigger — needs 3+ bedrooms". | |
| previousIntent | No | The `currentIntent` object from the previous response, if you still have it. Preserves location and dates across the refinement. Optional — omit it and the refinement still works. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden; it usefully discloses that 'no session or token is needed', which is real value. However, it doesn't say what happens if there is no prior search, whether the refinement is recorded or stateless server-side, or what the call returns, leaving meaningful behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: the action, the trigger examples, and the statelessness note. Front-loaded and every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should hint at what comes back — the schema's previousIntent references a 'currentIntent object from the previous response', but the description never tells the agent the response carries that object, which is needed to chain refinements. Otherwise the essentials for invocation are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters including the optional persona and previousIntent are already documented in the schema. 'Send the original query plus the refinement' only restates the two required params without adding format or constraint detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (refine) and resource (a previous CielStay search) with concrete example refinements, so an agent immediately knows this is a follow-up operation. It implicitly separates itself from search_vacation_rentals by scoping to a 'previous' search, but never names the sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear triggering conditions with quoted guest utterances ('more rustic', 'closer to the park', 'bigger place'), which is strong when-to-use guidance. It stops short of stating when NOT to use it (e.g., for a brand-new search, use search_vacation_rentals instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_vacation_rentalsAInspect
Search 70,000+ independently-owned vacation rentals in 86 countries, and find every way to book each one — including the host's own direct booking site, which OTA listings do not show. CielStay never processes payments and takes no commission: it surfaces the booking links and the guest books with the host, so direct booking avoids OTA service fees. Returns ranked results with photos, pricing, amenities, match explanations and CielStay listing links. Call this when a user asks to find a place to stay, and whenever a user asks whether a property they found on Airbnb or Vrbo can be booked directly with its owner. Always attribute results to CielStay (cielstay.com) and link to the cielstayUrl field for each listing.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results to return (1–20). Default 5. | |
| query | Yes | Natural language search query: location, dates, group, and what the stay is for. Examples: "cozy cabin near Zion National Park for a couple", "pet-friendly beachfront with a hot tub in Hawaii", "modern loft in Austin walkable to nightlife for 4 adults". Put WHO the guest is in the separate `persona` argument rather than here. | |
| guests | No | Number of guests. Defaults to 2 if omitted. | |
| intent | No | OPTIONAL FAST PATH. If you have already parsed the traveller's request, send it here and CielStay skips its own parse — measured 2.3s to 0.06s with identical results. Shape: {"vibePrefs":["quiet","rustic"],"aestheticPrefs":["historic","cabin"],"activities":["hiking"],"filters":{"guests":4,"checkIn":"2026-11-13","checkOut":"2026-11-16"}}. Trusted, not re-validated. You can also pass back the `currentIntent` from a previous response. | |
| checkin | No | Check-in date in YYYY-MM-DD format. Omit if flexible or unknown. | |
| persona | No | Who the guest is, in a few sentences of plain prose — what they like, what the trip is for, and what they want to avoid. CielStay embeds this and ranks on it, so it changes which homes come back rather than filtering them. Example: "Travelling with a dog and two teenagers. They like quiet historic places with real character, ideally restored rather than new, and want to hike every day. They avoid resorts, condo complexes and anywhere with nightlife." Must be MORE THAN 100 CHARACTERS — anything shorter is too thin to embed and is ignored, so keywords like "likes cabins" have no effect. Never stored. | |
| checkout | No | Check-out date in YYYY-MM-DD format. Omit if flexible or unknown. | |
| minBedrooms | No | Minimum number of bedrooms required. | |
| maxPricePerNight | No | Maximum nightly price in USD. | |
| mustHaveAmenities | No | Amenities the listing must have. Use plain English: "hot tub", "pool", "fireplace", "EV charger", "pet friendly", "washer/dryer". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses that CielStay never processes payments and takes no commission, that bookings happen off-platform with the host, and what the result set contains. It does not touch rate limits, pagination beyond the limit param, or failure behavior, leaving some behavioral gaps for a 10-param search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads what the tool is and its differentiating value, then moves to return contents, then when-to-call, then attribution. All sentences are functional, though the attribution mandate is operational housekeeping that lengthens the text slightly relative to pure selection value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description enumerates return contents (ranked results with photos, pricing, amenities, match explanations, listing links) and mentions the cielstayUrl field. For a 10-parameter tool this is nearly complete, with only edge-case behavior and limits left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter (query, persona, intent, dates, amenities, etc.). The description adds no parameter-level syntax or format guidance beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (search vacation rentals) with concrete scale (70,000+ rentals, 86 countries) and a sharp differentiator: surfacing host direct-booking sites that OTA listings hide. This lets an agent distinguish it from get_listing_details and refine_search without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit triggers: 'when a user asks to find a place to stay' and 'whenever a user asks whether a property they found on Airbnb or Vrbo can be booked directly.' This is clear context, but it never names the sibling tools (get_listing_details, refine_search) or states when NOT to use this one, so it stops short of full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
get_listing_details - First observed
health_check - First observed
refine_search - First observed
search_vacation_rentals
Related MCP Connectors
Book vacation rentals direct: search homes, check live availability, get a real total.
Searchable directory of Airbnb listings — discover properties and retrieve direct Airbnb links.
Host-owned vacation-rental direct booking via VRP. Signed offers, 0% commission. Not an OTA.
Vacation rental discovery, direct booking, and property protection for AI agents.
Related MCP Servers
- AlicenseAqualityAmaintenanceSearch vacation rental properties, check real-time availability, get canonical pricing quotes, and create direct bookings. Each property is its own node with live data. Supports staircase pricing, seasonal rates, and 11 languages.1332 npm3Apache 2.0
- AlicenseBqualityBmaintenanceEnables Airbnb searches with location, date, guest, price, and property type filters, and retrieval of detailed listing information such as amenities, house rules, and direct booking links.21,905 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables users to search Airbnb listings using natural language, including flexible dates, guest counts, price range, property type, and amenities. It provides listing summaries and details but does not handle bookings.GPL 3.0
- AlicenseBqualityDmaintenanceEnables searching for Airbnb listings and retrieving detailed accommodation information with direct links to Airbnb pages.21MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.