Nomad Stays

디지털 노마드 친화적인 숙소를 찾고 예약하는 글로벌 플랫폼입니다.

문서

🏡 Nomad Stays MCP Server

Find the perfect remote work accommodation worldwide

API Version 0.6.2 | Base URL:https://mcp.nomadstays.com

📖 Overview

The Nomad Stays MCP Server provides access to a curated database of remote-work-friendly accommodations around the world via the Model Context Protocol (MCP), for use with AI assistants like Claude and ChatGPT.

New: Trusted Stay Partners can now connect their own AI assistant (see Setting Up Your AI Assistant as a Trusted Stay Partner below) so it can look up and update their Stay listings, rooms, pricing packages, organisational data, business profile, and photos on their behalf. See the🔐 Owner-Scoped Lookup Tools and ✏️ Owner-Scoped Write Tools sections below.

🤖 MCP Protocol

Use with AI assistants like Claude

💡 Examples

See sample requests and responses

🆘 Help Center

Access help articles and support via MCP tools

📊 Data Model

Understand the stay object structure

🏨 Supplier Integration

Push your availability to NomadStays in real time

🤖 Model Context Protocol (MCP)

This server implements the MCP specification, allowing AI assistants to discover and use stays data naturally in conversation. Now includes Help Center tools for searching and retrieving support articles directly via MCP.

🚀 Quick Setup for Claude Desktop

Connect this server to Claude Desktop in a couple of clicks — no config file editing needed:

Step 1: In Claude Desktop, go to Settings → Connectors and click Add custom connector.

Step 2: Enter the server URL:

https://mcp.nomadstays.com/mcp

Claude Desktop will open a sign-in prompt — log in with your NomadStays account and click Allow. You can then ask:"Find me remote work stays in Portugal"

For Claude.ai and ChatGPT Web Users

  1. Go to Settings → Connectors (Claude.ai) or the equivalent connector/MCP settings in ChatGPT
  2. Click "Add custom connector" / "Add Server"
  3. Enter server URL: https://mcp.nomadstays.com/mcp
  4. Complete the NomadStays sign-in prompt and click Allow, then start using it in conversations!

POST / MCP Protocol

MCP protocol endpoint for AI assistant integration.

Integration

To use this server with Claude or other MCP-compatible assistants, configure your MCP client with:

{ "mcpServers": { "nomadstays": { "url": "https://mcp.nomadstays.com/mcp" } } }

🔑 Setting Up Your AI Assistant as a Trusted Stay Partner (Step-by-Step)

If you manage a Stay on NomadStays, you can let your own AI assistant read and update your listing, rooms, prices, and photos for you. You don't need to know how to code — it's a self-service connection using your NomadStays login, no waiting on the NomadStays team. This works with ChatGPT, Claude.ai, and Claude Desktop's Connectors.

Step 1 — Turn on two-factor authentication

Before you can connect an agent, your NomadStays account needs two-factor authentication (2FA) turned on. This protects your listing in case access is ever lost or shared. Go to Enable two-factor authentication and follow the on-screen instructions if you haven't already.

Step 2 — Add the connector in your AI assistant

In ChatGPT or Claude.ai, add a new connector/MCP server pointing at https://mcp.nomadstays.com/mcp. In Claude Desktop, add it under Settings → Connectors instead. Your assistant will open a NomadStays sign-in and authorization prompt — log in and click Allow. Access is granted immediately, and you can review or revoke connected agents any time from your Stay profile page.

Step 3 — Try it out

Start a new conversation and ask something like: "List my Stays" or "Show me the current price packages on my Stay." If your assistant responds with your real listing data, it's working.

Questions? Contact tech@nomadstays.com.

Available Tools

