RoomExpert
Server Details
Hotel verdicts for travelers who pay with points or cash: each hotel scored on eight axes from reviews, editorial, video and podcasts, with every quote cited to its outlet and url. Search hotels, read the evidence, find award stays, and quote live rates.
The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 98.3% over 20 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 5 tools
Each tool serves a distinct purpose: searching hotels, getting a verdict, retrieving evidence quotes, finding award stays, and fetching live rates. There is minor overlap between get_hotel (verdict/scores) and get_evidence (supporting quotes), but the descriptions clearly separate the two, making selection straightforward.
Mostly consistent verb_noun pattern (find_award_stays, get_evidence, get_hotel, get_rates, search_hotels). The verb variation ('find' vs 'search' vs 'get') is semantically appropriate and readable, with no jarring inconsistencies like camelCase mixing.
Five tools provide a well-scoped set that covers the key workflows for a hotel points/award research tool: search, evaluate, substantiate, price awards, and check live rates. None appear redundant; each earns its place.
The surface covers discovery (search_hotels), evaluation (get_hotel, get_evidence), award pricing (find_award_stays), and live booking (get_rates). A minor gap is the absence of any user-specific state or itinerary saving, but the tool explicitly notes it does not store balances or reservations, which is by design.
Available Tools
5 toolsfind_award_staysFind award staysARead-onlyIdempotentInspect
Lists hotels a given points balance can reach for one night, ranked by how good the redemption is against that program's own norm rather than a flat cents-per-point scale. Fits a traveler who says what they hold, e.g. "I have 300k Hyatt points". The balance is supplied by the caller and is not stored. Only published chart or sampled award prices count; nothing is estimated. Returns a Markdown table of up to limit hotels (name, destination, points, value grade, score), or a sentence saying nothing priced fits the budget.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Default 10, max 25. | |
| points | Yes | Points available for one night. | |
| program | Yes | Loyalty program, e.g. "World of Hyatt", "Hilton Honors", "Marriott Bonvoy". | |
| destination | No | Optional city slug, e.g. "tokyo". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/no-open-world annotations, the description discloses that only published chart or sampled award prices count with nothing estimated, that the caller's balance is not persisted, and the exact return shape (Markdown table or a no-fit sentence). This is meaningful behavioral context an agent cannot get from the annotations.
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 what the tool does and its ranking logic, then supporting constraints and return format. Mostly tight, though the 'Fits a traveler who...' framing is slightly discursive for a tool definition.
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?
With no output schema, the description fully covers the return value, the ranking rationale, the price-sourcing constraint, and the caller-supplied balance, so an agent knows exactly what to expect and can call it correctly.
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. The description adds semantics beyond the schema by clarifying that `points` is caller-supplied and not stored, that the balance drives feasibility for one night, and that output is capped at `limit` hotels.
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 (lists hotels reachable with a points balance for one night) and states the distinctive ranking method (against the program's own norm rather than flat cents-per-point), which separates it from generic siblings like search_hotels and get_rates.
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 gives a concrete usage context: the traveler who states a holdings balance, e.g. 'I have 300k Hyatt points', and notes the balance is caller-supplied and not stored. It does not name alternatives (e.g. get_rates or search_hotels) or state when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_evidenceGet cited evidenceARead-onlyIdempotentInspect
Returns the cited quotes behind a hotel's scores. Each one carries the outlet that published it, what kind of document it was, and its url. Answers what a hotel is actually like: whether it is quiet, whether the beds are good, whether service holds up. Returns a Markdown list of up to limit quotes (default 12, max 40), spread across the axes unless narrowed to one, each with its outlet, document kind and url. Some hosts are returned as "a guest review" with no name or link. An unknown slug returns near matches; no evidence on an axis is stated as such.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The hotel slug. | |
| limit | No | Quotes to return. Default 12, max 40. | |
| category | No | Narrow to one axis. Omit for a spread across all of them, which is the right default for an open question. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations (readOnly, idempotent, non-destructive, closed world): the Markdown-list return shape, the spread-vs-narrowed behavior across axes, the edge case of unnamed 'a guest review' hosts with no link, near-match behavior on an unknown slug, and the explicit 'no evidence on an axis' case. These are exactly the non-obvious traits an agent needs.
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 the core purpose and then layers return format and edge cases efficiently. Some repetition of the schema's limit default/max costs it a point, but no sentence is purely 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?
With no output schema, the description carries the return-value burden and does so fully: format (Markdown list), per-item fields (quote, outlet, document kind, url), sizing (limit), and the degraded cases (unnamed hosts, unknown slug, empty axis). Nothing needed to call it correctly 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 100%, so the schema already documents all three parameters, including limit defaults and the category enum. The description largely restates these (default 12, max 40, spread when omitted) and only marginally enriches the category choice, making the baseline 3 appropriate.
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: it returns the cited quotes behind a hotel's scores, including outlet, document kind, and url. This is clearly distinct from siblings like get_hotel (scores themselves), get_rates, and search_hotels, so an agent can route 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?
Gives concrete use context ('Answers what a hotel is actually like: whether it is quiet, whether the beds are good, whether service holds up') and explicitly says to omit `category` for an open question. It never names an alternative sibling or states when not to use it, 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.
get_hotelGet hotel verdictARead-onlyIdempotentInspect
Returns the RoomExpert verdict for one hotel: overall score, the eight axis scores and what each is based on, how deep the coverage is, the loyalty program, and the award price where a real one exists. Answers "is this hotel any good" and "what is it strong at". Returns Markdown: a score table with one row per axis ("no evidence" where an axis has none), the award line, and the hotel page url. An unknown slug returns up to five near matches. The quotes behind the scores come from get_evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The hotel slug, e.g. "andaz-maui-at-wailea-resort". Lowercase, hyphenated. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description still adds real behavioral detail: the exact Markdown return shape, the 'no evidence' placeholder for empty axes, and the unknown-slug fallback returning up to five near matches. The degradation path on bad input is the kind of thing an agent cannot infer from the schema.
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 return contents, then the failure mode. The second sentence is dense with comma-separated clauses but every clause conveys distinct information; minor padding in 'where a real one exists' and the trailing get_evidence sentence keeps it from a 5.
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?
Although there is no output schema, the description substitutes for it by specifying the Markdown structure, the table rows, the award line, and the URL. Combined with the input fallback behavior, an agent has everything needed to call and read 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% and the single slug parameter is fully documented with format and an example, so the schema does the heavy lifting. The description only adds the behavioral consequence of a bad slug (near matches), which is useful but not parameter-level syntax guidance. Baseline 3 is appropriate.
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 ('Returns the RoomExpert verdict for one hotel') and enumerates exactly what the verdict contains: overall score, eight axis scores and their basis, coverage depth, loyalty program, award price. It is clearly distinguishable from siblings like search_hotels and get_evidence within one sentence.
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?
Frames the use case in the agent's own terms ('Answers "is this hotel any good" and "what is it strong at"') and routes the supporting detail to get_evidence. It does not explicitly state when to prefer search_hotels or get_rates instead, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ratesGet live ratesARead-onlyInspect
Returns live rooms and prices for one hotel and a stay window, with a booking link for each. It queries a metered rate supplier and is limited to 12 calls a minute per client, so it fits a traveler who has chosen a hotel rather than browsing several. Booking links are time-limited and expire within minutes. A link opens a checkout the traveler completes with their own details and card; this tool does not reserve, hold or confirm a room. Returns a Markdown table (room, nightly, total, refundability, link). Hotels the supplier does not carry, sold-out dates and bad dates each return a plain sentence saying which; an over-limit call says how many seconds to wait.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The hotel slug. | |
| adults | No | Default 2. | |
| checkin | Yes | YYYY-MM-DD. | |
| checkout | Yes | YYYY-MM-DD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavior beyond the readOnly/openWorld annotations: metered supplier quota with an exact per-minute limit, time-limited booking links that expire in minutes, and an explicit statement that it does not reserve, hold or confirm a room despite handing back checkout links. It even documents per-failure-mode responses (unsupported hotel, sold out, bad dates, over-limit with seconds-to-wait), which no annotation covers.
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 the core purpose in the first sentence and sequences the operational caveats (rate limit, expiry, no reservation) afterward. It is longer than most definitions, but nearly every clause carries decision-relevant information; only the phrasing is slightly dense, not padded.
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?
With no output schema and no annotation detail on returns, the description compensates fully: it specifies the Markdown table columns (room, nightly, total, refundability, link) and describes failure outputs as plain sentences. 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 description coverage is 100%, so slug, checkin, checkout and adults are already documented in the schema including the YYYY-MM-DD format and adults default of 2. The description confirms the 'one hotel and a stay window' shape but adds no syntax or format meaning beyond that, so the 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 and resource ('Returns live rooms and prices for one hotel and a stay window') and the ancillary deliverable ('a booking link for each'). It also scopes itself against browsing siblings via 'fits a traveler who has chosen a hotel rather than browsing several', so an agent can place it relative to search_hotels without opening a 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 a clear selection condition (single chosen hotel, not multi-hotel browsing) and discloses the throughput constraint (12 calls/minute) that governs how it should be called. It stops short of naming search_hotels or get_hotel as the alternatives by name, so routing is implied rather than explicit.
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
Finds hotels by name, destination or brand and returns each one's RoomExpert score, slug and page url. The other tools take that slug, so this is the lookup when the slug is not already known. Can rank by a single axis: "quietest rooms in Tokyo" is destination "tokyo", sort_by_axis "noise". Returns a Markdown table of up to limit hotels (name, destination, score, axis score when sorting, loyalty program). An unknown destination returns suggested names; no match says the hotel is not covered.
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | A brand, chain or loyalty program, e.g. "Hyatt", "Autograph Collection". | |
| limit | No | Default 10, max 50. | |
| query | No | Part of a hotel name, e.g. "park hyatt". | |
| destination | No | A destination name or slug, e.g. "Kyoto" or "new-york". | |
| sort_by_axis | No | Rank by this one axis instead of the overall score. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description goes further by disclosing the return shape (Markdown table with named columns) and two edge-case behaviors: an unknown destination returns suggested names, and no match reports the hotel as not covered. That is meaningful context beyond the annotations, though rate limits or pagination beyond `limit` are unmentioned.
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?
Four tight sentences, front-loaded with purpose, then routing, then ranking example, then output/edge cases. Dense but every sentence carries information; the parenthetical column list is the only slightly heavy element.
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?
With no output schema, the description takes on the burden of describing returns and does so (Markdown table, up to limit rows, columns listed, axis score column when sorting). Combined with the error behaviors for unknown destinations and no matches, an agent has everything needed to call and interpret this tool.
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 adds real meaning: it shows how `destination` and `sort_by_axis` combine ('quietest rooms in Tokyo' → destination 'tokyo', sort_by_axis 'noise'), clarifies sort_by_axis replaces overall-score ranking, and explains that limit caps the returned table rows. That exceeds what the schema alone conveys.
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 ('finds hotels by name, destination or brand') plus what it returns (score, slug, page url), and explicitly distinguishes itself from siblings by noting 'the other tools take that slug, so this is the lookup when the slug is not already known.' An agent can route to it without opening another 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 a clear use condition: this is the lookup tool when the slug is not already known, with the alternative (slug-taking tools) identified generically. No sibling is named explicitly and there is no explicit when-not guidance, but the routing logic is unambiguous.
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.
5 tool updates
- First observed
find_award_stays - First observed
get_evidence - First observed
get_hotel - First observed
get_rates - First observed
search_hotels
Publisher details
- Operator
- RoomExpert
- Operator website
- https://roomexpert.com
- Vendor relationship
- First-party
- Documentation
- https://roomexpert.com/mcp
- Trust center
- Not available
- Restrictions
- Free for answering travelers' questions. Live rate quotes are limited to 12 a minute per client (X-Client-Id header, else IP); other tools to 3,000 an hour. Bulk copying of scores or quotes to build a dataset, train a model or republish is not permitted. The endpoint cannot make bookings; get_rates returns links the traveler completes. · Publisher source
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs115 npm58 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1623 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.