OkeyStay
Server Details
Search holiday rentals by town and dates, with total prices, and get a ready-made booking link.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
The four tools map to distinct booking stages: search, listing detail, availability calendar, and booking preparation. There is minor overlap because get_stay with dates and prepare_booking both return availability and total price, but their main purposes remain clear.
All tool names follow a consistent snake_case verb_noun pattern: search_stays, get_stay, get_availability, and prepare_booking. The naming is predictable and easy to scan.
Four tools is well-scoped for a holiday-rental discovery and booking-assist server. Each tool covers a necessary step without redundancy.
The surface covers destination search, listing details, day-level availability, and a secure booking handoff with price and cancellation information. Payment happens externally by design, so there is no obvious lifecycle gap.
Available Tools
4 toolsget_availabilityDaily availability and pricesAInspect
Day-by-day availability, nightly price and minimum stay of one stay, for up to 93 days.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | YYYY-MM-DD | |
| from | Yes | YYYY-MM-DD | |
| slug | Yes |
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 does disclose the return contents and the 93-day range limit, but says nothing about what happens when the range is exceeded, whether unavailable nights are omitted or flagged, auth requirements, or rate limits.
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?
A single front-loaded sentence with no filler; the resource, the returned fields, and the range constraint are all packed in without 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 three-parameter read tool with no output schema, the description covers what is returned and the range cap. It is nearly complete, though edge-case behavior (over-93-day requests, invalid slug) is not addressed.
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 67%: 'from' and 'to' are only labeled 'YYYY-MM-DD' and 'slug' has no description at all. The description adds genuine meaning by capping the from/to window at 93 days and implying slug identifies a single stay, but it does not compensate for the undocumented slug semantics.
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 (day-by-day availability) plus the returned fields (nightly price, minimum stay) and a hard scope (one stay, up to 93 days). The 'one stay' framing implicitly separates it from the bulk search_stays, but no sibling is named explicitly, so differentiation is inferred rather than stated.
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?
Usage is implied: call this when you need daily prices/availability for a specific stay over a bounded window. The 'up to 93 days' cap gives an implicit limit on the date range, but there is no explicit when-to-use versus get_stay/search_stays, and no stated prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stayGet a holiday rentalAInspect
Full listing of one stay: description, highlights, FAQ, capacity, check-in and check-out times, tourist registration number, measured distances and, with dates, the total price and availability.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | ||
| locale | No | Language of the texts: es or en | en |
| checkIn | No | YYYY-MM-DD | |
| checkOut | No | 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 behavioral burden. It does disclose one conditional behavior — that passing dates adds total price and availability to the response — which is genuine beyond-schema context. It says nothing about error behavior for unknown slugs, locale fallback, permissions, or response size, so the disclosure is partial.
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?
A single front-loaded sentence that leads with the scope ('Full listing of one stay') and then lists contents; no filler. It is a long run-on enumeration, but each item earns its place by telling the agent what to expect back.
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 4-parameter read tool with no annotations and no output schema, the description effectively substitutes for the missing output schema by enumerating the returned fields, and it covers the conditional effect of dates. The gap is sibling differentiation — an agent choosing between this and get_availability gets no routing guidance.
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 75%, with locale/checkIn/checkOut documented but slug left bare. The description adds real meaning the schema lacks: checkIn/checkOut are not just date strings but a switch that turns on total price and availability computation, and it frames the call around a single identified stay. It does not clarify the slug format or locale's effect on the enumerated fields.
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 action (retrieve the full listing of one stay) and enumerates the returned content — description, highlights, FAQ, capacity, times, registration number, distances, price/availability. An agent can tell this is a detail-lookup tool rather than a search. It does not, however, name or distinguish itself from siblings like get_availability or search_stays, which overlap on the availability/price content.
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?
Usage is only implied: use this to get everything about a single stay, and supply dates if price and availability are needed. There is no explicit when-to-use versus get_availability or search_stays, and no stated prerequisite (e.g., that a slug from search_stays is required).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_bookingPrepare a booking linkAInspect
Check that a stay is free for the given dates and guests, and return the total price (cleaning included), the cancellation policy and a direct booking link with dates and guests already filled in. Give the link to the traveller: they confirm and pay securely on OkeyStay. Never ask the traveller for card details in the chat.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | ||
| guests | Yes | ||
| locale | No | Language of the texts: es or en | en |
| 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 well: it discloses that the tool only checks and prepares a link, that the traveller confirms and pays externally, that the price includes cleaning, and that card details must not be collected in chat. It omits failure behavior (what happens when dates are not free) and any rate-limit or error context.
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 tight sentences, front-loaded with the core behavior and followed by the essential agent instruction about the booking link and card details. No filler; every clause earns its place.
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 5-parameter tool with no annotations and no output schema, the description usefully enumerates what is returned (total price, cancellation policy, booking link). It leaves the 'slug' input and the locale parameter unexplained, which is the main remaining gap.
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 60%, so the description needs to compensate. It mentions 'dates and guests' generically but never defines the required 'slug' (the stay identifier is only implied by 'a stay') and never mentions the 'locale' parameter at all. It adds little meaning beyond what the partially-documented schema already 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?
The description states a specific verb and resource (check availability, return price/policy/booking link) and names the concrete outputs, so an agent knows exactly what it gets. It does not differentiate itself from the sibling get_availability, which appears to also check free dates, so sibling differentiation is missing.
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 gives strong post-call workflow guidance ('give the link to the traveller', 'never ask for card details'), but never says when to choose this over get_availability, get_stay, or search_stays. Usage is implied by the booking-link framing but no explicit selection criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_staysSearch holiday rentalsAInspect
Search holiday rentals. Every listing shows its registration number where the law requires one, its real town worked out from the map coordinates, and measured distances to the beach and the airport. Filter by town, dates and guests. With checkIn and checkOut, each result includes the total price of the stay (cleaning included); without dates, the lowest nightly price of the next 60 days. Call it without a place to see which destinations exist.
| Name | Required | Description | Default |
|---|---|---|---|
| place | No | Municipality, e.g. Málaga, Torremolinos, Benalmádena, Marbella, Fuengirola | |
| guests | No | ||
| locale | No | Language of the texts: es or en | en |
| checkIn | No | YYYY-MM-DD | |
| checkOut | No | 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 substantial work: it discloses what each result contains (registration number where legally required, town derived from coordinates, measured beach/airport distances) and explains the conditional pricing behavior. It omits pagination/result caps, rate limits, and whether an empty result is possible, which are the remaining gaps.
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?
Four sentences, front-loaded with the core purpose before the filter and pricing details. The listing-attribute sentence is informative rather than filler, though slightly verbose in its phrasing ('its real town worked out from the map coordinates').
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?
No output schema exists, so the description must explain returns, and it does: listing attributes plus the two distinct price models depending on whether dates are supplied. For a five-parameter, all-optional search tool with no annotations, this covers everything an agent needs to call it correctly.
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 80%, so the schema already documents place, locale, and the date formats. The description adds real meaning beyond that: checkIn/checkOut jointly switch the price semantics from nightly-lowest to total-stay-including-cleaning, and omitting place returns destinations rather than listings. The guests parameter remains unexplained in both places, keeping this at the schema-driven 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?
States a specific verb and resource ('Search holiday rentals') and enumerates the filters (town, dates, guests), so the agent knows exactly what operation this performs. It does not name the sibling tools (get_stay, get_availability, prepare_booking) to draw the boundary explicitly, so differentiation is inferred rather than stated.
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 recipes: pass checkIn/checkOut to get total stay price, omit dates to get the lowest nightly price over the next 60 days, and omit place entirely to discover available destinations. It lacks explicit guidance on when to prefer this over get_availability or get_stay, but the parameter-level guidance is strong.
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
get_availability - First observed
get_stay - First observed
prepare_booking - First observed
search_stays
Related MCP Connectors
Book vacation rentals direct: search homes, check live availability, get a real total.
Holiday rentals booked direct with the host: availability, prices, checkout links. No auth.
Find vacation rentals worldwide by describing the trip, check host prices and book direct.
Search independent UK holiday stays, check live availability and exact prices, then open checkout.
Related MCP Servers
- AlicenseAqualityAmaintenanceVacation rental software. A signed stay offer on the host’s own domain. Use this when a vacation rental host wants booking software on the host’s own domain, or when a stay offer must be verified against that domain. Returns an Ed25519-signed offer (VRP) and the host’s direct booking URL. The guest books and pays the host. Do not use to compare hosts or prices.6999 npm4Apache 2.0
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to search global holiday rentals, hotels and short-term stays, read full property details, and get exact, itemised prices for specific dates and party sizes, then hand the traveller a link to complete the booking. All tools are read-only, and it also returns guidance for hosts listing a property and for software companies building integrations.-

la-palma24-mcpofficial
AlicenseAqualityDmaintenanceSearch and discover vacation rental properties across La Palma, Canary Islands.63 npmMIT- AlicenseBqualityDmaintenanceEnables searching for Airbnb listings and retrieving detailed accommodation information with direct links to Airbnb pages.21MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.