Tool NameDescriptionParameters
🆘 Help Center Tools
searchHelpCenterSearch help articles by keyword or questionquery (string), category (optional string), limit (optional number)
getHelpCenterArticleRetrieve a specific help article by IDid (string)
listHelpCenterCategoriesList all available help center categoriesNone
🔍 Search & Filter Tools
getStaysByCountrySearch stays by 2-letter country code or partial country namecountrycode (string), limit (number)
getStaysByContinentFilter stays by continent (Europe, Asia, Africa, etc.)continent (string), limit (number)
getStaysByLocationSearch across City, State, location name, country, and descriptionlocation (string), limit (number)
getStaysByLifestyleFind stays by lifestyle categorylifestyle (string), limit (number)
getStaysByBudgetSearch stays within budget and duration with FX conversiondurationDays, maxPrice, currency, countryCode (optional), checkInDate (optional), limit (optional)
getStaysByAmenitiesSearch stays by amenities with fuzzy matchingamenities (array), matchType (optional), minWifiSpeed (optional), limit (optional)
getStaysByWiFiSpeedFind all stays with WiFi download speed greater than 10Mbps.minWiFiDownloadSpeed (number), limit (number)
getStayByIDGet detailed information about a specific stayid (number)
📅 Availability & Booking Tools
checkStayAvailabilityCheck room availability for specific datesstayId, checkIn, checkOut, roomType (optional)
findNearestAvailabilityFind nearest available dates near preferred check-instayId, preferredCheckIn, minLengthOfStay, maxLengthOfStay (optional), searchWindowDays (optional)
getAvailabilityByMonthGet availability calendar for a specific monthstayId, year, month, minLengthOfStay
getRoomAvailabilityCheck availability for a specific roomroomId, checkIn, checkOut
📚 Reference & Metadata Tools
getAllLifestylesRetrieve all available lifestyle categoriesNone
getAllAmenitiesRetrieve all available amenities in the systemNone
getRoomAmenitiesGet amenities for a specific roomroomId
🔐 Owner-Scoped Lookup Tools (require an MCP agent token)
getMyStaysList all Stays owned by the account bound to the MCP agent tokenNone
getMyStayDetailGet a Stay's current title, description, and listed statusstayId
getMyStayRoomsList all rooms configured on a StaystayId
getMyStayPackagesList all pricing packages and price tiers on a StaystayId
getMyStayOrganisationalDataGet a Stay's address, check-in/out policy, and cancellation policystayId
getMyStayContactsGet a Stay's public-facing contact detailsstayId
getMyStayFacilitiesGet a Stay's facility checkboxes for a given facility groupstayId, group
getMyStayPhotosList a Stay's photos by area (listing, main, workspace, host)stayId
getMyBusinessProfileGet the Trusted Stay Partner account's business profile (legal name, VAT/registration numbers)None
getRoomTypeOptionsList valid room types for a Stay — boutique Stays get Boutique1–Boutique6 only, standard Stays get ordinary room typesstayId
getRoomFacilityOptionsList all room-level facility optionsNone
getCurrencyOptionsList valid currencies for package pricingNone
getBusinessModelOptionsList valid values for a Stay's business model — read-only (not editable via MCP or the host UI itself), but the value it holds determines the sellPrice formula and whether advertisingEndpoint applies to packagesNone
getFacilityGroupsList all facility groups a Stay's facilities are organised intoNone
getStayTypeOptionsList valid values for a Stay's main accommodation typeNone
getCountryOptionsList valid countries, with names and 2-letter codesNone
getCancellationPolicyOptionsList valid cancellation policy valuesNone
getAdditionalInformationOptionsList valid values for a picklist field (e.g. Pets Allowed, Children Allowed, Parking) used in organisational datafilterName
✏️ Owner-Scoped Write Tools (require an MCP agent token)
updateStayDetailUpdate a Stay's title and/or descriptionstayId, title (optional), description (optional)
createStayRoomCreate a new room on a StaystayId, roomTitle, roomDescription (optional), beds (optional), maxPerson (optional), and more
updateStayRoomUpdate an existing room on a StaystayId, roomId, plus any room fields to change
deleteStayRoomSoft-delete a room from a StaystayId, roomId
createStayPackageCreate a new pricing package on a Stay, optionally with initial price tiersstayId, packageName, prices (optional array), and more
updateStayPackageUpdate a pricing package. Supplying prices replaces ALL price rows for that packagestayId, packageId, plus any package/price fields to change
deleteStayPackagePermanently delete a pricing package and all its price tiers (hard delete, unlike rooms)stayId, packageId
updateStayOrganisationalDataUpdate a Stay's address, check-in/out policy, pets/children/parking, cancellation policystayId, plus any organisational fields to change
updateStayContactsUpdate a Stay's public-facing contact detailsstayId, plus any contact fields to change
updateStayFacilitiesSet the full list of selected facility checkboxes for one facility group on a Stay. Anything not included is uncheckedstayId, group, facilityDetailIds (full replacement list)
updateHostBusinessProfileUpdate the Trusted Stay Partner account's business profile. Never touches bank or tax-ID detailsbusinessName, vatNumber, businessNumber, entityAccount — all optional
uploadStayPhotoUpload a photo to a Stay's listing, main, workspace, host, or room photo area. Supply a public https:// URL or base64-encoded bytes. Every photo is validated for JPEG format, size, minimum resolution (1920×1080 landscape, or 1080×1920 portrait for the "host" area) and is re-encoded server-side before storagestayId, area, url or base64, roomId (required when area is "room")
deleteStayPhotoDelete a Stay-level photo by area and filenamestayId, area, fileName
reorderStayPhotosReorder a Stay's photos within a given areastayId, area, fileNames (full ordered list)
deleteRoomPhotoDelete a room-level photo by area and filenamestayId, roomId, roomArea, fileName
reorderRoomPhotosReorder a room's photos within a given areastayId, roomId, roomArea, fileNames (full ordered list)

📊 Data Model

Stay Object

