Hotel verdicts on eight axes, with every quote cited to its outlet and url.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Points available for one night.
Loyalty program, e.g. "World of Hyatt", "Hilton Honors", "Marriott Bonvoy".
Default 10, max 25.
Optional city slug, e.g. "tokyo".
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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Default 10, max 25. |
| points* | integer | Points available for one night. |
| program* | string | Loyalty program, e.g. "World of Hyatt", "Hilton Honors", "Marriott Bonvoy". |
| destination | string | Optional city slug, e.g. "tokyo". |
{
"type": "object",
"required": [
"program",
"points"
],
"properties": {
"limit": {
"type": "integer",
"description": "Default 10, max 25."
},
"points": {
"type": "integer",
"description": "Points available for one night."
},
"program": {
"type": "string",
"description": "Loyalty program, e.g. \"World of Hyatt\", \"Hilton Honors\", \"Marriott Bonvoy\"."
},
"destination": {
"type": "string",
"description": "Optional city slug, e.g. \"tokyo\"."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The hotel slug. |
| limit | integer | Quotes to return. Default 12, max 40. |
| category | string | Narrow to one axis. Omit for a spread across all of them, which is the right default for an open question. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The hotel slug."
},
"limit": {
"type": "integer",
"description": "Quotes to return. Default 12, max 40."
},
"category": {
"enum": [
"room",
"sleep",
"bathroom",
"noise",
"service",
"food",
"location",
"value"
],
"type": "string",
"description": "Narrow to one axis. Omit for a spread across all of them, which is the right default for an open question."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The hotel slug, e.g. "andaz-maui-at-wailea-resort". Lowercase, hyphenated. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The hotel slug, e.g. \"andaz-maui-at-wailea-resort\". Lowercase, hyphenated."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The hotel slug. |
| adults | integer | Default 2. |
| checkin* | string | YYYY-MM-DD. |
| checkout* | string | YYYY-MM-DD. |
{
"type": "object",
"required": [
"slug",
"checkin",
"checkout"
],
"properties": {
"slug": {
"type": "string",
"description": "The hotel slug."
},
"adults": {
"type": "integer",
"description": "Default 2."
},
"checkin": {
"type": "string",
"description": "YYYY-MM-DD."
},
"checkout": {
"type": "string",
"description": "YYYY-MM-DD."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| brand | string | A brand, chain or loyalty program, e.g. "Hyatt", "Autograph Collection". |
| limit | integer | Default 10, max 50. |
| query | string | Part of a hotel name, e.g. "park hyatt". |
| destination | string | A destination name or slug, e.g. "Kyoto" or "new-york". |
| sort_by_axis | string | Rank by this one axis instead of the overall score. |
{
"type": "object",
"properties": {
"brand": {
"type": "string",
"description": "A brand, chain or loyalty program, e.g. \"Hyatt\", \"Autograph Collection\"."
},
"limit": {
"type": "integer",
"description": "Default 10, max 50."
},
"query": {
"type": "string",
"description": "Part of a hotel name, e.g. \"park hyatt\"."
},
"destination": {
"type": "string",
"description": "A destination name or slug, e.g. \"Kyoto\" or \"new-york\"."
},
"sort_by_axis": {
"enum": [
"room",
"sleep",
"bathroom",
"noise",
"service",
"food",
"location",
"value"
],
"type": "string",
"description": "Rank by this one axis instead of the overall score."
}
}
}