Skip to main content
Glama

Server Details

Free hotel comparison for AI assistants: 77k hotels on the same criteria, with reasons. No key.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
96.1% over 20 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
begcdn/staylist-mcp
GitHub Stars
0

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation4/5

Most tools have clearly distinct purposes (search vs details vs reviews vs destinations), but get_hotel and get_booking_link overlap because get_hotel also returns booking links, which could cause occasional misselection.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern: search_hotels, get_hotel, get_reviews, get_booking_link, list_destinations. No mixing of conventions.

Tool Count5/5

Five tools is well-scoped for this read-only hotel information domain. Each tool serves a distinct step in the user journey (discover, details, reviews, booking links, destination inspiration).

Completeness4/5

The surface covers search, hotel details, reviews, booking links, and destinations, which is complete for most workflows. However, catalogue hotels lack real-time date-specific pricing (only sample estimates), which could be a minor gap for users comparing prices.

Available Tools

5 tools
get_hotelHotel details and AI overviewA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
adultsNo
checkinNoCalendar date in YYYY-MM-DD format; provide both dates or neither
checkoutNoCalendar date in YYYY-MM-DD format; provide both dates or neither
hotel_idYesExact hotel id returned by search_hotels
children_agesNo

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 onesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hotel_idYesExact hotel id returned by search_hotels
only_badNoDefault true: only the 1–2 star reviews

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/idempotent annotations: it discloses the 24-month window, the 1,000 cap, sort order, the upstream providers, the privacy limit (reviewer names are not included), and the failure mode (available=false means no reviews from this source). It also instructs on faithful quoting and not over-representing a small bad-review share.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense paragraph that front-loads scope and sources before the output/handling guidance. Nearly every clause carries information, though the sentence grows long with several nested clauses that could be split for faster scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the full burden and does so: it explains what is returned (count of 1-2 star reviews plus their texts, or recent reviews of any score), the ordering, the empty-result signal, and the fallback field. Nothing an agent needs to call and interpret this tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 adds real meaning: only_bad=true restricts to 1-2 star reviews (explicitly defined as a score of 4 or less out of 10), while only_bad=false also returns the most recent reviews of any score. That expands the schema's one-line gloss on the flag.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (guest reviews for one hotel) and pins down scope precisely: last 24 months, up to 1,000, newest first. It also names its data sources (Staylist via LiteAPI – Nuitée booking guests and Tripadvisor), which separates it cleanly from siblings like get_hotel or search_hotels.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for use ('so the traveler can see what went wrong for other guests before booking') and points to an alternative path when this source is empty (nearby_with_reviews lists close hotels whose reviews can be read instead). It does not state explicit exclusions versus siblings such as get_hotel, so it falls just short of 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 destinationsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose3/5

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.

Usage Guidelines3/5

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 hotelsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
limitNo
queryNo
starsNo
adultsNo
checkinNoCalendar date in YYYY-MM-DD format; provide both dates or neither
checkoutNoCalendar date in YYYY-MM-DD format; provide both dates or neither
min_ratingNo
country_codeNo
children_agesNo
max_price_per_nightNo

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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. 1 tool update
    • Addedget_reviews
  2. 4 tool updates
    • First observedget_booking_link
    • First observedget_hotel
    • First observedlist_destinations
    • First observedsearch_hotels

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Google 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 ChatGPT
    3
    79 PyPI
    14
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to search, compare, and book hotels with real-time pricing and availability, supporting multiple location types, star ratings, and price filters.
    12
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to search, browse, and book hotels from a database of 2 million properties worldwide. Provides comprehensive hotel search capabilities with location lookup, filtering by amenities, detailed property information, and integrated booking functionality.
    6
    17 npm
    1
    ISC
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.