Nomad Stays
What this MCP does
Searches and books remote-work accommodations while supporting host listing management, rooms, packages, availability, and hospitality applications.
Tools
Input schema
{'type': 'object', 'required': ['quoteId'], 'properties': {'quoteId': {'type': 'string', 'description': 'The quoteId returned by quoteStayBooking'}, 'contactName': {'type': 'string', 'description': "Guest's full name for the booking. Defaults to the member's account name if omitted."}, 'contactEmail': {'type': 'string', 'description': "Contact email for the booking. Defaults to the member's account email if omitted."}, 'contactPhone': {'type': 'string', 'description': 'Contact phone number for the booking.'}, 'specialRequest': {'type': 'string', 'description': 'Any special request to pass along to the Stay.'}}}
Input schema
{'type': 'object', 'required': ['stayId', 'checkIn', 'checkOut'], 'properties': {'stayId': {'type': 'string', 'description': 'The unique identifier of the stay'}, 'checkIn': {'type': 'string', 'description': 'Check-in date in ISO format (YYYY-MM-DD)'}, 'checkOut': {'type': 'string', 'description': 'Check-out date in ISO format (YYYY-MM-DD)'}, 'roomType': {'type': 'string', 'description': 'Optional specific room type to check availability for'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'city': {'type': 'string'}, 'address': {'type': 'string'}, 'country': {'type': 'string', 'description': 'Exact tbCountry.CountryName (not a country ID) â\x80\x94 use getCountries and take the countryName field. Must not be a sanctioned country.'}, 'website': {'type': 'string'}, 'telephone': {'type': 'string'}, 'applicantName': {'type': 'string'}, 'coworkingName': {'type': 'string'}, 'applicantEmail': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'zip': {'type': 'string'}, 'city': {'type': 'string'}, 'state': {'type': 'string'}, 'maxPax': {'type': 'string', 'description': 'Maximum participants'}, 'mobile': {'type': 'string'}, 'street': {'type': 'string'}, 'daysQty': {'type': 'string', 'description': 'Minimum 4 days, enforced server-side'}, 'website': {'type': 'string'}, 'comments': {'type': 'string'}, 'vatNumber': {'type': 'string', 'description': "Required if the postal country's vatNumberRequired flag is true (see getCountries)"}, 'hasKitchen': {'type': 'boolean'}, 'description': {'type': 'string'}, 'businessName': {'type': 'string'}, 'hasInsurance': {'type': 'boolean'}, 'monthlyPrice': {'type': 'string', 'description': 'Price per person (USD)'}, 'downloadSpeed': {'type': 'string'}, 'tourismNumber': {'type': 'string', 'description': "Required if the experience country's tourismNumberRequired flag is true (see getCountries)"}, 'applicantEmail': {'type': 'string'}, 'experienceName': {'type': 'string'}, 'workFacilities': {'enum': ['None', 'Both', 'In Room', 'CoWorking Space'], 'type': 'string'}, 'businessModelId': {'type': 'number', 'description': "tbBusinessModel.EntryID â\x80\x94 use getBusinessModels. If the experience country's bookingModelsRestricted flag is true, only a 'StayDirect'-prefixed model is accepted."}, 'postalCountryId': {'type': 'number', 'description': "tbCountry.CountryId for the applicant's billing/postal address â\x80\x94 used only to check whether a VAT number is required, and stored on the member's business profile (not on the application itself). Use getCountries to find a value."}, 'applicantLastName': {'type': 'string', 'description': "Overrides the profile default for this application only â\x80\x94 does not change the member's profile"}, 'laundryFacilities': {'enum': ['No', 'On Premises', 'Nearby'], 'type': 'string'}, 'applicantFirstName': {'type': 'string', 'description': "Overrides the profile default for this application only â\x80\x94 does not change the member's profile"}, 'experienceCountryId': {'type': 'number', 'description': 'tbCountry.CountryId for where the experience actually takes place â\x80\x94 this is the country the application itself is filed under. Use getCountries to find a value.'}, 'availabilitySupplier': {'type': 'string'}, 'overnightLocationsQty': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'zip': {'type': 'string'}, 'city': {'type': 'string'}, 'state': {'type': 'string'}, 'mobile': {'type': 'string'}, 'street': {'type': 'string'}, 'website': {'type': 'string'}, 'comments': {'type': 'string'}, 'stayName': {'type': 'string'}, 'vatNumber': {'type': 'string', 'description': "Required if the postal country's vatNumberRequired flag is true (see getCountries)"}, 'hasKitchen': {'type': 'boolean'}, 'businessName': {'type': 'string'}, 'monthlyPrice': {'type': 'string'}, 'downloadSpeed': {'type': 'string'}, 'numberOfRooms': {'type': 'string'}, 'stayCountryId': {'type': 'number', 'description': 'tbCountry.CountryId for where the Stay is actually located â\x80\x94 this is the country the application itself is filed under. Use getCountries to find a value.'}, 'tourismNumber': {'type': 'string', 'description': "Required if the stay country's tourismNumberRequired flag is true (see getCountries)"}, 'applicantEmail': {'type': 'string'}, 'workFacilities': {'enum': ['None', 'Both', 'In Room', 'CoWorking Space'], 'type': 'string'}, 'businessModelId': {'type': 'number', 'description': "tbBusinessModel.EntryID â\x80\x94 use getBusinessModels. If the stay country's bookingModelsRestricted flag is true, only a 'StayDirect'-prefixed model is accepted."}, 'postalCountryId': {'type': 'number', 'description': "tbCountry.CountryId for the applicant's billing/postal address â\x80\x94 used only to check whether a VAT number is required, and stored on the member's business profile (not on the application itself). Use getCountries to find a value."}, 'applicantLastName': {'type': 'string', 'description': "Overrides the profile default for this application only â\x80\x94 does not change the member's profile"}, 'laundryFacilities': {'enum': ['No', 'On Premises', 'Nearby'], 'type': 'string'}, 'applicantFirstName': {'type': 'string', 'description': "Overrides the profile default for this application only â\x80\x94 does not change the member's profile"}, 'availabilitySupplier': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['stayId', 'packageName'], 'properties': {'listed': {'type': 'boolean', 'description': 'OPTIONAL: whether the package is publicly listed'}, 'maxPax': {'type': 'number', 'description': 'OPTIONAL: max occupancy for this package'}, 'prices': {'type': 'array', 'items': {'type': 'object', 'required': ['days', 'buyPrice', 'listed'], 'properties': {'days': {'enum': [7, 14, 21, 30], 'type': 'number', 'description': 'Length-of-stay tier in nights â\x80\x94 must be one of 7, 14, 21, 30, the only tiers the host UI supports'}, 'listed': {'type': 'boolean', 'description': 'Whether this price tier is publicly listed'}, 'buyPrice': {'type': 'number', 'description': 'Internal cost basis. SellPrice is NOT settable â\x80\x94 it is always server-computed from buyPrice (buyPrice / 0.88, or = buyPrice for Advertising-model Stays), matching the host UI exactly'}}}, 'description': 'OPTIONAL: initial price tiers. If supplied, replaces all price rows for the package. Exactly one entry per 7/14/21/30-night tier used.'}, 'stayId': {'type': 'number', 'description': "The Stay's EntryID"}, 'endDate': {'type': 'string', 'format': 'date', 'description': 'OPTIONAL: last check-in date this package is available for'}, 'startDate': {'type': 'string', 'format': 'date', 'description': 'OPTIONAL: first check-in date this package is available for'}, 'currencyFK': {'type': 'number', 'description': 'OPTIONAL: currency id. Call getCurrencyOptions for valid values.'}, 'roomTypeFK': {'type': 'number', 'description': 'OPTIONAL: room type id this package covers. Call getRoomTypeOptions for valid values.'}, 'stayRoomFK': {'type': 'number', 'description': 'STRONGLY RECOMMENDED: the specific room this package covers (tbStaysRoom.EntryID). Call getMyStayRooms to find the right room id first. If omitted, the server guesses a room matching roomTypeFK, which may pick the wrong one when a Stay has multiple rooms of the same type.'}, 'description': {'type': 'string', 'description': 'OPTIONAL: package description'}, 'packageName': {'type': 'string', 'description': 'Package name'}, 'advertisingEndpoint': {'type': 'string', 'description': "OPTIONAL: only usable on Advertising-business-model Stays â\x80\x94 ignored otherwise, matching the host UI which hides this field for all other business models. Check getBusinessModelOptions / the Stay's businessModelFK before setting."}}}
Input schema
{'type': 'object', 'required': ['stayId', 'roomTitle'], 'properties': {'beds': {'type': 'number', 'description': 'OPTIONAL: number of beds'}, 'stayId': {'type': 'number', 'description': "The Stay's EntryID"}, 'maxPerson': {'type': 'number', 'description': 'OPTIONAL: max occupancy'}, 'mcpRoomId': {'type': 'string', 'description': 'OPTIONAL: external MCP room identifier to bind. NOT AVAILABLE for boutique Stays â\x80\x94 the host UI has no field for this there, and the API will reject it.'}, 'roomTitle': {'type': 'string', 'description': 'Room name/title'}, 'roomTypeFK': {'type': 'number', 'description': 'REQUIRED for non-boutique Stays â\x80\x94 a roomTypeId from getRoomTypeOptions(stayId). IGNORED for boutique Stays â\x80\x94 the next available Boutique1-6 slot is auto-assigned server-side, matching the host UI (which has no room-type picker for boutique room creation).'}, 'mainBedSize': {'enum': ['Single', 'Double', 'Twin', 'Queen', 'King', 'Other'], 'type': 'string', 'description': 'OPTIONAL: main bed size'}, 'otherBedSize': {'enum': ['Single', 'Double', 'Twin', 'Queen', 'King', 'Other', ''], 'type': 'string', 'description': 'OPTIONAL: other bed size, or empty for none'}, 'roomFacilityFk': {'type': 'array', 'items': {'type': 'number'}, 'description': 'OPTIONAL: facilityDetailId values from getRoomFacilityOptions() â\x80\x94 the full set of amenities this room has. Wi-Fi is added automatically even if omitted.'}, 'roomDescription': {'type': 'string', 'description': 'OPTIONAL: room description'}}}
Input schema
{'type': 'object', 'required': ['stayId', 'roomId', 'roomArea', 'fileName'], 'properties': {'roomId': {'type': 'number', 'description': "The room's EntryID"}, 'stayId': {'type': 'number', 'description': "The Stay's EntryID"}, 'fileName': {'type': 'string', 'description': 'The exact file name from getMyStayRooms'}, 'roomArea': {'enum': ['photos', 'workspace'], 'type': 'string', 'description': "'photos' for the regular room gallery, 'workspace' for the room's coworking gallery"}}}
Input schema
{'type': 'object', 'required': ['stayId', 'packageId'], 'properties': {'stayId': {'type': 'number', 'description': "The Stay's EntryID"}, 'packageId': {'type': 'number', 'description': "The package's EntryID (tbStayPackages) to delete"}}}
Input schema
{'type': 'object', 'required': ['stayId', 'area', 'fileName'], 'properties': {'area': {'enum': ['listing', 'main', 'workspace', 'host'], 'type': 'string', 'description': "Which photo area the file belongs to (room photos aren't supported by this tool â\x80\x94 manage those via updateStayRoom)"}, 'stayId': {'type': 'number', 'description': "The Stay's EntryID"}, 'fileName': {'type': 'string', 'description': "The exact file name from getMyStayPhotos, e.g. '69bdf22cdb0c43a7be3e825a0a3a2074.jpg'"}}}
Input schema
{'type': 'object', 'required': ['stayId', 'roomId'], 'properties': {'roomId': {'type': 'number', 'description': "The room's EntryID â\x80\x94 use getMyStayRooms to find it"}, 'stayId': {'type': 'number', 'description': "The Stay's EntryID"}}}
Input schema
{'type': 'object', 'required': ['stayId', 'preferredCheckIn', 'minLengthOfStay'], 'properties': {'stayId': {'type': 'string', 'description': 'The unique identifier of the stay'}, 'maxLengthOfStay': {'type': 'number', 'description': 'Maximum length of stay in days (optional)'}, 'minLengthOfStay': {'type': 'number', 'description': 'Minimum length of stay in days'}, 'preferredCheckIn': {'type': 'string', 'description': 'Preferred check-in date in ISO format (YYYY-MM-DD)'}, 'searchWindowDays': {'type': 'number', 'description': 'Number of days before and after preferred date to search (default: 90)'}}}
Input schema
{'type': 'object', 'required': ['filterName'], 'properties': {'filterName': {'enum': ['Children Allowed', 'Pets Allowed', 'Parking'], 'type': 'string', 'description': 'Which picklist to fetch options for'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': ['stayId', 'year', 'month', 'minLengthOfStay'], 'properties': {'year': {'type': 'number', 'description': 'Year (e.g., 2026)'}, 'month': {'type': 'number', 'description': 'Month number (1-12, where 1=January, 12=December)'}, 'stayId': {'type': 'string', 'description': 'The unique identifier of the stay'}, 'minLengthOfStay': {'type': 'number', 'description': 'Minimum length of stay in days required'}}}
Input schema
{'type': 'object', 'required': ['pnr'], 'properties': {'pnr': {'type': 'string', 'description': 'The booking reference (PNR) returned by bookStay'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': ['applicationId'], 'properties': {'applicationId': {'type': 'number', 'description': "The application's ID (use listCoworkingApplications to find it)"}}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'required': ['applicationId'], 'properties': {'applicationId': {'type': 'number', 'description': "The application's ID (use listExperienceApplications to find it)"}}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The WordPress post ID of the Help Center article (e.g., '123')"}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Maximum number of results to return (default: 20)'}, 'category': {'type': 'string', 'description': "Optional category name or partial match to filter adverts (e.g. 'eSIM', 'Travel Insurance'). Use getMarketplaceCategories to see available categories."}}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': ['stayId'], 'properties': {'stayId': {'type': 'number', 'description': "The Stay's EntryID (use getMyStays to find it)"}}}
Input schema
{'type': 'object', 'required': ['stayId'], 'properties': {'stayId': {'type': 'number', 'description': "The Stay's EntryID (use getMyStays to find it)"}}}
Input schema
{'type': 'object', 'required': ['stayId', 'group'], 'properties': {'group': {'type': 'string', 'description': "Exact facility group name, e.g. 'Languages Spoken', 'General', 'Services', 'Meal', 'Position', 'Remote Worker' (call getFacilityGroups for the full list)"}, 'stayId': {'type': 'number', 'description': "The Stay's EntryID"}}}
Input schema
{'type': 'object', 'required': ['stayId'], 'properties': {'stayId': {'type': 'number', 'description': "The Stay's EntryID (use getMyStays to find it)"}}}
Input schema
{'type': 'object', 'required': ['stayId'], 'properties': {'stayId': {'type': 'number', 'description': "The Stay's EntryID (use getMyStays to find it)"}}}
Input schema
{'type': 'object', 'required': ['stayId'], 'properties': {'stayId': {'type': 'number', 'description': "The Stay's EntryID (use getMyStays to find it)"}}}
Input schema
{'type': 'object', 'required': ['stayId'], 'properties': {'stayId': {'type': 'number', 'description': "The Stay's EntryID (use getMyStays to find it)"}}}
Input schema
{'type': 'object', 'required': ['stayId'], 'properties': {'stayId': {'type': 'number', 'description': "The Stay's EntryID (use getMyStays to find it)"}}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': ['productId'], 'properties': {'productId': {'type': 'number', 'description': "The product's EntryID â\x80\x94 use 8 for the Stay Application fee"}}}
Input schema
{'type': 'object', 'required': ['saleId'], 'properties': {'saleId': {'type': 'string', 'description': 'The saleId returned by purchaseProduct'}}}
Input schema
{'type': 'object', 'required': ['roomId'], 'properties': {'roomId': {'type': 'string', 'description': 'The unique identifier of the room (tbStaysRoom.EntryID)'}}}
Input schema
{'type': 'object', 'required': ['roomId', 'checkIn', 'checkOut'], 'properties': {'roomId': {'type': 'string', 'description': 'The unique identifier of the room (tbStaysRoom.EntryID)'}, 'checkIn': {'type': 'string', 'description': 'Check-in date in ISO format (YYYY-MM-DD)'}, 'checkOut': {'type': 'string', 'description': 'Check-out date in ISO format (YYYY-MM-DD)'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': ['stayId'], 'properties': {'stayId': {'type': 'number', 'description': "The Stay's EntryID"}}}
Input schema
{'type': 'object', 'required': ['applicationId'], 'properties': {'applicationId': {'type': 'number', 'description': "The application's ID (use listStayApplications to find it)"}}}
Input schema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Stay identifier (searches the EntryId field)'}}}
Input schema
{'type': 'object', 'required': ['amenities'], 'properties': {'limit': {'type': 'number', 'description': 'Maximum number of results to return (default: 25)'}, 'amenities': {'type': 'array', 'items': {'type': 'string'}, 'description': "Array of amenity names to search for (e.g., ['WiFi', 'Air Conditioning', 'Pool']). Use getAllAmenities to see all available amenities."}, 'matchType': {'enum': ['any', 'all'], 'type': 'string', 'description': "OPTIONAL: 'any' (default) finds stays with at least one amenity, 'all' finds stays with all amenities"}, 'minWifiSpeed': {'type': 'number', 'description': 'OPTIONAL: Minimum WiFi download speed in Mbps (default: 0). Only returns stays with WiFi speed at or above this threshold.'}}}
Input schema
{'type': 'object', 'required': ['durationDays', 'maxPrice', 'currency'], 'properties': {'limit': {'type': 'number', 'description': 'Maximum number of results to return (default: 15)'}, 'currency': {'type': 'string', 'description': "Currency code (e.g., 'EUR', 'USD', 'GBP')"}, 'maxPrice': {'type': 'number', 'description': 'Maximum price for the entire duration (e.g., 1000 for EUR 1000)'}, 'continent': {'type': 'string', 'description': "OPTIONAL: Continent name (e.g., 'Europe', 'Asia', 'Africa'). Filters results to stays in countries on this continent. If omitted, searches all continents globally."}, 'checkInDate': {'type': 'string', 'description': "OPTIONAL: Check-in date. Can be a full date (e.g., '2026-05-15'), a month name (e.g., 'May' ? uses May 1st), or omit for today (2026-01-19)"}, 'countryCode': {'type': 'string', 'description': "OPTIONAL: 2-letter country code (e.g., 'ES', 'PT') or country name (e.g., 'Spain'). If omitted, searches all countries globally."}, 'durationDays': {'type': 'number', 'description': 'Duration of stay in days (e.g., 30 for 1 month, 90 for 3 months)'}}}
Input schema
{'type': 'object', 'required': ['continent'], 'properties': {'limit': {'type': 'number', 'description': 'Maximum number of results to return (default: 15)'}, 'continent': {'type': 'string', 'description': "Continent name or partial match (e.g., 'Europe', 'Asia', 'Africa')"}}}
Input schema
{'type': 'object', 'required': ['countrycode'], 'properties': {'limit': {'type': 'number', 'description': 'Maximum number of results to return (default: 15)'}, 'countrycode': {'type': 'string', 'description': "2-letter country code (e.g., 'MA', 'US') or partial country name (e.g., 'Antigua')"}}}
Input schema
{'type': 'object', 'required': ['lifestyle'], 'properties': {'limit': {'type': 'number', 'description': 'Maximum number of results to return (default: 15)'}, 'lifestyle': {'type': 'string', 'description': "Lifestyle/genre category name or partial match (e.g., 'Digital Nomad', 'Beach', 'City'). Use getAllLifestyles tool to see all available categories."}}}
Input schema
{'type': 'object', 'required': ['location'], 'properties': {'limit': {'type': 'number', 'description': 'Maximum number of results to return (default: 15)'}, 'location': {'type': 'string', 'description': "Location search term to match against City, State, location_name, location_country, or location_description (e.g., 'Paris', 'California', 'Beach', 'Mountain')"}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Maximum number of results to return (default: 15)'}, 'minWiFiDownloadSpeed': {'type': 'number', 'description': 'Minimum WiFi download speed in Mbps (default: 10)'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': ['stayId', 'fromDate', 'minLengthOfStay'], 'properties': {'stayId': {'type': 'string', 'description': 'The unique identifier of the stay'}, 'fromDate': {'type': 'string', 'description': "Start of the search window, ISO format (YYYY-MM-DD). Usually today's date."}, 'windowDays': {'type': 'number', 'description': 'How many days forward from fromDate to search (default: 180, i.e. 6 months)'}, 'minLengthOfStay': {'type': 'number', 'description': 'Minimum length of stay in days required (e.g. 30 for a month-long stay)'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': ['productId'], 'properties': {'productId': {'type': 'number', 'description': "The product's EntryID â\x80\x94 use 8 for the Stay Application fee"}, 'applicationId': {'type': 'number', 'description': "Optional: if this purchase is paying a Stay Application's fee, pass its applicationId (from createStayApplication) so the payment is applied back to that application automatically once paid"}}}
Input schema
{'type': 'object', 'required': ['packageId', 'checkIn', 'checkOut'], 'properties': {'pets': {'type': 'number', 'description': 'Number of pets. Defaults to 0.'}, 'rooms': {'type': 'number', 'description': 'Number of rooms to book. Defaults to 1.'}, 'adults': {'type': 'number', 'description': 'Number of adult guests. Defaults to 1.'}, 'checkIn': {'type': 'string', 'description': 'Check-in date, YYYY-MM-DD'}, 'checkOut': {'type': 'string', 'description': 'Check-out date, YYYY-MM-DD'}, 'children': {'type': 'number', 'description': 'Number of child guests. Defaults to 0.'}, 'packageId': {'type': 'number', 'description': "The Stay package's ID (from getPackages or search/browse tools)"}}}
Input schema
{'type': 'object', 'required': ['stayId', 'roomId', 'roomArea', 'fileNames'], 'properties': {'roomId': {'type': 'number', 'description': "The room's EntryID"}, 'stayId': {'type': 'number', 'description': "The Stay's EntryID"}, 'roomArea': {'enum': ['photos', 'workspace'], 'type': 'string', 'description': "'photos' for the regular room gallery, 'workspace' for the room's coworking gallery"}, 'fileNames': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The complete gallery file names in the new desired order â\x80\x94 must match the current set exactly (call getMyStayRooms first)'}}}
Input schema
{'type': 'object', 'required': ['stayId', 'area', 'fileNames'], 'properties': {'area': {'enum': ['listing', 'workspace'], 'type': 'string', 'description': 'Only these two areas support reordering'}, 'stayId': {'type': 'number', 'description': "The Stay's EntryID"}, 'fileNames': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The complete gallery file names in the new desired order â\x80\x94 must match the current set exactly (call getMyStayPhotos first)'}}}
Input schema
{'type': 'object', 'required': ['applicationId'], 'properties': {'city': {'type': 'string'}, 'address': {'type': 'string'}, 'country': {'type': 'string', 'description': 'Exact tbCountry.CountryName (not a country ID) â\x80\x94 use getCountries.'}, 'website': {'type': 'string'}, 'telephone': {'type': 'string'}, 'applicantName': {'type': 'string'}, 'applicationId': {'type': 'number', 'description': "The application's ID"}, 'coworkingName': {'type': 'string'}, 'applicantEmail': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['applicationId'], 'properties': {'zip': {'type': 'string'}, 'city': {'type': 'string'}, 'state': {'type': 'string'}, 'maxPax': {'type': 'string'}, 'mobile': {'type': 'string'}, 'street': {'type': 'string'}, 'daysQty': {'type': 'string', 'description': 'Minimum 4 days, enforced server-side'}, 'website': {'type': 'string'}, 'comments': {'type': 'string'}, 'vatNumber': {'type': 'string'}, 'hasKitchen': {'type': 'boolean'}, 'description': {'type': 'string'}, 'businessName': {'type': 'string'}, 'hasInsurance': {'type': 'boolean'}, 'monthlyPrice': {'type': 'string'}, 'applicationId': {'type': 'number', 'description': "The application's ID"}, 'downloadSpeed': {'type': 'string'}, 'tourismNumber': {'type': 'string'}, 'applicantEmail': {'type': 'string'}, 'experienceName': {'type': 'string'}, 'workFacilities': {'enum': ['None', 'Both', 'In Room', 'CoWorking Space'], 'type': 'string'}, 'businessModelId': {'type': 'number', 'description': 'tbBusinessModel.EntryID â\x80\x94 use getBusinessModels.'}, 'postalCountryId': {'type': 'number', 'description': 'tbCountry.CountryId â\x80\x94 used only for the VAT check, stored on the business profile, not on the application. Use getCountries.'}, 'applicantLastName': {'type': 'string'}, 'laundryFacilities': {'enum': ['No', 'On Premises', 'Nearby'], 'type': 'string'}, 'applicantFirstName': {'type': 'string'}, 'experienceCountryId': {'type': 'number', 'description': 'tbCountry.CountryId â\x80\x94 the country the application itself is filed under. Use getCountries.'}, 'availabilitySupplier': {'type': 'string'}, 'overnightLocationsQty': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['applicationId'], 'properties': {'zip': {'type': 'string'}, 'city': {'type': 'string'}, 'state': {'type': 'string'}, 'mobile': {'type': 'string'}, 'street': {'type': 'string'}, 'website': {'type': 'string'}, 'comments': {'type': 'string'}, 'stayName': {'type': 'string'}, 'vatNumber': {'type': 'string'}, 'hasKitchen': {'type': 'boolean'}, 'businessName': {'type': 'string'}, 'monthlyPrice': {'type': 'string'}, 'applicationId': {'type': 'number', 'description': "The application's ID"}, 'downloadSpeed': {'type': 'string'}, 'numberOfRooms': {'type': 'string'}, 'stayCountryId': {'type': 'number', 'description': 'tbCountry.CountryId â\x80\x94 the country the application itself is filed under. Use getCountries.'}, 'tourismNumber': {'type': 'string'}, 'applicantEmail': {'type': 'string'}, 'workFacilities': {'enum': ['None', 'Both', 'In Room', 'CoWorking Space'], 'type': 'string'}, 'businessModelId': {'type': 'number', 'description': 'tbBusinessModel.EntryID â\x80\x94 use getBusinessModels.'}, 'postalCountryId': {'type': 'number', 'description': 'tbCountry.CountryId â\x80\x94 used only for the VAT check, stored on the business profile, not on the application. Use getCountries.'}, 'applicantLastName': {'type': 'string'}, 'laundryFacilities': {'enum': ['No', 'On Premises', 'Nearby'], 'type': 'string'}, 'applicantFirstName': {'type': 'string'}, 'availabilitySupplier': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Maximum number of results to return (default: 15)'}, 'query': {'type': 'string', 'description': 'Search term to match against Help Center knowledgebase articles'}}}
Input schema
{'type': 'object', 'required': ['firstName', 'lastName', 'email', 'telephone', 'password', 'acceptGdpr'], 'properties': {'email': {'type': 'string', 'description': "A real email address the person controls â\x80\x94 the confirmation link is sent here and the account stays inactive until it's clicked"}, 'lastName': {'type': 'string', 'description': "The person's last name"}, 'password': {'type': 'string', 'description': 'Account password, minimum 6 characters'}, 'firstName': {'type': 'string', 'description': "The person's first name"}, 'telephone': {'type': 'string', 'description': 'Contact telephone number'}, 'acceptGdpr': {'type': 'boolean', 'description': "Must be true â\x80\x94 the person has agreed to NomadStays' GDPR terms"}}}
Input schema
{'type': 'object', 'required': ['applicationId'], 'properties': {'applicationId': {'type': 'number', 'description': "The application's ID"}}}
Input schema
{'type': 'object', 'required': ['applicationId'], 'properties': {'applicationId': {'type': 'number', 'description': "The application's ID"}}}
Input schema
{'type': 'object', 'required': ['applicationId'], 'properties': {'applicationId': {'type': 'number', 'description': "The application's ID"}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'vatNumber': {'type': 'string'}, 'businessName': {'type': 'string'}, 'entityAccount': {'type': 'boolean', 'description': 'Whether the host operates as a registered business entity'}, 'businessNumber': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['stayId'], 'properties': {'stayId': {'type': 'number', 'description': "The Stay's EntryID"}, 'tikTok': {'type': 'string'}, 'twitter': {'type': 'string', 'description': 'X (Twitter) profile link'}, 'website': {'type': 'string'}, 'youtube': {'type': 'string'}, 'linkedIn': {'type': 'string'}, 'instagram': {'type': 'string'}, 'ownerName': {'type': 'string'}, 'ownerEmail': {'type': 'string'}, 'managerName': {'type': 'string', 'description': "The day-to-day contact person's name (not necessarily the owner)"}, 'ownerMobile': {'type': 'string'}, 'bookingEmail': {'type': 'string', 'description': 'Email guests use to reach the Stay about bookings'}, 'bookingPhone': {'type': 'string'}, 'facebookPage': {'type': 'string'}, 'hostFullName': {'type': 'string', 'description': 'Display name shown to guests as the host'}, 'managerEmail': {'type': 'string'}, 'bookingMobile': {'type': 'string'}, 'managerMobile': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['stayId'], 'properties': {'title': {'type': 'string', 'description': 'OPTIONAL: new title'}, 'stayId': {'type': 'number', 'description': "The Stay's EntryID"}, 'description': {'type': 'string', 'description': 'OPTIONAL: new description'}}}
Input schema
{'type': 'object', 'required': ['stayId', 'group', 'facilityDetailIds'], 'properties': {'group': {'type': 'string', 'description': 'Exact facility group name, matching what getMyStayFacilities was called with'}, 'stayId': {'type': 'number', 'description': "The Stay's EntryID"}, 'facilityDetailIds': {'type': 'array', 'items': {'type': 'number'}, 'description': 'The FULL list of facilityDetailId values that should be selected after this call â\x80\x94 call getMyStayFacilities first to see valid IDs. An empty array clears all selections in this group.'}}}
Input schema
{'type': 'object', 'required': ['stayId'], 'properties': {'city': {'type': 'string'}, 'state': {'type': 'string'}, 'geoLat': {'type': 'number', 'description': 'Map pin latitude'}, 'geoLng': {'type': 'number', 'description': 'Map pin longitude'}, 'stayId': {'type': 'number', 'description': "The Stay's EntryID"}, 'address': {'type': 'string'}, 'reason1': {'type': 'string', 'description': "First 'Why Choose Us' reason shown to guests"}, 'reason2': {'type': 'string'}, 'reason3': {'type': 'string'}, 'postCode': {'type': 'string'}, 'checkInTo': {'type': 'string'}, 'countryId': {'type': 'string', 'description': 'A country ID from getCountryOptions â\x80\x94 NOT a country name.'}, 'parkingId': {'type': 'string', 'description': "An optionId from getAdditionalInformationOptions(filterName='Parking') â\x80\x94 NOT a boolean."}, 'checkOutTo': {'type': 'string'}, 'cxPolicyId': {'type': 'string', 'description': 'A cxPolicyId from getCancellationPolicyOptions.'}, 'stayTypeId': {'type': 'number', 'description': 'A stayTypeId from getStayTypeOptions.'}, 'totalRooms': {'type': 'number'}, 'checkInFrom': {'type': 'string'}, 'fullPayment': {'type': 'boolean', 'description': "Whether guests must pay in full up front (vs. pay on arrival). Only settable if the Stay's country allows it â\x80\x94 check fullPaymentAllowedByCountry from getMyStayOrganisationalData first; writing true when the country doesn't allow it will be rejected."}, 'checkOutFrom': {'type': 'string'}, 'earlyCheckIn': {'type': 'boolean'}, 'lateCheckout': {'type': 'boolean'}, 'petsAllowedId': {'type': 'string', 'description': "An optionId from getAdditionalInformationOptions(filterName='Pets Allowed') â\x80\x94 NOT a boolean."}, 'tourismNumber': {'type': 'string'}, 'receiveReviews': {'type': 'boolean'}, 'childrenAllowedId': {'type': 'string', 'description': "An optionId from getAdditionalInformationOptions(filterName='Children Allowed') â\x80\x94 NOT a boolean."}, 'customCxPolicyLink': {'type': 'string'}, 'registeredBusiness': {'type': 'boolean', 'description': 'Whether the Stay is officially registered for tourism/lodging'}, 'landRegistrationNumber': {'type': 'string'}, 'checkinLocationWhat3Words': {'type': 'string', 'description': 'what3words location for guest check-in'}}}
Input schema
{'type': 'object', 'required': ['stayId', 'packageId'], 'properties': {'listed': {'type': 'boolean'}, 'maxPax': {'type': 'number'}, 'prices': {'type': 'array', 'items': {'type': 'object', 'required': ['days', 'buyPrice', 'listed'], 'properties': {'days': {'enum': [7, 14, 21, 30], 'type': 'number', 'description': 'Length-of-stay tier in nights â\x80\x94 must be one of 7, 14, 21, 30'}, 'listed': {'type': 'boolean'}, 'buyPrice': {'type': 'number', 'description': 'Internal cost basis. SellPrice is NOT settable â\x80\x94 always server-computed from buyPrice'}}}, 'description': 'OPTIONAL: replaces ALL price rows for this package when supplied. Exactly one entry per 7/14/21/30-night tier used.'}, 'stayId': {'type': 'number', 'description': "The Stay's EntryID"}, 'endDate': {'type': 'string', 'format': 'date', 'description': 'OPTIONAL: last check-in date this package is available for'}, 'isActive': {'type': 'boolean', 'description': "OPTIONAL: archive (false) or restore (true) this package â\x80\x94 cascades to 'listed' on all its price tiers, matching the host UI's Archive/Restore actions"}, 'packageId': {'type': 'number', 'description': "The package's EntryID (tbStayPackages)"}, 'startDate': {'type': 'string', 'format': 'date', 'description': 'OPTIONAL: first check-in date this package is available for'}, 'currencyFK': {'type': 'number', 'description': 'Call getCurrencyOptions for valid values.'}, 'roomTypeFK': {'type': 'number', 'description': 'Call getRoomTypeOptions for valid values.'}, 'stayRoomFK': {'type': 'number', 'description': 'The specific room this package covers (tbStaysRoom.EntryID). Call getMyStayRooms to find valid values.'}, 'description': {'type': 'string'}, 'packageName': {'type': 'string'}, 'advertisingEndpoint': {'type': 'string', 'description': 'OPTIONAL: only usable on Advertising-business-model Stays â\x80\x94 ignored otherwise, matching the host UI which hides this field for all other business models.'}}}
Input schema
{'type': 'object', 'required': ['stayId', 'roomId'], 'properties': {'beds': {'type': 'number'}, 'roomId': {'type': 'number', 'description': "The room's EntryID (tbStaysRoom) â\x80\x94 use getMyStayRooms to find it"}, 'stayId': {'type': 'number', 'description': "The Stay's EntryID"}, 'maxPerson': {'type': 'number'}, 'mcpRoomId': {'type': 'string', 'description': 'External MCP room identifier. NOT AVAILABLE for boutique Stays â\x80\x94 the host UI has no field for this there, and the API will reject it.'}, 'roomTitle': {'type': 'string'}, 'roomTypeFK': {'type': 'number', 'description': 'A roomTypeId from getRoomTypeOptions(stayId).'}, 'mainBedSize': {'enum': ['Single', 'Double', 'Twin', 'Queen', 'King', 'Other'], 'type': 'string'}, 'otherBedSize': {'enum': ['Single', 'Double', 'Twin', 'Queen', 'King', 'Other', ''], 'type': 'string'}, 'roomFacilityFk': {'type': 'array', 'items': {'type': 'number'}, 'description': 'The FULL replacement list of facilityDetailId values from getRoomFacilityOptions() â\x80\x94 anything not included will be removed (except Wi-Fi, which is always kept).'}, 'roomDescription': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['stayId', 'area'], 'properties': {'url': {'type': 'string', 'description': 'A public https:// URL the server can download the image from (e.g. a Google Drive or Dropbox share link). Supply this OR base64, not both.'}, 'area': {'enum': ['listing', 'main', 'workspace', 'host', 'room'], 'type': 'string', 'description': "Which photo area this belongs to:\n- 'listing': general Stay gallery photos (multiple allowed, min 1920x1080 landscape)\n- 'main': the single hero/cover photo shown first for the Stay (min 1920x1080 landscape, replaces any existing main photo)\n- 'workspace': coworking/workspace photos for the whole Stay (multiple allowed, min 1920x1080 landscape)\n- 'host': a photo of the HOST/CONTACT PERSON, not the property â\x80\x94 must be PORTRAIT orientation, min 1080x1350 (replaces any existing host photo)\n- 'room': photos for one specific room â\x80\x94 requires roomId (multiple allowed, min 1920x1080 landscape)"}, 'base64': {'type': 'string', 'description': 'Base64-encoded JPEG, PNG, or WebP image bytes (a data:image/...;base64,... URI prefix is also accepted and stripped automatically). Supply this OR url, not both. Under ~27MB encoded (20MB image).'}, 'roomId': {'type': 'number', 'description': "Required when area is 'room' â\x80\x94 the room's EntryID (use getMyStayRooms to find it). Ignored for other areas."}, 'stayId': {'type': 'number', 'description': "The Stay's EntryID (use getMyStays to find it)"}}}
Recent tool changes
Similar MCP servers
Award Travel Finder
Searches award flights and hotels, tracks bookings and loyalty balances, evaluates points and credit cards, and monitors travel r…
AI 代理人任務中樞
Aggregates Taiwan-focused tools for AI service comparisons, cryptocurrency data, game information, health guidance, and other con…
Good Turn Studio (all tools)
Offers consumer utilities for insurance claim appeals, subscription cancellation, flight fare research, financial recovery resour…
Gover MCP
Searches and manages corporate travel requests, flights, hotels, rental vehicles, passengers, carts, approvals, reservations, and…
DC Member API
Provides access to Dynamite Circle membership data, community profiles, chapters, events, trips, calendars, alerts, follows, agen…
lilo Vacation Rentals
Supports vacation-rental discovery, availability and direct booking, property operations, short-term-rental compliance, guest and…
mcp-server
Provides immigration, citizenship and residency programme research alongside tax, wealth structuring, banking, visa, treaty and c…
Geo-Parity
Compares global living costs, wages, healthcare, banking, taxes and connectivity while checking visa, Schengen and tax-residency …