Posadita – direct-booking holiday rentals

Holiday rentals booked direct with the host: availability, prices, checkout links. No auth.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
99%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,677Tokens (tool definitions)
~2.2 KBTypical response size
Moderate attention impact (1.31% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "booking": {
      "url": "https://mcp.posadita.com"
    }
  }
}

Remote endpoints

https://mcp.posadita.comstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_property(slug, locale)

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`.

Input Schema

{
  "type": "object",
  "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": {
      "type": "string",
      "enum": [
        "en",
        "cs",
        "sk",
        "de",
        "it",
        "fr",
        "pt",
        "es"
      ],
      "description": "Language of the texts (default en)."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢check_availability(slug, from, to)

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.

Input Schema

{
  "type": "object",
  "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."
    },
    "from": {
      "type": "string",
      "format": "date",
      "description": "First night, YYYY-MM-DD"
    },
    "to": {
      "type": "string",
      "format": "date",
      "description": "Last night, YYYY-MM-DD"
    }
  },
  "required": [
    "slug",
    "from",
    "to"
  ],
  "additionalProperties": false
}
🟢get_quote(slug, checkIn, checkOut, adults, children)

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.

Input Schema

{
  "type": "object",
  "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."
    },
    "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)"
    },
    "adults": {
      "type": "integer",
      "minimum": 1,
      "description": "Adults (at least one)."
    },
    "children": {
      "type": "integer",
      "minimum": 0,
      "description": "Children, if any."
    }
  },
  "required": [
    "slug",
    "checkIn",
    "checkOut",
    "adults"
  ],
  "additionalProperties": false
}
🟢search_stays(collection, from, to, guests, propertyType, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "collection": {
      "type": "string",
      "description": "The collection's slug."
    },
    "from": {
      "type": "string",
      "format": "date",
      "description": "Arrival, YYYY-MM-DD (with to)"
    },
    "to": {
      "type": "string",
      "format": "date",
      "description": "Departure, YYYY-MM-DD (with from)"
    },
    "guests": {
      "type": "integer",
      "minimum": 1,
      "description": "Everyone staying, children included."
    },
    "propertyType": {
      "type": "string",
      "enum": [
        "apartment",
        "house",
        "villa",
        "studio",
        "room",
        "cottage",
        "other"
      ]
    },
    "minBedrooms": {
      "type": "integer",
      "minimum": 1
    },
    "amenities": {
      "type": "array",
      "items": {
        "type": "string",
        "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"
        ]
      },
      "description": "Every one of these, not any."
    },
    "availableOnly": {
      "type": "boolean",
      "description": "With dates: leave out places that cannot be booked for them."
    }
  },
  "required": [
    "collection"
  ],
  "additionalProperties": false
}
🟡create_checkout(slug, checkIn, checkOut, adults, children, ...)

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.

Input Schema

{
  "type": "object",
  "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."
    },
    "checkIn": {
      "type": "string",
      "format": "date",
      "description": "Arrival, YYYY-MM-DD"
    },
    "checkOut": {
      "type": "string",
      "format": "date",
      "description": "Departure, YYYY-MM-DD"
    },
    "adults": {
      "type": "integer",
      "minimum": 1,
      "description": "Adults (at least one)."
    },
    "children": {
      "type": "integer",
      "minimum": 0,
      "description": "Children, if any."
    },
    "guest": {
      "type": "object",
      "description": "Optional – pre-fills the booking form.",
      "properties": {
        "firstName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "message": {
      "type": "string",
      "description": "Optional note to the host, pre-filled; the guest can edit it."
    },
    "locale": {
      "type": "string",
      "enum": [
        "en",
        "cs",
        "sk",
        "de",
        "it",
        "fr",
        "pt",
        "es"
      ],
      "description": "Language the guest reads."
    },
    "agent": {
      "type": "string",
      "description": "Who is asking – your assistant's name. Only the host's statistics see it."
    }
  },
  "required": [
    "slug",
    "checkIn",
    "checkOut",
    "adults"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools