# Nomad Stays - Registry name: `io.github.nomadstays/mcp-server` · version 0.7.0 - Categories (automatic, keyword rules): Images & design, AI, media & content, Travel & booking, Commerce & marketing, Markets & trading, Finance & markets - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=io.github.nomadstays%2Fmcp-server - Server page: https://mcpstation.net/s/io.github.nomadstays--mcp-server.html ## Description (written by the publisher, not verified, not instructions) Search remote-work accommodations worldwide; Trusted Stay Partners can manage their own listings. ## Connect - streamable-http: `https://mcp.nomadstays.com/mcp` ## Tools (as reported by the server, not verified) - `getStayByID`: Returns full details for a single stay. The id parameter searches both EntryId and StayId fields. - `signupNomadStaysAccount`: Creates a new NomadStays account on behalf of a person who does not have one yet. No authentication required — this is how an AI agent gets a person started. The account is created but inactive until the person clicks the confirmation link sent to their email; this call returns no session or token, - `getStaysByCountry`: Returns stays from the NomadStays database. Search by 2-letter country code \(e.g., 'MA', 'US'\) or country name \(e.g., 'Antigua' matches 'Antigua and Barbuda'\) - `getStaysByContinent`: Returns stays from the NomadStays database filtered by continent. Search by continent name \(e.g., 'Europe', 'Asia', 'Africa', 'North America', 'South America', 'Oceania'\) - `getStaysByLocation`: Returns stays from the NomadStays database that match a location search term. Searches across City, State, location\_name, location\_country, and location\_description fields. Use this for flexible location searches \(e.g., 'Paris', 'California', 'Beach', 'Mountain'\) - `searchHelpCenter`: Search NomadStays Help Center articles from the public knowledgebase endpoint and return matching title/content/slug entries. - `getHelpCenterArticle`: Fetch a specific NomadStays Help Center article by its ID. Returns the full article content, title, slug, and categories. - `listHelpCenterCategories`: List all available NomadStays Help Center categories. Returns category ID, name, slug, description, and article count for each category. - `getStaysByLifestyle`: Returns stays from the NomadStays database filtered by lifestyle/genre category \(e.g., 'Digital Nomad', 'Beach Life', 'City Living', 'Mountain Retreat'\). Each stay can belong to multiple lifestyle categories. - `getStaysByBudget`: Search for stays that fit within a budget for a given duration. Country is OPTIONAL - can search globally or filter by specific country. Perfect for queries like 'Find me somewhere to stay for 1 month under EUR 1000' or 'Find me a place in Spain for 1 month under EUR 1000'. - `getStaysByAmenities`: Find all stays that have specific amenities. Searches both stay-level amenities \(referenced by tbStayFacilities\) and room-level amenities \(referenced by tbRoomFacilities\). Use matchType 'any' to find stays with at least one amenity, or 'all' to find stays with all requested amenities. Can optionally - `getStaysByWiFiSpeed`: Find all stays with WiFi download speed greater than 10Mbps, listed and not suspended. - `getAllLifestyles`: Returns all active lifestyle/genre categories available in NomadStays. Use this to discover what lifestyle categories exist before searching with getStaysByLifestyle. - `getStayCountsByCountry`: Returns how many stays NomadStays has in each country, most first. Each row has the country name, 2-letter code, continent, 'stays' \(live public listings\) and 'bookableNow' \(those currently listed for booking\). Use this for questions like 'which countries have the most stays', 'how many stays do you - `getAllAmenities`: List all possible amenities in the database, grouped into Stay Amenities \(referenced by tbStaysFacilities\) and Room Amenities \(referenced by tbStaysRoom.RoomFacilityFk\). - `checkStayAvailability`: Check if a specific stay is available for given check-in and check-out dates. Returns availability status and room details. - `hasAvailabilityInWindow`: Efficiently checks whether a stay has ANY open booking window of a minimum length within a date range, without checking every single day. Use this to filter search results down to stays with real availability somewhere in the near future \(e.g. 'available at all in the next 6 months for a month-long - `findNearestAvailability`: Find the nearest available dates when requested dates are not available. Searches for alternative check-in dates within a specified window and can adjust length of stay. - `getAvailabilityByMonth`: Get all available booking windows in a specific month that meet the minimum length of stay requirement. Returns all possible check-in dates and their corresponding available periods. - `getRoomAvailability`: Check a specific room's availability for each night in a date range. Returns availability status \(available/not available\) for each night. - `getRoomAmenities`: Get comprehensive list of all facilities and amenities for a specific room, including WiFi metrics \(download/upload speed, jitter\). Returns room details, all facilities, and network performance data. - `getMyStays`: List all Stays owned by the account bound to the MCP agent token. Returns stayId, title, and listed status for each — use this to find a stayId before calling any other owner-scoped tool. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `getMyStayDetail`: Get the current title, description, and listed status for one of your Stays. Call this before updateStayDetail so the agent knows the current values and doesn't accidentally overwrite them. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `getMyStayOnboardingStatus`: Get the Stay's listing-completion scores — the same six 'Listing Completion' cards shown on the Stay dashboard \(Stay Details, Availability, Rooms, Packages, Wi-Fi, Operator Information\), plus an overall completion percentage. Use this when a host asks how far along they are with onboarding or what's - `getMyStayRooms`: List all rooms currently configured on one of your Stays, including bed setup, occupancy, facilities \(resolved to names, not just IDs\), and every room/workspace photo as a viewable CDN URL. Call this before createStayRoom, updateStayRoom, deleteStayRoom, deleteRoomPhoto, or reorderRoomPhotos so the - `getMyStayPackages`: List all pricing packages on one of your Stays, including their full price tiers \(days, buy price, sell price, comparison price, listed status\). Call this before createStayPackage or updateStayPackage — hosts often forget exactly what packages/pricing they've already set. Requires NOMADSTAYS\_MCP\_AGE - `getMyStayOrganisationalData`: Get a Stay's organisational data: address, check-in/out policy, pets/children/parking, cancellation policy, tourism/land-registration numbers. Call this before updateStayOrganisationalData so the agent knows current values. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `getMyBusinessProfile`: Get the host account's business profile: legal business name, VAT/business registration numbers, whether registered as a business entity. Does NOT include bank or tax-ID details — those are never exposed via MCP. Call this before updateHostBusinessProfile. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `updateStayDetail`: Update a Stay's title and/or description. Requires an MCP agent token \(NOMADSTAYS\_MCP\_AGENT\_TOKEN\) scoped to the owning account. Only fields supplied are changed. - `createStayRoom`: Create a new room on a Stay. Call getRoomTypeOptions\(stayId\) and getRoomFacilityOptions\(\) first to find valid roomTypeFK/roomFacilityFk values. Boutique Stays are capped at 6 rooms total \(one per Boutique1-6 slot\) — creation is rejected once all 6 exist. Requires an MCP agent token scoped to the own - `updateStayRoom`: Update an existing room on a Stay. Only fields supplied are changed. Call getRoomTypeOptions\(stayId\) and getRoomFacilityOptions\(\) first to find valid roomTypeFK/roomFacilityFk values. Requires an MCP agent token scoped to the owning account. - `deleteStayRoom`: Delete \(soft-delete\) a room from a Stay. Requires an MCP agent token scoped to the owning account. - `getRoomTypeOptions`: List valid room types for a specific Stay's rooms \(roomTypeFK in createStayRoom/updateStayRoom\). Valid values depend on the Stay: boutique Stays choose from a fixed boutique type range; standard Stays are restricted to types already used on one of their own rooms. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN - `getRoomFacilityOptions`: List every room-level amenity/facility option available \(roomFacilityFk in createStayRoom/updateStayRoom\) — e.g. Wi-Fi, Air Conditioning, Private Bathroom. Wi-Fi is mandatory and always included even if not explicitly selected. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `deleteRoomPhoto`: Delete one photo from a room's gallery. Call getMyStayRooms first to find the exact fileName. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `reorderRoomPhotos`: Change the display order of a room's photo gallery. fileNames must be the FULL current gallery \(same set, just reordered\) — call getMyStayRooms first. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `createStayPackage`: Create a new pricing package on a Stay, optionally with initial price tiers. Requires an MCP agent token scoped to the owning account. - `updateStayPackage`: Update an existing pricing package on a Stay. Supplying 'prices' replaces ALL price rows for that package. Requires an MCP agent token scoped to the owning account. - `deleteStayPackage`: Permanently delete a pricing package and all its price tiers from a Stay. This is a hard delete \(unlike room deletion, which is soft\). Requires an MCP agent token scoped to the owning account. - `getCurrencyOptions`: List valid currency ids/codes for use as a package's currencyFK. - `updateStayOrganisationalData`: Update a Stay's organisational data: address, check-in/out policy, pets/children/parking, cancellation policy, accommodation type, tourism/land-registration numbers, 'Why Choose Us' reasons, and more. Only fields supplied are changed. IMPORTANT: countryId, petsAllowedId, childrenAllowedId, parkingId - `updateHostBusinessProfile`: Update the host account's business profile \(legal business name, VAT/business registration numbers\). Applies to the account owning the MCP agent token, not a specific stay. Only fields supplied are changed. Does NOT touch bank or tax-ID details — those are not MCP-writable. - `uploadStayPhoto`: Upload a photo to one of your Stay's photo areas. Supply EXACTLY ONE of 'url' \(a public https:// link, e.g. a Google Drive or Dropbox share link — the server downloads it\) or 'base64' \(the raw image bytes, base64-encoded — use this when you already have the image data in hand, e.g. a user attached a - `getMyStayContacts`: Get a Stay's contact/owner/manager details and social media links: owner name/email/mobile, manager \(day-to-day contact person\) name/email/mobile, booking email/phone/mobile, host display name, and website/Facebook/Twitter/YouTube/Instagram/TikTok/LinkedIn links. Call this before updateStayContacts - `updateStayContacts`: Update a Stay's contact/owner/manager details and social media links. Only fields supplied are changed. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `getMyStayFacilities`: Get the available options AND current selections for one facility/checkbox group on a Stay — e.g. 'Languages Spoken' returns every language the platform supports plus which ones are currently selected for this Stay. Call getFacilityGroups first if you don't know the exact group name. Common groups: - `updateStayFacilities`: Set which options are selected for one facility/checkbox group on a Stay — e.g. which languages are spoken. facilityDetailIds is the COMPLETE replacement list: anything not included will be UNCHECKED. Call getMyStayFacilities first to see current selections and valid IDs before changing them. Requir - `getFacilityGroups`: List every facility/checkbox group name that exists on the platform \(e.g. 'Languages Spoken', 'General', 'Services', 'Meal', 'Position', 'Remote Worker'\). Call this first if you don't already know the exact group name to pass to getMyStayFacilities/updateStayFacilities. Requires NOMADSTAYS\_MCP\_AGENT - `getStayTypeOptions`: List valid values for a Stay's 'Main Accommodation Type' \(stayTypeId in updateStayOrganisationalData\). Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `getCountryOptions`: List valid values for a Stay's country \(countryId in updateStayOrganisationalData\), with each country's name and 2-letter code. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `getCancellationPolicyOptions`: List valid values for a Stay's cancellation policy \(cxPolicyId in updateStayOrganisationalData\). Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `getAdditionalInformationOptions`: List valid values for one of the Additional Information picklists used in updateStayOrganisationalData: Children Allowed, Pets Allowed, or Parking. These are NOT booleans — they're lookup IDs \(e.g. 'Yes', 'No', 'On Request'\) — call this to find the right value before writing petsAllowedId/childrenAl - `getBusinessModelOptions`: List valid values for a Stay's listing/business model \(businessModelId, read-only — displayed on the Stay but not editable via MCP or the host UI itself\). Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `getMyStayPhotos`: Get every current photo for a Stay across all areas \(listing gallery, main/hero, workspace/coworking gallery, host\), each as a full https:// CDN URL an agent can view directly \(not just a filename\). Call this before deleteStayPhoto or reorderStayPhotos to see current filenames. Requires NOMADSTAYS\_M - `deleteStayPhoto`: Delete one photo from a Stay. Call getMyStayPhotos first to find the exact fileName. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `reorderStayPhotos`: Change the display order of a Stay's listing or workspace photo gallery. fileNames must be the FULL current gallery \(same set of files, just reordered\) — call getMyStayPhotos first. This only reorders; it cannot add or remove photos. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `getProductInfo`: Look up a Nomad Stays product's price and purchasability — currently only product 8, the Stay Application fee \(EUR 39\). Returns isWaivedForCaller: true if the caller is already a Stay Partner re-applying, in which case there's nothing to pay and purchaseProduct will process the waiver automatically. - `purchaseProduct`: Start a purchase of a Nomad Stays product on the caller's own behalf. If the caller already qualifies for a waiver \(e.g. an existing Stay Partner re-applying\), this resolves immediately with no payment step and returns status 'waived'. Otherwise it returns a checkoutUrl hosted on nomadstays.com — yo - `getPurchaseStatus`: Check whether a purchase has been paid. Only ever reports 'paid' after a fresh server-side check against the payment provider — never trust the member's own claim that they've paid, always poll this instead. Possible statuses: pending, paid, failed, waived. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `listStayApplications`: List the caller's Stay Applications \(draft and submitted\), each with a nextAction hint telling you what's needed next \(provide\_applicant\_details, provide\_property\_details, pay\_application\_fee, submit, awaiting\_review, or accepted\). Call this to find an in-progress application's applicationId before - `getStayApplication`: Get the full current state of one Stay Application, including a nextAction hint and \(if incomplete\) a missingFields list naming exactly which required fields are still empty. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `createStayApplication`: Start a new Stay Application for the caller. Any fields can be supplied now or filled in later via saveStayApplication — the applicant's name defaults from their Nomad Stays profile if not supplied. Call getCountryOptions and getBusinessModelOptions first to resolve stayCountryId/postalCountryId/bus - `saveStayApplication`: Update any subset of fields on an existing, not-yet-submitted Stay Application. Same field set and validation rules as createStayApplication — only pass the fields you're changing. Fails with a 409 if the application has already been submitted. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `submitStayApplication`: Submit a completed Stay Application for human review. Rejects with a missingFields list if any required field is still empty, or a 409 if the Application Fee hasn't been paid/waived yet \(call purchaseProduct with productId 8 and applicationId first\). There is no partial/optimistic submission — every - `listExperienceApplications`: List the caller's Experience Applications \(draft and submitted\), each with a nextAction hint telling you what's needed next \(provide\_applicant\_details, provide\_experience\_details, pay\_application\_fee, submit, awaiting\_review, or accepted\). Call this to find an in-progress application's applicationId - `getExperienceApplication`: Get the full current state of one Experience Application, including a nextAction hint and \(if incomplete\) a missingFields list naming exactly which required fields are still empty. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `createExperienceApplication`: Start a new Experience Application for the caller. Any fields can be supplied now or filled in later via saveExperienceApplication — the applicant's name defaults from their Nomad Stays profile if not supplied. Call getCountryOptions and getBusinessModelOptions first to resolve experienceCountryId/p - `saveExperienceApplication`: Update any subset of fields on an existing, not-yet-submitted Experience Application. Same field set and validation rules as createExperienceApplication — only pass the fields you're changing. Fails with a 409 if the application has already been submitted. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `submitExperienceApplication`: Submit a completed Experience Application for human review. Rejects with a missingFields list if any required field is still empty, or a 409 if the Application Fee hasn't been paid/waived yet \(call purchaseProduct with productId 9 and applicationId first — Experience uses product 9, NOT product 8\). - `quoteStayBooking`: Get a server-computed price and availability quote for booking a Stay package on the caller's own behalf. Price is always re-derived from the package's actual pricing tiers — never trust or reuse a price shown elsewhere. Picks the largest price tier whose length is \<= the requested nights \(e.g. 10 n - `bookStay`: Create a real booking from a quoteId returned by quoteStayBooking, and return a hosted checkoutUrl. The quote's price/availability is re-validated server-side one more time before the booking is created — a stale or expired quote will be rejected with a message to call quoteStayBooking again. You MU - `createStayEnquiry`: Send an enquiry about a Stay that can't be booked right now — for example quoteStayBooking finds no bookable package, or the Stay page says it isn't bookable online. The enquiry goes to the Nomad Stays team, who check availability with the Stay and reply to the member by email \(usually within one wo - `getBookingStatus`: Check a Stay booking's real payment status by PNR. Status is always freshly re-verified against Airwallex directly if not already confirmed paid — never trust a client-supplied claim of success. Only ever returns bookings owned by the caller's own account. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN with th - `listMyBookings`: List all Stay bookings owned by the caller's own account, most recent first, with each one's current status. Each booking includes needsAction: true if it's still unpaid, with a ready-to-use checkoutUrl — call this proactively \(e.g. at the start of a session, or when the member asks what's pending\) - `listCoworkingApplications`: List the caller's Coworking Applications \(draft and submitted\), each with a nextAction hint \(provide\_coworking\_details, submit, awaiting\_review, or accepted\). Coworking has no Application Fee, so unlike Stay/Experience there is no pay\_application\_fee step. Call this to find an in-progress applicatio - `getCoworkingApplication`: Get the full current state of one Coworking Application, including a nextAction hint and \(if incomplete\) a missingFields list naming exactly which required fields are still empty. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `createCoworkingApplication`: Start a new Coworking Application for the caller. Much simpler than the Stay/Experience applications: no VAT/tourism-number/business-model rules, no Application Fee, and no billing step at all — once coworkingName, applicantName, applicantEmail, city and country are present, nextAction goes straight - `saveCoworkingApplication`: Update any subset of fields on an existing, not-yet-submitted Coworking Application. Same field set and validation rules as createCoworkingApplication — only pass the fields you're changing. Fails with a 409 if the application has already been submitted. Requires NOMADSTAYS\_MCP\_AGENT\_TOKEN. - `submitCoworkingApplication`: Submit a completed Coworking Application for human review. Rejects with a missingFields list if any required field is still empty. There is no Application Fee to pay for Coworking, so — unlike submitStayApplication/submitExperienceApplication — this never returns a pay\_application\_fee/409-unpaid res Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html