Skip to main content
Glama

Server Details

Book hotels over MCP. Pay over x402. 3M+ properties in 200+ countries, USDC on Base.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.1/5 across 4 of 4 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose in the hotel booking workflow: search_hotels finds hotels, get_hotel_details retrieves specific hotel rates, purchase_hotel books a room, and get_order_details checks booking status. There is no overlap or ambiguity between these functions.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., search_hotels, get_hotel_details, purchase_hotel, get_order_details). The naming is uniform, predictable, and clearly describes each tool's action and target.

Tool Count5/5

With 4 tools, the server is well-scoped for its hotel booking domain. Each tool serves a critical step in the workflow (search, details, purchase, order tracking), and there are no extraneous or missing tools for this purpose.

Completeness5/5

The tool set provides complete coverage of the hotel booking lifecycle: search, retrieve details, purchase, and order status tracking. There are no obvious gaps, and the tools integrate seamlessly to support end-to-end booking without dead ends.

Available Tools

4 tools
get_hotel_detailsGet Hotel DetailsA
Read-onlyIdempotent
Inspect

Get rooms and rates for a hotel. Pass the hotel id from search_hotels results. Returns rate IDs needed for purchase_hotel.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe hotel id from search_hotels results
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It mentions the return value ('Returns rate IDs') which adds useful context, but does not disclose other behavioral traits such as error handling, rate limits, authentication needs, or whether it's a read-only operation. The description is adequate but lacks depth for a tool with no annotation support.

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 two sentences, front-loaded with the core purpose and followed by prerequisite and output guidance. Every sentence earns its place with no wasted words, making it highly efficient and easy to parse.

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?

Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is reasonably complete. It covers purpose, usage, and output context, but could improve by mentioning if it's a read-only operation or any error scenarios, though the absence of annotations lowers the bar for sufficiency.

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?

