Callstay Hotels
Server Details
Live hotel rates worldwide: search stays, property detail, all-in room prices, human phone desk.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: capabilities is meta-information, search_stays finds properties, get_property provides detail for one property, and price_stay returns live pricing for a specific stay. There is no meaningful overlap that would cause an agent to pick the wrong tool.
Three tools follow a clear verb_noun pattern: search_stays, get_property, price_stay. The outlier is capabilities, which is a noun-only name and breaks the convention, though it remains readable and understandable.
Four tools is a well-scoped set for a hotel search and pricing server. Each tool earns its place and there is no bloat or unnecessary duplication.
The core hotel journey is covered: search, property details, and live price/availability. The main gap is that booking itself is delegated to an external URL rather than a server tool, which is a reasonable design but means the surface is not fully complete.
Available Tools
4 toolscapabilitiesARead-onlyInspect
What Callstay is, which tools exist, what prices mean, and the human desk's phone number. Call first.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description reinforces this by framing the tool as informational, and adds the 'Call first' workflow hint. It does not contradict annotations, but it also doesn't disclose additional behavioral traits beyond what the annotations and obvious purpose 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 description is a single, tightly packed sentence that front-loads the content categories (what, tools, prices, phone) and ends with a crisp directive. No filler or redundancy.
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 a 0-parameter, annotation-covered informational tool, the description covers the essentials: what it communicates and when to invoke it. It doesn't specify the return format, but that is not necessary for an overview tool of this simplicity, so the completeness is strong.
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?
The tool has zero parameters, and schema description coverage is 100% (vacuously). The description correctly avoids parameter detail since there are none, matching the baseline for 0-parameter tools.
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 exactly what the tool provides: an overview of Callstay, existing tools, pricing semantics, and the human desk phone number. This clearly differentiates it from siblings like get_property or search_stays, which are specific operations.
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?
The instruction 'Call first' explicitly signals that this tool should be used before others, giving clear usage context. It doesn't enumerate exclusions or direct comparisons with alternatives, but the sibling list and the tool's purpose make the intended first-step role evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_propertyARead-onlyInspect
Full detail for one property by slug: description, facilities, check-in and check-out times, parking, pets, children, policies, review summary and nearby places.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The property slug from search_stays, e.g. 'delta-hotels-by-marriott-peterborough'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds valuable behavioral context by enumerating the detail fields returned (description, facilities, check-in/check-out times, parking, pets, children, policies, review summary, nearby places), which is especially useful given there is no output schema. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One well-structured sentence that front-loads the core action ('Full detail for one property by slug') and then lists the included details in a compact enumeration. No filler or redundancy.
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 a simple read-only lookup tool with one parameter and no output schema, the description provides a comprehensive list of return contents and the slug provenance. It doesn't mention error behavior for invalid slugs, but given the simplicity and the annotations, the definition is largely sufficient.
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% – the only parameter 'slug' is fully documented with type, length constraints, and an example. The description simply repeats 'by slug' without adding new meaning, so it does not elevate beyond the schema baseline.
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 ('get'), a clear resource ('one property'), and a precise retrieval key ('by slug'). The phrase 'Full detail for one property' differentiates it from search_stays, which is a search tool, and price_stay, which focuses on pricing. It is immediately obvious what this tool does.
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?
The description implies usage context: when you need full details of a single property after obtaining its slug. The schema parameter description reinforces this by saying 'The property slug from search_stays', which clearly indicates a preceding search_stays call. It doesn't explicitly mention when not to use it, but the intended workflow is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
price_stayARead-onlyInspect
Every room and rate one property has for an exact stay, live from the supplier. Each room has an all-in total, itemised fees, cancellation terms and a booking URL. status says whether an empty list is no rooms or a supplier outage.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The property slug from search_stays, e.g. 'delta-hotels-by-marriott-peterborough'. | |
| rooms | No | Number of rooms. | |
| adults | No | Adults across all rooms. | |
| checkin | Yes | Check-in date, YYYY-MM-DD. | |
| checkout | Yes | Check-out date, YYYY-MM-DD. Must be after checkin. | |
| currency | No | ISO 4217 code to quote in. Defaults to the market's currency. | |
| children_ages | No | Age of each child at check-in. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description adds meaningful behavioral context beyond those annotations: the results are live from the supplier, and the status field disambiguates an empty list between 'no rooms' and a 'supplier outage'. This is valuable operational information.
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: purpose, return contents, and status interpretation. Every sentence adds distinct value, and the most important information is front-loaded.
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 a read-only pricing tool with no output schema, the description covers the essential return shape (room totals, fees, cancellation terms, booking URL) and edge-case semantics (empty list via status). The only remaining detail is the slug source, which is also included. Nothing critical 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 the schema already documents all seven parameters thoroughly. The description adds no parameter-level meaning beyond indicating the stay context (checkin/checkout) and the slug source. A baseline 3 is appropriate since structured data carries the parameter documentation burden.
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 clearly identifies the resource: every room and rate for one property over an exact stay, live from the supplier. It does not use a strong imperative verb like 'returns' or 'lists', and it does not explicitly distinguish itself from siblings such as search_stays or get_property, but the intent is unmistakable.
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?
The description implies usage context by mentioning 'an exact stay' and referencing 'the property slug from search_stays', which tells the agent this is a follow-up to property search. However, it gives no explicit when-to-use guidance or exclusions relative to siblings like get_property or search_stays.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_staysARead-onlyInspect
Find hotels for a place, dates and party. Returns up to 48 properties with an indicative nightly and total, rating and a URL that carries the dates.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | What the guest wants, in plain language: 'near the river, pet friendly, 2 adults'. Dates in the text are read too, but the date fields win. | |
| rooms | No | Number of rooms. | |
| adults | No | Adults across all rooms. | |
| checkin | No | Check-in date, YYYY-MM-DD. | |
| checkout | No | Check-out date, YYYY-MM-DD. Must be after checkin. | |
| currency | No | ISO 4217 code to quote in. Defaults to the market's currency. | |
| destination | No | City or place name, with country when ambiguous: 'Peterborough, United Kingdom'. Strongly recommended; the parser is more reliable with it separate. | |
| max_results | No | ||
| children_ages | No | Age of each child at check-in. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description doesn't need to address data safety. It adds value by specifying the output format: 'indicative nightly and total, rating and a URL that carries the dates', which informs the agent about expected results. This goes beyond annotations and enriches behavioral transparency.
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 description is exactly two sentences with no redundancy. The primary purpose is front-loaded, and the second sentence provides essential output details without elaboration. Every word is purposeful.
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 a search tool with 9 parameters and a rich schema, the description covers the core purpose and output clearly. It mentions key output nuances (indicative prices, URL with dates) but does not elaborate on edge cases or query parsing; however, the schema supplies those details. The description is reasonably complete given the schema coverage.
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 89%, meaning parameters are well documented in the schema. The tool description does not add parameter-specific meaning beyond what the schema provides; it only mentions 'indicative' prices, which pertains to output rather than parameters. The high schema coverage justifies the baseline 3.
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 clearly identifies the verb 'Find', the resource 'hotels', and the scoping 'for a place, dates and party'. It also describes the output (up to 48 properties with indicative nightly and total, rating, URL with dates), which differentiates it from get_property and price_stay.
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?
The description implies usage for searching hotels but does not explicitly mention when to choose this tool over siblings like get_property or price_stay. It lacks 'when to use' or 'when not to use' guidance, relying on the agent to infer its role from the purpose.
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.
4 tool updates
- First observed
capabilities - First observed
get_property - First observed
price_stay - First observed
search_stays
Related MCP Connectors
Search hotels, get live prices, and check out in chat. Guest search needs no sign-in.
Luxury hotel search, rate comparison, booking quotes, and secure checkout handoff.
Search and book flights and hotels: hundreds of airlines, plus bookable hotel rates.
Hotel direct booking for VIP and corporate rates - upgrades and loyalty eligible, 100K+ hotels
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceBook hotels worldwide — search, price, prebook & book across 249 countries. 65 tools for hotel search, flights, loyalty, analytics. Zero API keys needed. at best prices for hotels 3 M+ property5 npm1MIT
- FlicenseNot gradedqualityBmaintenanceProvides live hotel room rates, availability, and guest reviews from Agoda, enabling searches by destination and dates, property details, and structured review data.-

Dida Hotel MCPofficial
AlicenseNot gradedqualityCmaintenanceEnables AI agents to search and book hotels globally with real-time pricing and inventory from over 2 million properties.82MIT
RollingGo Hotel MCPofficial
AlicenseNot gradedqualityBmaintenanceEnables AI agents to search, compare, and book hotels worldwide through natural language, with real-time pricing and availability, plus price monitoring and order management.30MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.