FieldTypeDescription
idstringUnique identifier for the stay
namestringName of the accommodation
descriptionstringShort description of the stay
countrystringFull country name
countryCodestringISO 3166-1 alpha-2 country code
citystringCity name
priceRangestringWeekly price range (e.g., "From EUR 250 per week")
priceCurrencystringCurrency code (e.g., EUR, USD)
amenitiesarrayList of available amenities
WiFiDownloadSpeednumberWiFi download speed in Mbps (optional)
WiFiUploadSpeednumberWiFi upload speed in Mbps (optional)
location_namestringLocation name from Location table
location_countrystringLocation country from Location table
PetsAllowedbooleanWhether pets are allowed
coordinatesobjectGeoLat and GeoLng coordinates
bookingUrlstringURL to book the stay

Common Amenities

Standard amenity identifiers used in the API:

  • high_speed_wifi - High-speed internet connection
  • dedicated_desk - Dedicated workspace
  • kitchen - Full kitchen access
  • coworking_space - On-site coworking space
  • gym - Fitness facilities
  • pool - Swimming pool
  • parking - Parking available
  • pet_friendly - Pets allowed

💡 Usage Examples

Find stays in Portugal

curl "https://mcp.nomadstays.com/api/stays?countrycode=PT&limit=10"

Search the Help Center for WiFi questions

# Using MCP tool: searchHelpCenter # Example: Find help articles about WiFi { "tool": "searchHelpCenter", "parameters": { "query": "WiFi" } }

Find stays in Europe

# Using MCP tool: getStaysByContinent # Searches by continent name

Find stays in Paris or near beaches

# Using MCP tool: getStaysByLocation # Searches across city, state, location name, and descriptions

Get all stays (no filter)

curl "https://mcp.nomadstays.com/api/stays?limit=50"

Get specific stay details

curl "https://mcp.nomadstays.com/api/stays/stay\_001"

Using with Claude (MCP)

Once configured, simply ask Claude naturally:

"Can you help me find remote work accommodations in Thailand?"

"Show me stays in Paris with good WiFi"

"I want to stay near a beach in Europe"

🆘 Help Center Integration

The MCP server now provides direct access to the Nomad Stays Help Center. You can search for help articles, retrieve specific articles by ID, and list available categories using the new MCP tools. This enables AI assistants and users to get support and answers to common questions programmatically.

  • Use searchHelpCenter to find articles by keyword or question.
  • Use getHelpCenterArticle to fetch a specific article by its ID.
  • Use listHelpCenterCategories to browse available help topics.

For manual browsing, visit the Nomad Stays Help Center.

🌍 Supported Countries

Currently available country codes (examples):

PT - Portugal

ES - Spain

TH - Thailand

MX - Mexico

CO - Colombia

ID - Indonesia

GR - Greece

IT - Italy

Note: Use the API to discover the complete list of available countries.

🏨 Supplier / PMS Integration

If you operate a property management system (PMS) or channel manager, you can sync your availability calendar directly with NomadStays. Two integration modes are available:

Option 1 — MCP Server (Pull)

Run your own MCP server that exposes a get_allocation tool. NomadStays polls it hourly and writes the returned availability into our booking system automatically.

  • Expose your server over HTTPS (Streamable HTTP POST /mcp preferred)
  • Implement the get_allocation tool — takes property_id, start_date, end_date
  • Return a ranges array with only reduced-allocation date periods
  • Secure with a Bearer token — NomadStays sends Authorization: Bearer <key> on every request

Option 2 — Webhook Push Recommended

Push availability changes to NomadStays the moment they occur — no waiting for the next poll cycle. When webhook push is enabled, NomadStays reduces polling to a once-daily safety check.

POST /api/mcp/availability-push/{stayId} Base: https://www.nomadstays.com

Authentication

Sign every request with HMAC-SHA256 using the shared secret NomadStays provisions during onboarding:

X-NomadStays-Signature: sha256=<lowercase-hex>

# Python example
import hmac, hashlib
sig = "sha256=" + hmac.new(secret.encode(), body, hashlib.sha256).hexdigest()

Payload

{
  "room_id": "your-room-identifier",
  "ranges": [
    { "start_date": "2026-07-10", "end_date": "2026-07-15", "allocation": 0 },
    { "start_date": "2026-08-01", "end_date": "2026-08-05", "allocation": 1 }
  ]
}

Only include date ranges where availability is reduced from normal. Send "ranges": [] to clear all blocks.

Response Codes

StatusMeaning
200 OKAccepted — {"received": true, "reductions": N}
401Missing or incorrect signature
404Stay or room not found

For the full integration specification including code examples in Python and Node.js, contact tech@nomadstays.com to begin onboarding.

⚡ Rate Limits & Best Practices

  • Rate limit: 100 requests per minute per IP
  • Use appropriate limit parameters to avoid over-fetching
  • Cache responses when possible to reduce API calls
  • Always check the health endpoint before making bulk requests

🆘 Support

For questions, issues, or feature requests:

  • Contact: Contact Page

Nomad Stays MCP Server v0.6.2 | Made for digital nomads and remote workers 🌎