Skip to main content
Glama

Get guest reviews

get_recent_reviews
Read-onlyIdempotent

Get verified guest reviews for a hotel, including comments and insider tips. Pass room_number to get reviews for a specific room.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of reviews (default 5)
hotel_idYesHotel UUID (the URL slug also works)
room_numberNoFilter reviews to a specific room number, e.g. "434"

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteYesSet when no reviews are returned, e.g. unknown room
countYes
reviewsYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changed
    • changedInput schema / properties / hotel_id / description
      Previous value: -"Hotel UUID"New value: +"Hotel UUID (the URL slug also works)"
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "count": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "note": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Set when no reviews are returned, e.g. unknown room"
      +    },
      +    "reviews": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "comment": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "guestDisplayName": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "insiderTip": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "roomId": {
      +            "type": "string"
      +          },
      +          "roomNumber": {
      +            "type": "string"
      +          },
      +          "roomUrl": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "score": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Overall score 0-100"
      +          },
      +          "stayMonth": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "guestDisplayName",
      +          "stayMonth",
      +          "roomId",
      +          "roomNumber",
      +          "roomUrl",
      +          "score",
      +          "comment",
      +          "insiderTip"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "count",
      +    "note",
      +    "reviews"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4/5.0
Behavior3/5

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

Annotations already cover the safety profile with readOnlyHint, idempotentHint, and destructiveHint, so the description does not need to restate that this is a safe read. The description adds useful context about 'verified' reviews and 'comments and insider tips,' but it does not disclose ordering, pagination, or response shape. No contradiction with annotations.

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

Conciseness5/5

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

The description is a single compact sentence with the main action front-loaded and a conditional usage tip at the end. It avoids filler, does not restate the schema, and every phrase adds either content scope or invocation guidance.

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 simple read-only review lookup, the description, annotations, full parameter schema, and existing output schema collectively provide enough information for an agent to invoke the tool correctly. The only minor omission is that the description does not explicitly say 'recent,' which is present only in the tool name and title.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so hotel_id, limit, and room_number are already documented in the schema. The description's mention of room_number adds no new semantic meaning beyond the schema's 'Filter reviews to a specific room number.' Baseline 3 applies because the structured schema carries most of the parameter-documentation burden.

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 states a specific operation ('Get verified guest reviews') and a clear resource ('reviews for a hotel'), and it adds the included content ('comments and insider tips'). This naturally distinguishes it from sibling tools that handle pricing, rooms, trips, and searches, none of which target guest reviews.

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?

The description makes the review-lookup context clear and gives a concrete usage condition ('Pass room_number to get reviews for a specific room'). It does not explicitly compare against alternatives like ask_about_hotel or state when not to use this tool, so it lacks explicit exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a clear, distinct purpose: searching, retrieving details, pricing, rooms, reviews, nearby places, user-specific actions (preferences, trips), booking, and presentation. The overlap between get_hotel and ask_about_hotel is intentional and clearly differentiated (ask is for supplementary questions), and get_hotel_rooms vs show_rooms are also distinct (list vs present).

Naming Consistency5/5

All tools follow a consistent verb_noun pattern: get_hotel, get_hotel_pricing, get_hotel_rooms, get_my_preferences, get_my_trips, get_nearby, get_recent_reviews, search_hotels, secure_room, show_rooms, add_special_request, ask_about_hotel. The only minor variation is 'ask_about_hotel' but it's still verb-based and follows the same structure.

Tool Count5/5

Twelve tools is well within the optimal range for a domain of this scope. The toolset covers the core lifecycle (search, view, price, book, add request, view trips) plus supporting functions (reviews, nearby, user preferences, presentation). No redundant or superfluous tools exist.

Completeness4/5

The toolset covers the primary hotel intelligence and booking workflow thoroughly: search, detail, pricing, rooms, booking, special requests, and user data. Slight gap: no explicit cancellation or booking modification tool, but given the server's focus on intelligence and presentation, this is a minor omission that agents can work around.

Resources