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.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool has a clearly distinct role: search_hotels for discovery, get_hotel for verdicts, get_evidence for quotes, get_rates for live pricing, and find_award_stays for points redemption. The descriptions even cross-reference each other (e.g. 'Decide with get_evidence first') to steer correct selection.
All five names follow a clean verb_noun snake_case pattern (find_award_stays, get_evidence, get_hotel, get_rates, search_hotels). Verbs are varied but predictable and readable.
Five tools is well-scoped for a hotel-intelligence server, and each maps to a distinct stage of the traveler workflow (discover, evaluate, verify, price, redeem). No tool feels redundant or padded.
The surface covers discovery, scoring, evidence, live rates, and award redemptions, which is a coherent read-only lifecycle. Minor gaps exist, such as no explicit hotel-comparison or brand/destination listing operation, but agents can work around these via search.
Available Tools
5 toolsfind_award_staysAInspect
Hotels a given points balance can actually reach, ranked by how good the redemption is AGAINST THAT PROGRAM'S OWN NORM rather than a flat cents-per-point scale. Use it when a traveler says what they are holding - "I have 300k Hyatt points". The balance comes from them; this server stores nothing about anyone.
| 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?
With no annotations, the description carries the full behavioral burden. It usefully discloses the ranking methodology (relative to program norm) and a privacy trait ('this server stores nothing about anyone'), which is real added value. It does not state that the call is read-only, whether results are paginated, or how the response is shaped.
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?
Two sentences plus a short trailing clause, front-loaded with the ranking differentiator before the usage trigger. The privacy clause is somewhat parenthetical but earns its place by clarifying the data model. Minimal waste.
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 unannotated search tool with no output schema, the description covers purpose, ranking logic, usage trigger, and data-handling posture. The main gap is return-value shape (count, fields, pagination), which nothing else supplies since 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?
Schema description coverage is 100%, so the schema already documents all four parameters including the limit default/max and the program examples. The description reinforces that points means the traveler's available balance, but adds no syntax or format detail beyond the schema. 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?
The description states a specific verb+resource (finds hotels reachable by a points balance) and adds a distinguishing detail: ranking is relative to each program's own norm rather than a flat cents-per-point scale. It is clearly different from get_rates and search_hotels, though it never names those siblings to make the contrast explicit.
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 trigger: 'Use it when a traveler says what they are holding - "I have 300k Hyatt points".' That is a clear context for invoking it. It stops short of any exclusions or explicit routing to alternatives for cash-rate searches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_evidenceAInspect
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. This is what RoomExpert has that a rate API does not: use it whenever a traveler asks what a hotel is actually LIKE - whether it is quiet, whether the beds are good, whether service holds up.
| 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?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses the shape of what comes back (outlet, document type, url) and implies a read-only lookup, but says nothing about auth requirements, rate limits, truncation, or what happens when a hotel has no quotes.
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?
Two sentences, front-loaded with what is returned before the usage trigger. The 'what RoomExpert has that a rate API does not' clause is slightly promotional but does real work by positioning the tool against siblings.
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 correctly compensates by describing the returned quote records. Call guidance and the category defaulting rule live in the schema, so the combination is nearly complete; only edge behavior (empty results, pagination/limit effects) is 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%, and the schema already documents slug, limit (default 12, max 40), and the category enum with its own rationale. The description adds no parameter-level detail, so the baseline of 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?
The description names the exact resource returned (the cited quotes behind a hotel's scores) and enumerates each field's payload (outlet, document type, url). It also explicitly distinguishes itself from a sibling class ('what a rate API does not'), so an agent can separate it from get_rates 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?
It gives an explicit trigger condition with concrete examples - 'use it whenever a traveler asks what a hotel is actually LIKE - whether it is quiet, whether the beds are good, whether service holds up.' There is no explicit when-not or named alternative sibling, but the rate-API contrast supplies a clear boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hotelAInspect
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. Use this to answer "is this hotel any good" or "what is it strong at". For the quotes behind the scores, call 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?
With no annotations, the description carries the full burden and does well: it discloses the return payload in detail, including the caveat that award price appears only 'where a real one exists' — a genuine behavioral nuance. It is silent on error behavior for an unknown slug and on whether any auth is required, which keeps it below 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?
Two sentences, front-loaded with the resource and its payload, then the routing advice. The enumerated return contents are dense but each clause earns its place; no filler or restatement of the tool name.
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 returns, and it does so thoroughly — score, eight axes, coverage depth, loyalty program, award price. Combined with the explicit hand-off to get_evidence, an agent has what it needs to call this correctly; only error/permission behavior is 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% and the single slug parameter is already documented with format and an example in the schema, so the baseline is 3. The description adds no format, casing, or resolution guidance beyond what the schema provides.
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 ('The RoomExpert verdict for one hotel') and enumerates exactly what the verdict contains: overall score, eight axis scores, coverage depth, loyalty program, award price. It also distinguishes itself from the sibling get_evidence by noting that tool supplies the underlying quotes.
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 usage scenarios ('is this hotel any good', 'what is it strong at') and explicitly routes the agent to get_evidence when it needs the quotes behind the scores. It does not address the other siblings (get_rates, search_hotels, find_award_stays) or state when not to use this tool, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ratesAInspect
Live rooms and prices for one hotel and a stay window, with a booking link for each. THE EXPENSIVE ONE: it calls a metered supplier, so use it when a traveler has settled on a hotel and wants to book, never to browse or to compare several. Decide with get_evidence first; this closes the decision rather than informing it. Booking links are time-limited and go stale in minutes - surface them promptly or re-call. A LINK IS NOT A BOOKING: it opens a checkout the traveler completes themselves, with their own details and their own card. This tool cannot reserve a room and neither can you. Never say a stay is booked, held or confirmed.
| 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?
With no annotations, the description carries the full burden and does so: it discloses that the tool calls a metered supplier (cost implication), that booking links go stale in minutes, and that a link is not a reservation and neither the tool nor the agent can hold a room. It also supplies output-expectation guidance (never claim a stay is booked, held or confirmed), which is exactly the behavioral context that annotations would otherwise provide.
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 purpose and cost warning are front-loaded, and every sentence carries operational weight. There is minor redundancy: 'A LINK IS NOT A BOOKING' and 'This tool cannot reserve a room' restate the same constraint in adjacent sentences, which a tighter edit could merge.
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 still conveys what comes back (rooms, prices, per-room booking links), their volatility, and the hard boundary on what the tool cannot do. For a 4-parameter metered call, nothing an agent needs to invoke or report 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 description coverage is 100%, so slug, adults, checkin and checkout are already documented in the schema, making 3 the baseline. The description only gestures at the shape ('one hotel and a stay window') and adds no format or semantic detail beyond that.
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: live rooms and prices for one hotel within a stay window, plus a booking link per room. It also positions itself against siblings by naming get_evidence as the decision tool and framing itself as the closing step, so an agent can distinguish it from search_hotels and get_evidence 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?
Explicit when/when-not with a named alternative: use when a traveler has settled on a hotel and wants to book, never to browse or compare several, and 'Decide with get_evidence first.' The conditional routing is fully specified rather than left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_hotelsAInspect
Find hotels by name, destination or brand, each with its RoomExpert score, slug and page. Call this first whenever you do not already have a slug: every other tool takes one. Can rank by a single axis - "quietest rooms in Tokyo" is destination "tokyo", sort_by_axis "noise". Reads our own database; not metered.
| 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?
With no annotations, the description carries the burden and does disclose key traits: it reads the service's own database (implying a safe read), and it is 'not metered' so there is no cost concern. It does not spell out pagination behavior or how results behave when filters match nothing, so it is strong but not exhaustive.
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, front-loaded with the core action, then the routing rule, then the ranking capability. No filler and no repetition of schema text.
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?
Covers purpose, return fields, invocation ordering, ranking semantics and cost model for a five-parameter, zero-required search tool with no output schema. Only minor gaps remain, such as pagination/limit behavior and whether multiple filters are ANDed.
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 five parameters, giving a baseline of 3. The description earns above baseline by demonstrating the interaction of two parameters in a real query pattern, which the enum list alone does not convey.
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 ('Find hotels by name, destination or brand') and enumerates what each result carries (RoomExpert score, slug, page). It also positions itself against the sibling tools by declaring 'every other tool takes one [slug]', so an agent can immediately tell this is the entry-point search versus get_hotel/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?
Gives an explicit calling rule — 'Call this first whenever you do not already have a slug' — and states the precondition that every other tool requires a slug. A concrete ranked-search example ('quietest rooms in Tokyo' = destination 'tokyo', sort_by_axis 'noise') removes ambiguity about combining filters.
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
Related MCP Servers
- 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.1611 npm1MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs117 npm54 PyPIMIT
- AlicenseAqualityCmaintenanceRevnuvo Company Intelligence tells AI agents what changed at a company, with evidence. It observes company websites, technologies, and DNS over time and returns timestamped, confidence-aware changes, signals, and monitoring.9MIT

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.