Nomad Stays
REMOTE · MCP.NOMADSTAYS.COM · SCANNED AUG 3
Search remote-work accommodations worldwide; Trusted Stay Partners can manage their own listings.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: this server exposes a tool marked destructive (deleteStayRoom) and its handshake is open, but we could not confirm whether a tool call is gated, so we do not assert it is callable unauthenticated. View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability74
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 16737 tokens (~176/item across 95 items; 76 tools + 19 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage86
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 59% of tool parameters carry a description.Partial
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
- Supports UI / widget rendering.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · mcp.nomadstays.com
claude mcp add --transport http nomadstays-mcp-server https://mcp.nomadstays.com/mcp
[mcp_servers.nomadstays-mcp-server] url = "https://mcp.nomadstays.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"nomadstays-mcp-server": {
"type": "remote",
"url": "https://mcp.nomadstays.com/mcp",
"enabled": true
}
}
} openclaw mcp add nomadstays-mcp-server --url https://mcp.nomadstays.com/mcp --transport streamable-http
mcp_servers:
nomadstays-mcp-server:
url: "https://mcp.nomadstays.com/mcp" {
"mcpServers": {
"nomadstays-mcp-server": {
"type": "http",
"url": "https://mcp.nomadstays.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 0
- “createStayRoom” reworded the description of “roomTypeFK” cosmetic
1 cosmetic change on this day. Switch on “Show cosmetic changes” to see it.
- 2 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 0
- Tool “uploadStayPhoto” rewrote its description, which is the text the model reads security
- Schema quality: excellent → good functional
- “uploadStayPhoto” reworded the description of “base64” cosmetic
- “uploadStayPhoto” reworded the description of “area” cosmetic
- 28 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 62
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://mcp.nomadstays.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=mcp.nomadstays.com | CN=YR2,O=Let's Encrypt,C=US | 28 Jul 2026 | 26 Oct 2026 | RSA 4096 | SHA256-RSA | 60d43306aa756e89c362b85feee6f6f3139 |
| SANs: mcp.nomadstays.com | ||||||
| CN=YR2,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | 4ebd24947e24d394802d84a52fd5b319 |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
DNSSEC insecure
Validation of mcp.nomadstays.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| nomadstays.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.nomadstays.com/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.nomadstays.com/mcp | HTTPS enforced | 302 | https://mcp.nomadstays.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
getStayTypeOptions ~44
List valid values for a Stay's 'Main Accommodation Type' (stayTypeId in updateStayOrganisationalData). Requires NOMADSTAYS_MCP_AGENT_TOKEN.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
listCoworkingApplications ~92
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 application's applicationId before resuming it. Requires NOMADSTAYS_MCP_AGENT_TOKEN.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
listExperienceApplications ~79
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 before resuming it. Requires NOMADSTAYS_MCP_AGENT_TOKEN.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
listHelpCenterCategories ~38
List all available NomadStays Help Center categories. Returns category ID, name, slug, description, and article count for each category.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
listMyBookings ~119
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) and surface any needsAction bookings to the member, since there is no other way for them to be notified of an incomplete booking through this connection. Requires NOMADSTAYS_MCP_AGENT_TOKEN with the 'bookings' scope.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
listStayApplications ~78
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 resuming it. Requires NOMADSTAYS_MCP_AGENT_TOKEN.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
purchaseProduct ~195
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 — you must hand this URL to the member and ask them to open it in their own browser and pay; you cannot complete payment on their behalf. Poll getPurchaseStatus with the returned saleId afterwards to find out when it's actually paid. Requires NOMADSTAYS_MCP_AGENT_TOKEN.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | number | — | 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 |
| productId | number | yes | The product's EntryID — use 8 for the Stay Application fee |
No output schema declared.
No examples provided.
quoteStayBooking ~286
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 nights against 7/14/21/30-day tiers uses the 7-day tier's rate), falling back to the smallest tier if the stay is shorter than all of them. Returns a quoteId valid for about 15 minutes — call bookStay with it to actually create the booking and get a payment link. Requires the caller's token to carry the 'bookings' OAuth scope (McpMember role), separate from the listings-management 'McpAgent' scope other tools here use.
| Name | Type | Req | Description |
|---|---|---|---|
| adults | number | — | Number of adult guests. Defaults to 1. |
| checkIn | string | yes | Check-in date, YYYY-MM-DD |
| checkOut | string | yes | Check-out date, YYYY-MM-DD |
| children | number | — | Number of child guests. Defaults to 0. |
| packageId | number | yes | The Stay package's ID (from getPackages or search/browse tools) |
| pets | number | — | Number of pets. Defaults to 0. |
| rooms | number | — | Number of rooms to book. Defaults to 1. |
No output schema declared.
No examples provided.
reorderRoomPhotos ~138
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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileNames | array | yes | The complete gallery file names in the new desired order — must match the current set exactly (call getMyStayRooms first) |
| roomArea | string | yes | 'photos' for the regular room gallery, 'workspace' for the room's coworking gallery |
| roomId | number | yes | The room's EntryID |
| stayId | number | yes | The Stay's EntryID |
No output schema declared.
No examples provided.
reorderStayPhotos ~129
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.
| Name | Type | Req | Description |
|---|---|---|---|
| area | string | yes | Only these two areas support reordering |
| fileNames | array | yes | The complete gallery file names in the new desired order — must match the current set exactly (call getMyStayPhotos first) |
| stayId | number | yes | The Stay's EntryID |
No output schema declared.
No examples provided.
saveCoworkingApplication ~160
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.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | — | — |
| applicantEmail | string | — | — |
| applicantName | string | — | — |
| applicationId | number | yes | The application's ID |
| city | string | — | — |
| country | string | — | Exact tbCountry.CountryName (not a country ID) — use getCountries. |
| coworkingName | string | — | — |
| telephone | string | — | — |
| website | string | — | — |
No output schema declared.
No examples provided.
saveExperienceApplication ~363
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.
| Name | Type | Req | Description |
|---|---|---|---|
| applicantEmail | string | — | — |
| applicantFirstName | string | — | — |
| applicantLastName | string | — | — |
| applicationId | number | yes | The application's ID |
| availabilitySupplier | string | — | — |
| businessModelId | number | — | tbBusinessModel.EntryID — use getBusinessModels. |
| businessName | string | — | — |
| city | string | — | — |
| comments | string | — | — |
| daysQty | string | — | Minimum 4 days, enforced server-side |
| description | string | — | — |
| downloadSpeed | string | — | — |
| experienceCountryId | number | — | tbCountry.CountryId — the country the application itself is filed under. Use getCountries. |
| experienceName | string | — | — |
| hasInsurance | boolean | — | — |
| hasKitchen | boolean | — | — |
| laundryFacilities | string | — | — |
| maxPax | string | — | — |
| mobile | string | — | — |
| monthlyPrice | string | — | — |
| overnightLocationsQty | string | — | — |
| postalCountryId | number | — | tbCountry.CountryId — used only for the VAT check, stored on the business profile, not on the application. Use getCountries. |
| state | string | — | — |
| street | string | — | — |
| tourismNumber | string | — | — |
| vatNumber | string | — | — |
| website | string | — | — |
| workFacilities | string | — | — |
| zip | string | — | — |
No output schema declared.
No examples provided.
saveStayApplication ~323
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.
| Name | Type | Req | Description |
|---|---|---|---|
| applicantEmail | string | — | — |
| applicantFirstName | string | — | — |
| applicantLastName | string | — | — |
| applicationId | number | yes | The application's ID |
| availabilitySupplier | string | — | — |
| businessModelId | number | — | tbBusinessModel.EntryID — use getBusinessModels. |
| businessName | string | — | — |
| city | string | — | — |
| comments | string | — | — |
| downloadSpeed | string | — | — |
| hasKitchen | boolean | — | — |
| laundryFacilities | string | — | — |
| mobile | string | — | — |
| monthlyPrice | string | — | — |
| numberOfRooms | string | — | — |
| postalCountryId | number | — | tbCountry.CountryId — used only for the VAT check, stored on the business profile, not on the application. Use getCountries. |
| state | string | — | — |
| stayCountryId | number | — | tbCountry.CountryId — the country the application itself is filed under. Use getCountries. |
| stayName | string | — | — |
| street | string | — | — |
| tourismNumber | string | — | — |
| vatNumber | string | — | — |
| website | string | — | — |
| workFacilities | string | — | — |
| zip | string | — | — |
No output schema declared.
No examples provided.
searchHelpCenter ~67
Search NomadStays Help Center articles from the public knowledgebase endpoint and return matching title/content/slug entries.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum number of results to return (default: 15) |
| query | string | — | Search term to match against Help Center knowledgebase articles |
No output schema declared.
No examples provided.
signupNomadStaysAccount ~228
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, so the agent cannot sign in or act as the user itself. Once confirmed, the person can log in at nomadstays.com/Account/Login and request their own MCP bearer token or OAuth grant to let an agent manage their account/listings going forward.
| Name | Type | Req | Description |
|---|---|---|---|
| acceptGdpr | boolean | yes | Must be true — the person has agreed to NomadStays' GDPR terms |
| string | yes | A real email address the person controls — the confirmation link is sent here and the account stays inactive until it's clicked | |
| firstName | string | yes | The person's first name |
| lastName | string | yes | The person's last name |
| password | string | yes | Account password, minimum 6 characters |
| telephone | string | yes | Contact telephone number |
No output schema declared.
No examples provided.
submitCoworkingApplication ~103
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 response. On success the application moves to human review. Requires NOMADSTAYS_MCP_AGENT_TOKEN.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | number | yes | The application's ID |
No output schema declared.
No examples provided.
submitExperienceApplication ~112
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). There is no partial/optimistic submission. On success the application moves to human review. Requires NOMADSTAYS_MCP_AGENT_TOKEN.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | number | yes | The application's ID |
No output schema declared.
No examples provided.
submitStayApplication ~117
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 — everything required must already be in place. On success the application moves to human review; nothing further is needed from the agent. Requires NOMADSTAYS_MCP_AGENT_TOKEN.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | number | yes | The application's ID |
No output schema declared.
No examples provided.
updateHostBusinessProfile ~105
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.
| Name | Type | Req | Description |
|---|---|---|---|
| businessName | string | — | — |
| businessNumber | string | — | — |
| entityAccount | boolean | — | Whether the host operates as a registered business entity |
| vatNumber | string | — | — |
No output schema declared.
No examples provided.
updateStayContacts ~221
Update a Stay's contact/owner/manager details and social media links. Only fields supplied are changed. Requires NOMADSTAYS_MCP_AGENT_TOKEN.
| Name | Type | Req | Description |
|---|---|---|---|
| bookingEmail | string | — | Email guests use to reach the Stay about bookings |
| bookingMobile | string | — | — |
| bookingPhone | string | — | — |
| facebookPage | string | — | — |
| hostFullName | string | — | Display name shown to guests as the host |
| string | — | — | |
| string | — | — | |
| managerEmail | string | — | — |
| managerMobile | string | — | — |
| managerName | string | — | The day-to-day contact person's name (not necessarily the owner) |
| ownerEmail | string | — | — |
| ownerMobile | string | — | — |
| ownerName | string | — | — |
| stayId | number | yes | The Stay's EntryID |
| tikTok | string | — | — |
| string | — | X (Twitter) profile link | |
| website | string | — | — |
| youtube | string | — | — |
No output schema declared.
No examples provided.
updateStayDetail ~81
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.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | — | OPTIONAL: new description |
| stayId | number | yes | The Stay's EntryID |
| title | string | — | OPTIONAL: new title |
No output schema declared.
No examples provided.
updateStayFacilities ~156
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. Requires NOMADSTAYS_MCP_AGENT_TOKEN.
| Name | Type | Req | Description |
|---|---|---|---|
| facilityDetailIds | array | yes | The FULL list of facilityDetailId values that should be selected after this call — call getMyStayFacilities first to see valid IDs. An empty array clears all selections in this group. |
| group | string | yes | Exact facility group name, matching what getMyStayFacilities was called with |
| stayId | number | yes | The Stay's EntryID |
No output schema declared.
No examples provided.
updateStayOrganisationalData ~564
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, cxPolicyId, and stayTypeId are lookup IDs, NOT plain text or booleans — call getCountryOptions / getAdditionalInformationOptions / getCancellationPolicyOptions / getStayTypeOptions first to find the correct ID to send. Requires an MCP agent token scoped to the owning account.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | — | — |
| checkInFrom | string | — | — |
| checkInTo | string | — | — |
| checkOutFrom | string | — | — |
| checkOutTo | string | — | — |
| checkinLocationWhat3Words | string | — | what3words location for guest check-in |
| childrenAllowedId | string | — | An optionId from getAdditionalInformationOptions(filterName='Children Allowed') — NOT a boolean. |
| city | string | — | — |
| countryId | string | — | A country ID from getCountryOptions — NOT a country name. |
| customCxPolicyLink | string | — | — |
| cxPolicyId | string | — | A cxPolicyId from getCancellationPolicyOptions. |
| earlyCheckIn | boolean | — | — |
| fullPayment | boolean | — | Whether guests must pay in full up front (vs. pay on arrival). Only settable if the Stay's country allows it — check fullPaymentAllowedByCountry from getMyStayOrganisationalData first; writing true w… |
| geoLat | number | — | Map pin latitude |
| geoLng | number | — | Map pin longitude |
| landRegistrationNumber | string | — | — |
| lateCheckout | boolean | — | — |
| parkingId | string | — | An optionId from getAdditionalInformationOptions(filterName='Parking') — NOT a boolean. |
| petsAllowedId | string | — | An optionId from getAdditionalInformationOptions(filterName='Pets Allowed') — NOT a boolean. |
| postCode | string | — | — |
| reason1 | string | — | First 'Why Choose Us' reason shown to guests |
| reason2 | string | — | — |
| reason3 | string | — | — |
| receiveReviews | boolean | — | — |
| registeredBusiness | boolean | — | Whether the Stay is officially registered for tourism/lodging |
| state | string | — | — |
| stayId | number | yes | The Stay's EntryID |
| stayTypeId | number | — | A stayTypeId from getStayTypeOptions. |
| totalRooms | number | — | — |
| tourismNumber | string | — | — |
No output schema declared.
No examples provided.
updateStayPackage ~317
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.
| Name | Type | Req | Description |
|---|---|---|---|
| advertisingEndpoint | string | — | OPTIONAL: only usable on Advertising-business-model Stays — ignored otherwise, matching the host UI which hides this field for all other business models. |
| currencyFK | number | — | Call getCurrencyOptions for valid values. |
| description | string | — | — |
| endDate | string | — | OPTIONAL: last check-in date this package is available for |
| isActive | boolean | — | OPTIONAL: archive (false) or restore (true) this package — cascades to 'listed' on all its price tiers, matching the host UI's Archive/Restore actions |
| listed | boolean | — | — |
| maxPax | number | — | — |
| packageId | number | yes | The package's EntryID (tbStayPackages) |
| packageName | string | — | — |
| prices | array | — | OPTIONAL: replaces ALL price rows for this package when supplied. Exactly one entry per 7/14/21/30-night tier used. |
| roomTypeFK | number | — | Call getRoomTypeOptions for valid values. |
| startDate | string | — | OPTIONAL: first check-in date this package is available for |
| stayId | number | yes | The Stay's EntryID |
| stayRoomFK | number | — | The specific room this package covers (tbStaysRoom.EntryID). Call getMyStayRooms to find valid values. |
No output schema declared.
No examples provided.
updateStayRoom ~251
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.
| Name | Type | Req | Description |
|---|---|---|---|
| beds | number | — | — |
| mainBedSize | string | — | — |
| maxPerson | number | — | — |
| mcpRoomId | string | — | External MCP room identifier. NOT AVAILABLE for boutique Stays — the host UI has no field for this there, and the API will reject it. |
| otherBedSize | string | — | — |
| roomDescription | string | — | — |
| roomFacilityFk | array | — | The FULL replacement list of facilityDetailId values from getRoomFacilityOptions() — anything not included will be removed (except Wi-Fi, which is always kept). |
| roomId | number | yes | The room's EntryID (tbStaysRoom) — use getMyStayRooms to find it |
| roomTitle | string | — | — |
| roomTypeFK | number | — | A roomTypeId from getRoomTypeOptions(stayId). |
| stayId | number | yes | The Stay's EntryID |
No output schema declared.
No examples provided.
uploadStayPhoto ~533
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 photo in the conversation, and have nowhere public to host it first). The photo is validated against the same minimum specs as a manual upload: JPEG, PNG, or WebP, under 20MB, and a minimum resolution that depends on area. Most areas require at least 1920x1080 landscape; 'host' requires at least 1080x1350 PORTRAIT — a landscape photo will be rejected for that area. Every upload is downscaled to fit within 2560x1440 and re-encoded server-side as WebP (stripping metadata and anything that isn't genuine image data) before storage. Requires NOMADSTAYS_MCP_AGENT_TOKEN.
| Name | Type | Req | Description |
|---|---|---|---|
| area | string | yes | Which photo area this belongs to: - 'listing': general Stay gallery photos (multiple allowed, min 1920x1080 landscape) - 'main': the single hero/cover photo shown first for the Stay (min 1920x1080 la… |
| base64 | string | — | 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 | number | — | Required when area is 'room' — the room's EntryID (use getMyStayRooms to find it). Ignored for other areas. |
| stayId | number | yes | The Stay's EntryID (use getMyStays to find it) |
| url | string | — | 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. |
No output schema declared.
No examples provided.