The schema description coverage is 100%, with the parameter 'id' fully documented in the schema. The description adds value by specifying the source of the id ('from search_hotels results'), which provides practical context beyond the schema's technical definition, though it doesn't elaborate on format or constraints.

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 clearly states the verb ('Get') and resources ('rooms and rates for a hotel'), making the purpose specific and actionable. It distinguishes from siblings by focusing on hotel details rather than orders (get_order_details), purchases (purchase_hotel), or searches (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 Guidelines5/5

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

The description explicitly states when to use this tool ('Pass the hotel id from search_hotels results') and provides an alternative context ('Returns rate IDs needed for purchase_hotel'), giving clear guidance on prerequisites and downstream usage without misleading information.

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

get_order_detailsGet Order DetailsA
Read-onlyIdempotent
Inspect

Get the current state of an order. Returns payment status, booking state, and item details. Poll until ready is true to confirm the booking is complete.

ParametersJSON Schema
NameRequiredDescriptionDefault
cart_idYesThe cart_id from purchase_hotel response
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return format (payment status, booking state, item details) and polling behavior, which is valuable. However, it doesn't mention potential errors, rate limits, authentication requirements, or whether this is a read-only operation (though 'Get' implies it).

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 perfectly concise: two sentences that each earn their place. The first sentence states the core purpose and return values. The second provides crucial usage guidance about polling. No wasted words, front-loaded with the essential information.

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?

Given the tool's moderate complexity (status checking with polling), no annotations, and no output schema, the description does well by explaining what information is returned and the polling pattern. However, it could be more complete by mentioning error conditions or what happens with invalid cart_ids. The absence of an output schema makes the return value description particularly valuable.

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 the schema already documents the single parameter 'cart_id' with its description. The description doesn't add any parameter-specific information beyond what's in the schema. The baseline score of 3 is appropriate when the schema does the heavy lifting for parameter documentation.

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 clearly states the tool's purpose: 'Get the current state of an order' with specific return details (payment status, booking state, item details). It distinguishes from sibling tools like 'get_hotel_details' (hotel info) and 'purchase_hotel' (making purchase) by focusing on order status retrieval. However, it doesn't explicitly contrast with 'search_hotels' which is a different domain.

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 provides clear usage context: 'Poll until ready is true to confirm the booking is complete' indicates when/how to use this tool for monitoring order completion. It implies this is for checking order status after purchase, but doesn't explicitly state when NOT to use it or mention alternatives like checking hotel details instead.

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

purchase_hotelPurchase HotelA
Destructive
Inspect

Book a hotel room by providing guest details and a rate ID from get_hotel_details. Creates a guest profile, adds the room to a cart, and initiates checkout. Returns a payment_url and an x402 payment challenge by default (USDC on Base). Set payment_service to 'coingate' to return a browser-based crypto payment URL instead. The booking is confirmed once payment settles; poll get_order_details to check status.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesGuest's email address
phoneYesGuest's phone number (e.g., +44123456789)
titleNoGuest's title: MR, MRS, MS, or MISS (default: MR)
rate_idYesSigned rate ID from get_hotel_details response
last_nameYesGuest's last name
first_nameYesGuest's first name
nationalityNoGuest's nationality as ISO 3166-1 alpha-2 code (default: GB)
price_currencyNoPayment currency (default: USD for x402, EUR for coingate). Supported: EUR, USD, GBP, PLN, CZK, HUF, SEK, NOK, DKK
payment_serviceNoPayment method: x402 (USDC on Base, default) or coingate (browser-based crypto)
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does an excellent job describing the multi-step process (creates guest profile, adds to cart, initiates checkout), discloses the return value (payment_url), specifies default behavior (x402/USDC on Base), and provides crucial guidance about automatic payment execution. The only minor gap is lack of explicit mention about error conditions or what happens if payment fails.

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 description is appropriately sized and front-loaded with the core purpose. Every sentence adds value: the first states the main action, the second describes the multi-step process and return value, and the third provides crucial payment execution guidance. It could be slightly more concise by combining some payment-related information, but overall it's efficient and well-structured.

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 complex purchase tool with 9 parameters and no annotations or output schema, the description does an excellent job covering the essential context. It explains the multi-step process, return value, default behavior, and critical next steps. The main gap is the lack of output schema, which means the description doesn't detail the structure of the payment_url response or potential error formats, but given the constraints, it's quite comprehensive.

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 the schema already documents all 9 parameters thoroughly. The description adds some context about the rate_id ('from get_hotel_details response') and payment_service options, but doesn't provide significant additional parameter semantics beyond what's in the schema. This meets the baseline expectation when schema coverage is complete.

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 clearly states the tool's purpose with specific verbs ('book a hotel room', 'creates a guest profile', 'adds the room to a cart', 'initiates checkout') and identifies the required resource ('rate ID from get_hotel_details'). It distinguishes itself from sibling tools like get_hotel_details and search_hotels by focusing on the purchase/booking action rather than information retrieval.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool ('by providing guest details and a rate ID from get_hotel_details') and when not to use alternatives (implied that get_hotel_details must be called first to obtain the rate_id). It also specifies the automatic next step ('AUTOMATICALLY execute the payment by calling the Payments MCP tool') and provides alternative payment service options with clear use cases.

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

Search for available hotels by destination and dates. Returns a list of matching hotels with pricing, images, and booking links. Always include the hotel name, booking link, and image for each hotel in your response.

ParametersJSON Schema
NameRequiredDescriptionDefault
sort_byNoSort results by: price, rating, distance, or relevance (default)
check_inYesCheck-in date in YYYY-MM-DD format
check_outYesCheck-out date in YYYY-MM-DD format
sort_orderNoSort order: asc (default) or desc
destinationYesDestination name (e.g., 'London', 'Paris, France', 'Vilnius')
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool returns a list with specific fields (pricing, images, booking links) and instructs on response formatting, adding useful context. However, it lacks details on rate limits, authentication needs, or error handling, which are important for a search tool.

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 front-loaded with the core purpose in the first sentence, followed by return details and response instructions. Every sentence adds value—none are redundant or wasteful—making it efficient and well-structured for quick understanding.

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?

Given no annotations and no output schema, the description compensates well by specifying return fields and response formatting. It covers the essential behavior for a search tool, though it could improve by mentioning limitations like result count or pagination. Overall, it is mostly complete for its complexity.

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 the schema fully documents all parameters. The description adds no additional parameter semantics beyond implying destination and dates are key inputs. This meets the baseline of 3, as the schema handles the heavy lifting without extra value from the description.

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 clearly states the specific action ('Search for available hotels'), the resource ('hotels'), and key criteria ('by destination and dates'), distinguishing it from siblings like get_hotel_details (which fetches details for a specific hotel) and purchase_hotel (which handles booking). It explicitly defines the verb, resource, and scope.

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?

The description implies usage for finding hotels based on destination and dates, which suggests when to use it (for initial search). However, it does not explicitly state when not to use it or mention alternatives like get_hotel_details for detailed info or purchase_hotel for booking, leaving some ambiguity in tool selection.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources