Staylist World
Server Details
Staylist World is a hotel comparison service your AI assistant can call directly. The free MCP server (https://staylist.world/mcp, Streamable HTTP, no auth) covers 80,000+ hotels with ratings, review summaries, published policies and booking links. No API key, no sign-up.
Tools: search_hotels by city, name or need; get_hotel for overviews, amenities and published policies; get_booking_link; list_destinations; and get_reviews. There is also a REST API and Markdown versions of hotel pages. Unknown facts are marked as unknown.
New: get_reviews returns a hotel's 1–2 star guest reviews from the last 24 months with the count out of all reviews; or paste staylist.world/reviews?hotel= into any assistant.
- Status
- Healthy
- Uptime
- 97.6% over 31 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool has a distinct primary purpose: search, hotel details, reviews, booking links, and destination listing. There is some minor overlap because get_hotel and get_reviews also return booking links, but the tools are still clearly separable by intent.
All tool names use a consistent snake_case verb_noun pattern: get_booking_link, get_hotel, get_reviews, list_destinations, search_hotels. The verbs are predictable and readable.
Five tools are well-scoped for a hotel discovery and booking-link assistant. Each tool covers a distinct step in the user journey without excessive surface area.
The tool set covers the core workflow: find destinations, search hotels, inspect one hotel, read reviews, and retrieve approved booking links. Booking itself is intentionally out of scope and clearly delegated to partner sites.
Available Tools
5 toolsget_booking_linkGet hotel booking linksARead-onlyIdempotentInspect
Return the approved booking links for a hotel (the same links shown to people on staylist.world) plus the Staylist hotel page. Property links open the exact hotel on Trip.com or Klook, where the traveler picks dates and room; preserve these URLs unchanged. Dated offer links, when present, are sorted by total price. The traveler completes checkout on the booking site; this tool cannot book or charge anyone. Staylist may earn a commission when someone books through these links, at no extra cost to the traveler; it never changes scores or order.
| Name | Required | Description | Default |
|---|---|---|---|
| adults | No | ||
| checkin | No | Calendar date in YYYY-MM-DD format; provide both dates or neither | |
| checkout | No | Calendar date in YYYY-MM-DD format; provide both dates or neither | |
| hotel_id | Yes | Exact hotel id returned by search_hotels | |
| children_ages | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered; the description still adds real value beyond that: it cannot book or charge, checkout happens on the third party site, dated offers are price-sorted, URLs must be preserved unchanged, and a commission may apply without affecting scores or ordering. It stops short of covering rate limits, auth, or freshness of links.
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-loaded with the return content, then constraints and disclosures, with no filler sentences. Slightly long at four sentences, but each one carries distinct information an agent needs (URL handling, sorting, no booking, commission).
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 carries the return-value burden and does so well: it enumerates the link types returned (property links to Trip.com/Klook, dated offer links sorted by total price, Staylist page). Combined with the annotations covering safety, nothing essential for correct invocation is missing.
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 60%, and the description only indirectly maps parameters to behavior via 'Dated offer links, when present,' hinting that checkin/checkout select dated offers. It adds nothing about adults or children_ages semantics, so it neither compensates for the uncovered parameters nor goes meaningfully 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 and resource ('Return the approved booking links for a hotel') and clarifies the exact scope by equating it with what is shown publicly on staylist.world plus the Staylist hotel page. This distinguishes it cleanly from get_hotel (hotel details), search_hotels, and list_destinations without the agent opening any 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?
Usage is implied rather than stated: the agent can infer you call this when a traveler wants to book, and the description draws a useful boundary ('this tool cannot book or charge anyone'). However, it never names an alternative sibling or explains when to prefer get_booking_link over get_hotel, and no prerequisite sequence (e.g. after search_hotels) is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hotelHotel details and AI overviewARead-onlyIdempotentInspect
Hotel details: address, star class, amenities, Staylist's AI overview (a written summary with pros, cons and who the hotel suits, where one exists), how the hotel compares with others in its city, check-in/out times, child policy, the hotel's own published policies (including whether it accepts guests from all countries, which matters for foreigners in mainland China), nearest airport/station, and booking links. No photos: people see those on the booking page; for live-provider hotels also booking-site offers for the requested dates and guests (total, room, cancellation, conditions). refundable=null means unknown. Prices are not guaranteed. Preserve dates and occupancy from the search.
| Name | Required | Description | Default |
|---|---|---|---|
| adults | No | ||
| checkin | No | Calendar date in YYYY-MM-DD format; provide both dates or neither | |
| checkout | No | Calendar date in YYYY-MM-DD format; provide both dates or neither | |
| hotel_id | Yes | Exact hotel id returned by search_hotels | |
| children_ages | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations covering the read-only/idempotent safety profile, the description adds real semantic context beyond them: refundable=null means unknown, prices are not guaranteed, the AI overview exists only "where one exists," and hotel policies reveal whether guests from all countries are accepted. It doesn't cover auth or rate limits, so it stops short of 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?
Purpose is front-loaded and almost every clause earns its place because no output schema exists, so the return-field inventory is genuinely useful. It is nonetheless one long run-on sentence with stacked parentheticals that could be more scannable.
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 tool with no output schema, the description does the heavy lifting: it lists returned fields, explains the photos omission, the AI-overview conditionality, null semantics, and price caveats. Only pagination/response-shape mechanics are unaddressed, a minor gap.
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 60%, and the description compensates by explaining that dates/guests drive live-provider booking offers and that dates and occupancy must be carried over from the search, giving operational meaning to checkin/checkout/adults/children_ages. hotel_id is left to the schema, which already documents it.
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 names a specific verb and resource ("Hotel details") and enumerates the concrete fields returned, so an agent knows exactly what this retrieves. It implicitly distinguishes itself from search_hotels by referencing "from the search," but never names siblings explicitly, keeping it at 4 rather than 5.
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?
Guidance is implied rather than stated: "Preserve dates and occupancy from the search" tells the agent to reuse search parameters, and "No photos: people see those on the booking page" redirects one need. However, it never states when to call this versus get_booking_link or search_hotels, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reviewsRead guest reviews, including the bad onesARead-onlyIdempotentInspect
Guest reviews for one hotel from the last 24 months (up to 1,000, newest first), via Staylist's booking partner LiteAPI (Nuitée booking guests and Tripadvisor). Returns how many were 1–2 star (a score of 4 or less out of 10) and the texts of those bad reviews, so the traveler can see what went wrong for other guests before booking; with only_bad=false also the most recent reviews of any score. Quote or summarise faithfully, say how many reviews the count is out of, and do not present a few bad reviews as typical when they are a small share. Reviewer names are not included. available=false means no reviews from this source; nearby_with_reviews then lists close hotels (ids, km) whose reviews can be read instead. Also returns staylist_page (the hotel's page, where the reviews open) and booking_links (the same links as get_booking_link).
| Name | Required | Description | Default |
|---|---|---|---|
| hotel_id | Yes | Exact hotel id returned by search_hotels | |
| only_bad | No | Default true: only the 1–2 star reviews |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantially more: a 1,000 cap, newest-first ordering, the 24-month window, the bad-review threshold (score of 4 or less out of 10), absence of reviewer names, and the meaning of available=false. It also discloses the output contract (staylist_page, booking_links) and the counting semantics the agent must preserve.
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-loaded with purpose and scope, then behavior, then output contract - every clause carries information. The downside is that it is one dense run-on paragraph mixing retrieval facts, output shape, and editorial instructions (quote faithfully, report the denominator), which makes it harder to scan than a structured form would be.
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 carries the return-value burden and does so: review counts, bad-review texts, staylist_page, booking_links, and nearby_with_reviews when available=false. Combined with the annotations, an agent has everything needed to call it and interpret the result.
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 both parameters are already documented; the description still adds meaning by defining 'bad' numerically (1–2 star / score of 4 or less out of 10) and clarifying that only_bad=false returns the most recent reviews of any score. The hotel_id linkage to search_hotels is only in the schema, not the description.
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+resource ('Guest reviews for one hotel') with explicit scope: last 24 months, up to 1,000, newest first, sourced via LiteAPI. It also names its companions (get_booking_link, search_hotels for the id), so the agent can place it among siblings without opening schemas.
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?
Usage is clearly framed ('so the traveler can see what went wrong... before booking'), the default of only_bad=true is stated with the with-only_bad=false alternative spelled out, and the available=false path routes to nearby_with_reviews. It lacks an explicit statement of when NOT to call this versus a sibling (e.g., when no hotel_id is known yet), so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_destinationsBrowse popular destinationsARead-onlyIdempotentInspect
Popular starting points with country codes. Optional; this list does not restrict which destinations can be searched. No provider search quota is used with the live provider.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavior not in annotations: it consumes no provider search quota and reflects the live provider, which matters for call budgeting.
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 short sentences, no filler, and the key constraint (the list does not restrict searches) is placed early. Slightly fragmentary opening but appropriately sized for a trivial tool.
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 no-parameter, no-output-schema listing tool with strong annotations, the description covers what it returns, that it is optional, and its quota behavior. Only the return shape/size is unspecified, which is a minor gap given no output schema exists.
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?
Zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. No param claims are made that could mislead.
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 conveys that this returns a set of popular destinations with country codes, but 'Popular starting points' is loose phrasing that never states the action (listing/browsing) plainly. It is distinguishable from sibling search/get tools by resource, though no sibling is named.
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?
It clarifies that the list is optional and does not restrict which destinations can be searched, which is real routing guidance for an agent deciding whether it must call this first. It never states a positive condition for when to call it, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_hotelsSearch hotelsARead-onlyIdempotentInspect
Use when the user wants hotel recommendations or wants hotels compared. Returns up to 20 hotels compared on the same criteria, each with area, nearest station, amenities and price where known; empty fields mean unknown, not bad. shortlist_url is a page you can share with the user comparing the top results side by side. Find hotels by city, name or preferences (query words also match amenities, e.g. "pool", "breakfast"). Cities in Staylist's catalogue return hotels that each have an approved partner booking link (Trip.com, Klook), with a score (Staylist AI score, or the Trip.com guest rating where there is none; see sample_estimate.score_source), star class, amenities, check-in/out times and nearby transport where collected, pros and cons, and a sample_estimate (a previously observed nightly price, not a quote for the dates). Other cities use a live provider with indicative prices for an explicit stay. Supply both dates or neither. One room, 1–8 adults and up to 6 children. Use get_booking_link for the traveler's link. Never send names, email addresses or payment details.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| limit | No | ||
| query | No | ||
| stars | No | ||
| adults | No | ||
| checkin | No | Calendar date in YYYY-MM-DD format; provide both dates or neither | |
| checkout | No | Calendar date in YYYY-MM-DD format; provide both dates or neither | |
| min_rating | No | ||
| country_code | No | ||
| children_ages | No | ||
| max_price_per_night | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this read-only/idempotent/non-destructive, but the description adds substantial behavior beyond them: result cap (up to 20), that empty fields mean unknown rather than bad, that shortlist_url is a shareable comparison page, that catalogue vs non-catalogue cities use different backends, and that sample_estimate is a previously observed price rather than a quote. It also states the privacy constraint 'Never send names, email addresses or payment details'.
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?
The usage rule is front-loaded, and most sentences carry distinct, non-redundant information (return shape, backend differences, sample_estimate caveat, privacy rule). It is dense and long, however, and runs several topics together without clear segmentation, which slightly reduces scannability.
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 an 11-parameter open-world search with no output schema, the description explains the key returned fields (area, station, amenities, price, score, sample_estimate, shortlist_url) and the two backend behaviors, which is strong. It stops short of covering a few filters (min_rating, max_price_per_night, country_code, stars), leaving those to inference.
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?
With only 18% schema coverage, the description carries much of the semantic burden: it clarifies that query words match amenities, that dates must be supplied together or not at all, the occupancy limits (1-8 adults, up to 6 children, one room), and the limit cap of 20. It does not explain min_rating, stars, max_price_per_night or country_code semantics, so it compensates partially rather than fully.
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 gives a specific verb+resource ('Find hotels by city, name or preferences') and clearly frames the tool as recommendations/comparison. It distinguishes itself from siblings by routing the traveler's link to get_booking_link and implying get_hotel handles a single hotel. An agent can identify the tool's role without opening the 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?
It explicitly states when to use it ('when the user wants hotel recommendations or wants hotels compared') and names the alternative for a different need ('Use get_booking_link for the traveler's link'). It also gives the precondition 'Supply both dates or neither', but offers no explicit when-not guidance, keeping it short of a 5.
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.
1 tool update
- Added
get_reviews
4 tool updates
- First observed
get_booking_link - First observed
get_hotel - First observed
list_destinations - First observed
search_hotels
Related MCP Connectors
Your agent needs what customers say in public — Google Business profiles and reviews, Trustpilot, Tripadvisor, hotel listings and the Q&A under a listing. **What you can ask for** • "Pull this business's Google reviews and group the complaints." • "What do Trustpilot reviewers say about this competitor?" • "Find hotels matching this search and their live prices." • "What questions are people asking on this Google listing, and are they answered?" • "Search listings for this category in this city." **How to use it** Point any MCP client at https://mcp.aisa.one/seo-business/mcp and sign in with OAuth — there is no key to create or paste. 22 tools: Google Business info, reviews, extended reviews, updates and Q&A; Trustpilot and Tripadvisor search and reviews; Google hotel info and searches; business listing search; plus Reddit and Pinterest signals for a business. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Read the reviews here, then ask the same agent what that business ranks for or who links to it — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/seo/mcp for all of it at once — rankings, keywords, backlinks, site health and AI-answer visibility across DataForSEO, Semrush and Ahrefs.
Hotel booking MCP server. Search, book, and manage reservations across 250K+ properties worldwide.
Your agent needs live data — a competitor's traffic, who to contact there, what people are saying, what Google and ChatGPT answer about you, a company's filings. Normally that is six vendor accounts, six sets of keys and six SDKs. This is one URL. **What you can ask for** • "How much traffic does stripe.com get, where does it come from, and who competes for the same keywords?" • "Find 20 Series-B fintech companies in Germany and the heads of marketing there, with emails." • "Does ChatGPT mention our brand when someone asks for the best CRM — and what does it cite?" • "What is X saying about $NVDA today, and what did the stock actually do?" • "Search the web for this, then scrape the three best pages into markdown." **How to use it** Point any MCP client at https://mcp.aisa.one/mcp and sign in with OAuth — there is no key to create or paste. Then just ask: the agent calls search to find the right operation and use to run it. **Why this rather than the source** 26 sources behind one account and one bill — DataForSEO, Semrush, Ahrefs, Similarweb, Apollo, X/Twitter, Instagram, Reddit, Pinterest, YouTube, Tavily, Exa, Perplexity, Firecrawl, CoinGecko, Kalshi, Polymarket, AgentMail and more, 580+ operations. tools/list returns five tools, not 580, so the introduction does not eat your context window. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** One slice at a time: https://mcp.aisa.one/seo/mcp · /finance/mcp · /social/mcp · /search/mcp · /sales/mcp · /mail/mcp · /gtm/mcp, or a single provider like /twitter-api/mcp. Same account, fewer tools listed, and search still reaches everything. Full list at https://mcp.aisa.one/servers
Your agent needs the open web — searched by more than one engine, and read as clean markdown rather than raw HTML. **What you can ask for** • "Search this question with two providers and tell me where they disagree." • "Scrape these 40 URLs into markdown, in one batch." • "Crawl this documentation site and give me every page." • "Do deep research on this topic and cite the sources." • "Find the academic papers behind this claim." **How to use it** Point any MCP client at https://mcp.aisa.one/search/mcp and sign in with OAuth — there is no key to create or paste. 30 tools across several independent providers: Tavily and Exa search, answers, contents and agent runs; Firecrawl scrape, batch scrape, crawl, map and search; Perplexity Sonar, Sonar Pro, reasoning and deep research; Oxylabs AI search and LLM jobs; OpenAI and Anthropic web search; and scholarly search. **Why this rather than the source** Several independent indexes behind one account, because one engine's blind spot is not visible from inside it. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Find the page here, then ask the same agent who links to it or how much traffic it gets — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/seo-serp/mcp for the Google results page itself, https://mcp.aisa.one/seo-serp-other-engines/mcp for Bing, Baidu and Naver.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA hosted remote MCP server that gives AI agents live hotel, Airbnb/Vrbo and flight pricing tools — nightly rate calendars up to 330 nights, every booking site's price for a stay compared against the hotel's own site, guest reviews, and Google Flights search. Clients connect over Streamable HTTP with browser OAuth or an API key, so nothing needs to be installed or run locally.MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for searching stays, comparing prices across Booking.com, Airbnb, Vrbo, and Google Hotels, and fetching reviews via natural language in AI assistants.MIT
- FlicenseAqualityCmaintenanceHotel booking MCP server — the first transaction-complete hotel booking integration for AI agents. Search 300K+ properties in 140+ countries, get live rates and room details, and generate secure checkout URLs. No payment in the AI conversation — guests complete booking at a hosted checkout page and receive a real hotel confirmation number. Set your own booking fee via Stripe Connect.820 npm3-
- AlicenseAqualityCmaintenanceGoogle Hotels MCP server via direct RPC — no scraping, no browser automation. Three tools: hotel list search (16 filter slots: stars, price, amenities, brands, free cancellation), per-OTA rate plans and cancellation policies for a single hotel, and parallel top-N enrichment. One-command setup for Claude Code, Codex, and ChatGPT377 PyPI14MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.