Holiday rentals booked direct with the host: availability, prices, checkout links. No auth.
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.
Which nights are free between two dates, both inclusive, at most 62 days per call. Each night has available, minStay, whether arrival/departure is allowed that day, and priceCents (null when the place takes no online booking). For the price of a whole stay use get_quote – nightly prices do not include fees or discounts.
Last night, YYYY-MM-DD
First night, YYYY-MM-DD
The place's slug – the last part of its page URL (posadita.com/p/{slug}), or from search_stays or /llms.txt.
Which nights are free between two dates, both inclusive, at most 62 days per call. Each night has available, minStay, whether arrival/departure is allowed that day, and priceCents (null when the place takes no online booking). For the price of a whole stay use get_quote – nightly prices do not include fees or discounts.
| Argument | Type | Description |
|---|---|---|
| to* | string | Last night, YYYY-MM-DD |
| from* | string | First night, YYYY-MM-DD |
| slug* | string | The place's slug – the last part of its page URL (posadita.com/p/{slug}), or from search_stays or /llms.txt. |
{
"type": "object",
"required": [
"slug",
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"format": "date",
"description": "Last night, YYYY-MM-DD"
},
"from": {
"type": "string",
"format": "date",
"description": "First night, YYYY-MM-DD"
},
"slug": {
"type": "string",
"description": "The place's slug – the last part of its page URL (posadita.com/p/{slug}), or from search_stays or /llms.txt."
}
},
"additionalProperties": false
}Prepare a stay for the guest to confirm and pay. It reserves NOTHING and books nothing: no nights are held, the host is not told, no e-mail is sent. It returns checkoutUrl, a link you must give to the guest; the GUEST opens it, checks the stay, agrees to the host's terms and pays. Until they do, anyone else can book those nights. The link expires after 24 hours. Never tell the guest they are booked, and never try to complete the booking for them. Quote first; contact details are optional and only pre-fill the form, which the guest can change. Limited to a few per hour per caller.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The place's slug – the last part of its page URL (posadita.com/p/{slug}), or from search_stays or /llms.txt. |
| agent | string | Who is asking – your assistant's name. Only the host's statistics see it. |
| guest | object | Optional – pre-fills the booking form. |
| adults* | integer | Adults (at least one). |
| locale | string | Language the guest reads. |
| checkIn* | string | Arrival, YYYY-MM-DD |
| message | string | Optional note to the host, pre-filled; the guest can edit it. |
One holiday rental: what it is, where (rounded when the host keeps the address private), capacity, amenities (fixed ids + labels), house rules, check-in/out times, cancellation policy (`cancellation.terms` is what the level promises; for `custom` read `note`), photos and a from-price per night. `bookable: false` means the page shows the place but takes no online booking – the guest contacts the host; do not quote or prepare a checkout for it. `bookingMode` says what happens after the guest presses book: `request` (host confirms), `request_hold` (card held, host confirms) or `instant`.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The place's slug – the last part of its page URL (posadita.com/p/{slug}), or from search_stays or /llms.txt. |
| locale | string | Language of the texts (default en). |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The place's slug – the last part of its page URL (posadita.com/p/{slug}), or from search_stays or /llms.txt."
},
"locale": {
"enum": [
"en",
"cs",
"sk",
"de",
"it",
"fr",
"pt",
"es"
],
"type": "string",
"description": "Language of the texts (default en)."
}
},
"additionalProperties": false
}The total price of one stay for a party, with its breakdown (nights, length discount, extra-guest fee, cleaning) – the same calculation that charges the guest. Amounts are integer cents. When the stay cannot be booked the answer has ok:false and a reason: unavailable (with the taken dates), min_stay (with minStay), no_checkin_day, no_checkout_day, max_guests (with maxGuests), no_rates or invalid_range. A quote holds nothing.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The place's slug – the last part of its page URL (posadita.com/p/{slug}), or from search_stays or /llms.txt. |
| adults* | integer | Adults (at least one). |
| checkIn* | string | Arrival, YYYY-MM-DD |
| checkOut* | string | Departure, YYYY-MM-DD (that night is not included) |
| children | integer | Children, if any. |
{
"type": "object",
"required": [
"slug",
"checkIn",
"checkOut",
"adults"
],
"properties": {
"slug": {
"type": "string",
"description": "The place's slug – the last part of its page URL (posadita.com/p/{slug}), or from search_stays or /llms.txt."
},
"adults": {
"type": "integer",
"minimum": 1,
"description": "Adults (at least one)."
},
"checkIn": {
"type": "string",
"format": "date",
"description": "Arrival, YYYY-MM-DD"
},
"checkOut": {
"type": "string",
"format": "date",
"description": "Departure, YYYY-MM-DD (that night is not included)"
},
"children": {
"type": "integer",
"minimum": 0,
"description": "Children, if any."
}
},
"additionalProperties": false
}Search ONE collection – a host's portfolio, a residential community or a destination – named by its slug (posadita.com/s/{slug}, or from /llms.txt). There is no search across all of Posadita. With dates and guests every place is priced for exactly that stay (totalCents, the same figure get_quote gives) and those that can be booked come first; without dates you get each place's from-price per night. Only places with bookable:true can be quoted or checked out; the others are booked by contacting their host.
| Argument | Type | Description |
|---|---|---|
| to | string | Departure, YYYY-MM-DD (with from) |
| from | string | Arrival, YYYY-MM-DD (with to) |
| guests | integer | Everyone staying, children included. |
| amenities | array | Every one of these, not any. |
| collection* | string | The collection's slug. |
| minBedrooms | integer | |
| propertyType | string | |
| availableOnly | boolean | With dates: leave out places that cannot be booked for them. |
| checkOut* |
| string |
| Departure, YYYY-MM-DD |
| children | integer | Children, if any. |
{
"type": "object",
"required": [
"slug",
"checkIn",
"checkOut",
"adults"
],
"properties": {
"slug": {
"type": "string",
"description": "The place's slug – the last part of its page URL (posadita.com/p/{slug}), or from search_stays or /llms.txt."
},
"agent": {
"type": "string",
"description": "Who is asking – your assistant's name. Only the host's statistics see it."
},
"guest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"lastName": {
"type": "string"
},
"firstName": {
"type": "string"
}
},
"description": "Optional – pre-fills the booking form.",
"additionalProperties": false
},
"adults": {
"type": "integer",
"minimum": 1,
"description": "Adults (at least one)."
},
"locale": {
"enum": [
"en",
"cs",
"sk",
"de",
"it",
"fr",
"pt",
"es"
],
"type": "string",
"description": "Language the guest reads."
},
"checkIn": {
"type": "string",
"format": "date",
"description": "Arrival, YYYY-MM-DD"
},
"message": {
"type": "string",
"description": "Optional note to the host, pre-filled; the guest can edit it."
},
"checkOut": {
"type": "string",
"format": "date",
"description": "Departure, YYYY-MM-DD"
},
"children": {
"type": "integer",
"minimum": 0,
"description": "Children, if any."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"collection"
],
"properties": {
"to": {
"type": "string",
"format": "date",
"description": "Departure, YYYY-MM-DD (with from)"
},
"from": {
"type": "string",
"format": "date",
"description": "Arrival, YYYY-MM-DD (with to)"
},
"guests": {
"type": "integer",
"minimum": 1,
"description": "Everyone staying, children included."
},
"amenities": {
"type": "array",
"items": {
"enum": [
"wifi",
"air_conditioning",
"heating",
"washing_machine",
"dryer",
"tv",
"workspace",
"kitchen",
"dishwasher",
"oven",
"microwave",
"coffee_machine",
"pool",
"terrace",
"balcony",
"garden",
"bbq",
"sea_view",
"pool_view",
"beach_nearby",
"hot_tub",
"sauna",
"fireplace",
"crib",
"high_chair",
"parking",
"ev_charger",
"elevator",
"step_free",
"ground_floor",
"self_checkin",
"pets_allowed",
"smoking_allowed"
],
"type": "string"
},
"description": "Every one of these, not any."
},
"collection": {
"type": "string",
"description": "The collection's slug."
},
"minBedrooms": {
"type": "integer",
"minimum": 1
},
"propertyType": {
"enum": [
"apartment",
"house",
"villa",
"studio",
"room",
"cottage",
"other"
],
"type": "string"
},
"availableOnly": {
"type": "boolean",
"description": "With dates: leave out places that cannot be booked for them."
}
},
"additionalProperties": false
}