Serveur MCP

smoobu

io.usefulapi/smoobu
Entreprise et opérations Voyage et hôtellerie Public et accessible MCP 2026-07-28

Ce que fait ce MCP

Manages vacation-rental properties, reservations, availability, rates, guest communications and channel-synchronized bookings.

smoobu_check_availability
Check availability and quote a stay
Check which properties can be booked for an arrival/departure pair and get the total price for each; unavailable ones come back with the reason (minimum stay, too many guests, arrival day, lead time...). Read-only, books nothing. Smoobu: POST /booking/checkApartmentAvailability.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['arrival_date', 'departure_date'], 'properties': {'guests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Number of guests.'}, 'customer_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Your Smoobu user id. Omit to look it up automatically (one extra GET /api/me).', 'exclusiveMinimum': 0}, 'arrival_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Arrival date (yyyy-mm-dd).'}, 'apartment_ids': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'description': 'Properties to check. Omit or pass [] to check all.'}, 'discount_code': {'type': 'string', 'description': 'Discount code from the booking-tool settings.'}, 'departure_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Departure date (yyyy-mm-dd).'}}}
smoobu_create_reservation
Create a reservation
Create a reservation (or a blocked period) on a property. Smoobu treats it like a booking from a channel and SYNCS the blocked dates to every connected channel (Airbnb, Booking.com, ...). Fails if the dates overlap an existing booking. This server offers no cancel — cancel it in Smoobu if needed. Which guest fields are mandatory depends on your booking-tool 'Form Content' settings. Smoobu: POST /api/reservations.
Destructif
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['apartment_id', 'arrival_date', 'departure_date'], 'properties': {'email': {'type': 'string', 'description': 'Guest email.'}, 'phone': {'type': 'string', 'description': 'Guest phone.'}, 'price': {'type': 'number', 'description': 'Total price of the booking.'}, 'adults': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Number of adults.'}, 'notice': {'type': 'string', 'description': 'Free-text notes on the booking.'}, 'address': {'type': 'object', 'properties': {'street': {'type': 'string'}, 'location': {'type': 'string', 'description': 'City / town.'}, 'postalCode': {'type': 'string'}}, 'description': 'Guest address.'}, 'country': {'type': 'string', 'description': 'Guest country.'}, 'deposit': {'type': 'number', 'description': 'Deposit amount.'}, 'children': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Number of children.'}, 'language': {'type': 'string', 'description': 'Guest language, e.g. en, de, es.'}, 'last_name': {'type': 'string', 'description': 'Guest last name.'}, 'channel_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Channel id (defaults to 70). Must be a channel the account has, e.g. 13 = Direct booking, 11 = Blocked channel.', 'exclusiveMinimum': 0}, 'first_name': {'type': 'string', 'description': 'Guest first name.'}, 'prepayment': {'type': 'number', 'description': 'Prepayment amount.'}, 'apartment_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The property id.', 'exclusiveMinimum': 0}, 'arrival_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Arrival date (yyyy-mm-dd).'}, 'arrival_time': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}$', 'description': 'Arrival time (HH:mm, 24h).'}, 'price_status': {'anyOf': [{'type': 'number', 'const': 0}, {'type': 'number', 'const': 1}], 'description': 'Price status: 0 = open / not paid, 1 = paid in full.'}, 'departure_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Departure date (yyyy-mm-dd).'}, 'departure_time': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}$', 'description': 'Departure time (HH:mm, 24h).'}, 'deposit_status': {'anyOf': [{'type': 'number', 'const': 0}, {'type': 'number', 'const': 1}], 'description': 'Deposit status: 0 = open / not paid, 1 = paid in full.'}, 'price_elements': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'amount', 'currencyCode'], 'properties': {'tax': {'type': ['number', 'null'], 'description': 'Tax, if applicable.'}, 'name': {'type': 'string', 'description': "Display name, e.g. 'Cleaning fee'."}, 'type': {'enum': ['basePrice', 'cleaningFee', 'addon', 'longStayDiscount', 'coupon'], 'type': 'string', 'description': 'Price element type.'}, 'amount': {'type': 'number', 'description': 'Amount.'}, 'quantity': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'Quantity, if applicable.'}, 'sortOrder': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Display order (ascending).'}, 'currencyCode': {'type': 'string', 'maxLength': 3, 'minLength': 3, 'description': 'ISO 4217 currency code, e.g. EUR.'}}}, 'description': 'Optional price breakdown (base price, cleaning fee, ...).'}, 'prepayment_status': {'anyOf': [{'type': 'number', 'const': 0}, {'type': 'number', 'const': 1}], 'description': 'Prepayment status: 0 = open / not paid, 1 = paid in full.'}}}
smoobu_get_apartment
Get one property
Fetch one property's details: location, time zone, rooms and beds, max occupancy, amenities, currency, min/max nightly price and type. Smoobu: GET /api/apartments/{apartmentId}.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['apartment_id'], 'properties': {'apartment_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The apartment (property) id.', 'exclusiveMinimum': 0}}}
smoobu_get_guest
Get one guest
Fetch one guest by id (the guestId on a reservation) with contact details, notes and every booking they have made. Smoobu: GET /api/guests/{guestId}.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['guest_id'], 'properties': {'guest_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The guest id.', 'exclusiveMinimum': 0}}}
smoobu_get_rates
Get rates and availability
Get the nightly price, minimum length of stay and availability (0 = not available) for each date in a range, for one or more properties. Smoobu: GET /api/rates.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['apartment_ids', 'start_date', 'end_date'], 'properties': {'end_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Last date (yyyy-mm-dd).'}, 'start_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'First date (yyyy-mm-dd).'}, 'apartment_ids': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'minItems': 1, 'description': 'Property ids.'}}}
smoobu_get_reservation
Get one reservation
Fetch one reservation by id: guest, dates, check-in/out times, channel and its reference id, price, prepayment and deposit status, and the guest-app URL. Smoobu: GET /api/reservations/{reservationId}.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['reservation_id'], 'properties': {'reservation_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The reservation (booking) id.', 'exclusiveMinimum': 0}}}
smoobu_get_reservation_placeholders
Get a reservation's message placeholders
Get every placeholder value Smoobu would substitute into a message for this reservation: guest name, dates and times, nights, price and balance, online check-in link, guest-app link, door PIN codes and more. Useful for drafting a guest message. Smoobu: GET /api/reservations/{reservationId}/placeholders.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['reservation_id'], 'properties': {'reservation_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The reservation (booking) id.', 'exclusiveMinimum': 0}}}
smoobu_get_user
Get the current user
Fetch the Smoobu user these credentials belong to (id, name, email). A cheap way to confirm the setup works; the id is the customerId used by availability checks. Smoobu: GET /api/me.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
smoobu_list_addons
List add-ons
List the bookable add-ons (towels, breakfast, late check-out...) with amount, tax, calculation type (0 per booking, 1 per person, 2 per night, 3 per person and night) and the properties they apply to; optionally for one property. Smoobu: GET /api/addons[/{apartmentId}].
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'apartment_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Only add-ons for this property.', 'exclusiveMinimum': 0}}}
smoobu_list_apartments
List properties
List every property (Smoobu calls them apartments) in the account, with id and name. Start here to get apartment ids. Smoobu: GET /api/apartments.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
smoobu_list_custom_placeholders
List custom placeholders
List the account's custom message placeholders (key, default value, and whether they are global, per booking or per property). Smoobu: GET /api/custom-placeholders.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
smoobu_list_guests
List guests
List guests from the Smoobu CRM with their emails, phone numbers, address, notes and bookings; optionally search. Smoobu: GET /api/guests.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'query': {'type': 'string', 'description': 'Search term, e.g. a name or email.'}, 'page_size': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Guests per page, 1-100.'}}}
smoobu_list_message_threads
List inbox threads
List the unified guest inbox: one thread per booking with guest name, property and the latest message, plus the unread count. Smoobu: GET /api/threads.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page_size': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Threads per page.'}, 'page_number': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'apartment_ids': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'description': 'Only threads for these properties.'}}}
smoobu_list_price_elements
List a reservation's price elements
List the financial breakdown of one reservation: base price, cleaning fee, add-ons, long-stay discounts and coupons, with amounts, tax and currency. Smoobu: GET /api/reservations/{reservationId}/price-elements.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['reservation_id'], 'properties': {'reservation_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The reservation (booking) id.', 'exclusiveMinimum': 0}}}
smoobu_list_reservation_messages
List a reservation's messages
Get the full conversation for one reservation, paginated. Each message has a subject, plain-text and HTML body, and type (1 = inbox / from guest, 2 = outbox / sent). Smoobu: GET /api/reservations/{reservationId}/messages.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['reservation_id'], 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'reservation_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The reservation (booking) id.', 'exclusiveMinimum': 0}, 'only_related_to_guest': {'type': 'boolean', 'description': 'true = only guest-facing messages; false = every message on the booking.'}}}
smoobu_list_reservations
List reservations
List reservations across all channels (Airbnb, Booking.com, direct, ...), paginated, with guest, dates, channel, price and payment status. Filter by stay range, arrival, departure, creation or modification date, and property. Smoobu: GET /api/reservations.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'to': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'End of that stay range (yyyy-mm-dd).'}, 'from': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Only bookings overlapping a stay range starting on this date (yyyy-mm-dd).'}, 'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'page_size': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Bookings per page, 1-100.'}, 'arrival_to': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Only arrivals on or before (yyyy-mm-dd).'}, 'created_to': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Only bookings created on or before (yyyy-mm-dd).'}, 'modified_to': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Only bookings modified on or before (yyyy-mm-dd).'}, 'apartment_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Only this property.', 'exclusiveMinimum': 0}, 'arrival_from': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Only arrivals on or after (yyyy-mm-dd).'}, 'created_from': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Only bookings created on or after (yyyy-mm-dd).'}, 'departure_to': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Only departures on or before (yyyy-mm-dd).'}, 'modified_from': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Only bookings modified on or after (yyyy-mm-dd).'}, 'departure_from': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Only departures on or after (yyyy-mm-dd).'}, 'exclude_blocked': {'type': 'boolean', 'description': 'Hide blocked-period bookings.'}, 'include_related': {'type': 'boolean', 'description': 'With apartment_id: also return bookings from grouped properties.'}, 'show_cancellations': {'type': 'boolean', 'description': 'Include cancelled bookings.'}, 'include_price_elements': {'type': 'boolean', 'description': "Include each booking's price breakdown."}}}
smoobu_send_message_to_guest
Send a message to a guest
Send a message to the guest of a reservation through Smoobu (it goes out on the booking's channel, e.g. the Airbnb or Booking.com inbox, or email). Delivered IMMEDIATELY and cannot be unsent — confirm the text with the user first. Smoobu: POST /api/reservations/{reservationId}/messages/send-message-to-guest.
Destructif
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['reservation_id', 'message_body'], 'properties': {'subject': {'type': 'string', 'description': 'Subject line.'}, 'message_body': {'type': 'string', 'minLength': 1, 'description': 'Message content, HTML or plain text.'}, 'reservation_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The reservation (booking) id.', 'exclusiveMinimum': 0}}}
smoobu_send_message_to_host
Post a message to the host
Post a message on a reservation's thread addressed to the Smoobu user (the host). With internal=true it is an internal note hidden from the guest — handy for logging. Cannot be unsent. Smoobu: POST /api/reservations/{reservationId}/messages/send-message-to-host.
Destructif
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['reservation_id', 'message_body'], 'properties': {'subject': {'type': 'string', 'description': 'Subject line.'}, 'internal': {'type': 'boolean', 'description': 'true = visible only to the host, hidden from the guest.'}, 'message_body': {'type': 'string', 'minLength': 1, 'description': 'Message content, HTML or plain text.'}, 'reservation_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The reservation (booking) id.', 'exclusiveMinimum': 0}}}
smoobu_set_rates
Set rates and minimum stays
Set the nightly price and/or minimum length of stay for dates on one or more properties. Smoobu PUSHES these to every channel with price sync enabled, so this changes live prices guests see. Reversible by setting the old values again — read them first with smoobu_get_rates. Each operation needs daily_price, min_length_of_stay, or both (a minimum stay alone needs an existing price). Smoobu: POST /api/rates.
Destructif
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['apartment_ids', 'operations'], 'properties': {'operations': {'type': 'array', 'items': {'type': 'object', 'required': ['dates'], 'properties': {'dates': {'type': 'array', 'items': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}(:\\d{4}-\\d{2}-\\d{2})?$'}, 'minItems': 1, 'description': "Single dates 'yyyy-mm-dd' or ranges 'yyyy-mm-dd:yyyy-mm-dd'."}, 'daily_price': {'type': 'number', 'description': 'Nightly price.', 'exclusiveMinimum': 0}, 'min_length_of_stay': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Minimum nights.'}}}, 'minItems': 1, 'description': 'Rate changes to apply.'}, 'apartment_ids': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'minItems': 1, 'description': 'Property ids.'}}}
smoobu_update_reservation
Update a reservation
Update an existing reservation's times, guest contact, notes, guest counts, language, or price / prepayment / deposit amounts and paid status. Only the fields you pass are sent. Dates and property cannot be changed here. Smoobu: PUT /api/reservations/{reservationId}.
Destructif
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['reservation_id'], 'properties': {'price': {'type': 'number', 'description': 'Total price.'}, 'adults': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Number of adults.'}, 'notice': {'type': 'string', 'description': 'Free-text notes on the booking.'}, 'deposit': {'type': 'number', 'description': 'Deposit amount.'}, 'children': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Number of children.'}, 'language': {'type': 'string', 'description': 'Guest language, e.g. en, de, es.'}, 'guest_name': {'type': 'string', 'description': 'Guest name.'}, 'prepayment': {'type': 'number', 'description': 'Prepayment amount.'}, 'guest_email': {'type': 'string', 'description': 'Guest email.'}, 'guest_phone': {'type': 'string', 'description': 'Guest phone.'}, 'arrival_time': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}$', 'description': 'Arrival time (HH:mm, 24h).'}, 'price_status': {'anyOf': [{'type': 'number', 'const': 0}, {'type': 'number', 'const': 1}], 'description': 'Price status: 0 = open / not paid, 1 = paid in full.'}, 'departure_time': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}$', 'description': 'Departure time (HH:mm, 24h).'}, 'deposit_status': {'anyOf': [{'type': 'number', 'const': 0}, {'type': 'number', 'const': 1}], 'description': 'Deposit status: 0 = open / not paid, 1 = paid in full.'}, 'reservation_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The reservation (booking) id.', 'exclusiveMinimum': 0}, 'assistant_notice': {'type': 'string', 'description': 'Instructions for your assistant / cleaner.'}, 'prepayment_status': {'anyOf': [{'type': 'number', 'const': 0}, {'type': 'number', 'const': 1}], 'description': 'Prepayment status: 0 = open / not paid, 1 = paid in full.'}}}
Ajouté
smoobu_send_message_to_host
2 October 2026 02:40
Ajouté
smoobu_send_message_to_guest
2 October 2026 02:40
Ajouté
smoobu_set_rates
2 October 2026 02:40
Ajouté
smoobu_update_reservation
2 October 2026 02:40
Ajouté
smoobu_create_reservation
2 October 2026 02:40
Ajouté
smoobu_list_custom_placeholders
2 October 2026 02:40
Ajouté
smoobu_list_addons
2 October 2026 02:40
Ajouté
smoobu_get_guest
2 October 2026 02:40
Ajouté
smoobu_list_guests
2 October 2026 02:40
Ajouté
smoobu_list_reservation_messages
2 October 2026 02:40
Ajouté
smoobu_list_message_threads
2 October 2026 02:40
Ajouté
smoobu_check_availability
2 October 2026 02:40
Ajouté
smoobu_get_rates
2 October 2026 02:40
Ajouté
smoobu_get_reservation_placeholders
2 October 2026 02:40
Ajouté
smoobu_list_price_elements
2 October 2026 02:40
Ajouté
smoobu_get_reservation
2 October 2026 02:40
Ajouté
smoobu_list_reservations
2 October 2026 02:40
Ajouté
smoobu_get_apartment
2 October 2026 02:40
Ajouté
smoobu_list_apartments
2 October 2026 02:40
Ajouté
smoobu_get_user
2 October 2026 02:40