Nomad Stays

io.github.nomadstays由 GitHub 账号 nomadstays 发布v0.7.0更新于 Oct 24, 2026

Search remote-work accommodations worldwide; Trusted Stay Partners can manage their own listings.

已验证Streamable HTTP可网页运行位置与生活效率与工作流商业与电商

概览

AI 生成的概览

Nomad Stays 让助手搜索全球远程办公住宿、查询空房,并让房东管理自己的房源。

可以做什么
  • 按国家、大洲、地点、生活方式、预算、设施或 WiFi 速度搜索住宿,并查看单个住宿的完整详情
  • 查询指定日期的空房情况、按房间或按月查看可订窗口,或寻找最近的可用日期
  • 获取生活方式、设施、货币、房型与房间设施等参考选项列表
  • 搜索并阅读 Nomad Stays 帮助中心的文章与分类
  • 代他人注册账号;持令牌时可报价或预订住宿、提交申请与咨询
  • 持令牌的房东可读取和修改房源详情、房间、照片、价格套餐、政策、设施与商家资料
适用场景
适合有人规划远程办公住宿、希望助手按地点、预算、设施或日期筛选选项时使用。也适合 Trusted Stay Partner 希望用自己的助手维护房源内容,而不必登录后台管理界面。
运行要求
通过 streamable HTTP 连接远程端点 mcp.nomadstays.com,无需本地安装。公开搜索与帮助中心工具无需凭据。账号、预订、申请与房东管理工具需要 Nomad Stays 账号及 MCP 代理令牌,通过环境变量 NOMADSTAYS_MCP_AGENT_TOKEN 提供;申请房东令牌需账号已启用双重验证。自托管版本需 Node.js 20+ 与 SQL Server 连接字符串。
安装前请注意
注册工具可在无认证的情况下创建真实账号,但需本人点击邮件确认链接后才会激活。持令牌的工具会以账号身份操作:可创建预订与购买并返回结账链接、提交申请,以及新增、调整顺序或删除房间、照片和价格套餐,其中套餐删除为永久删除。住宿与体验申请需支付一次性 39 欧元费用。个人、银行与税务信息不会通过工具暴露。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Nomad Stays,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.nomadstays%2Fmcp-server/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "nomad-stays": {
      "type": "http",
      "url": "https://mcp.nomadstays.com/mcp"
    }
  }
}

README

NomadStays MCP Server

An MCP (Model Context Protocol) server that gives AI agents access to Nomad Stays accommodation data — search by country, continent, location, lifestyle, budget, amenities, and availability.

Compatible with Claude, ChatGPT, and any MCP-aware AI agent.

Tools available

Full, current tool list: 78 tools total. See mcp.nomadstays.com for the complete reference with parameters — this README lists them grouped by category; keep both in sync when tools are added or changed.

Search, availability, and reference (public, no auth)

ToolDescription
getStaysByCountrySearch stays by 2-letter country code or country name
getStaysByContinentSearch by continent (Europe, Asia, Africa, etc.)
getStaysByLocationFree-text search across city, region, location description
getStaysByLifestyleFilter by lifestyle category (Digital Nomad, Beach, City…)
getStaysByBudgetFind stays within a budget for a given duration and currency
getStaysByAmenitiesFilter by amenities (WiFi, Pool, Air Conditioning…)
getStaysByWiFiSpeedFilter by minimum WiFi download speed (Mbps)
getStayByIDFull details for a single stay
getStayCountsByCountryNumber of stays per country, most first (optional continent filter)
getAllLifestylesList all available lifestyle categories
getAllAmenitiesList all available amenities
checkStayAvailabilityCheck if a stay is available for given dates
findNearestAvailabilityFind nearest available dates when preferred dates are taken
getAvailabilityByMonthAll available windows in a specific month
getRoomAvailabilityPer-room availability for a date range
getRoomAmenitiesFull amenity list for a specific room including WiFi metrics
searchHelpCenterSearch Nomad Stays help centre articles
getHelpCenterArticleFetch a specific help article by ID
listHelpCenterCategoriesList all help centre categories

Account signup for AI agents

If the person you're assisting doesn't have a Nomad Stays account yet, use the signupNomadStaysAccount tool to create one for them — no authentication, browser, or CAPTCHA required.

ToolDescription
signupNomadStaysAccountCreate a new Nomad Stays account for someone who doesn't have one yet. Returns pending_email_confirmation — no session or token.

Notes:

  • The account is created but inactive until the human clicks the confirmation link emailed to them — no session or token is returned by this call, and the agent cannot sign in or act as the user itself. This is the trust boundary: it proves a real inbox exists behind the request, standing in for the CAPTCHA/honeypot checks the public browser signup form uses instead.
  • Rate-limited to 2 requests per 5 minutes per source IP, server-side (Controllers/AgentSignupApiController.cs in the main repo).
  • Once the human confirms their email and logs in normally at www.nomadstays.com/Account/Login, they can request an MCP bearer token or complete OAuth (see "Trusted Stay Partner management tools" below) to let their own agent act on their behalf going forward.

Product, purchase, and application tools (require an MCP agent token)

Stay, Experience, and Coworking applications each go through the same list / get / create / save / submit lifecycle. Stay and Experience applications carry a one-time EUR 39 Application Fee (products 8 and 9); Coworking applications have no fee.

ToolDescription
getProductInfoLook up a product's price and purchasability (product 8 = Stay Application, 9 = Experience Application)
purchaseProductStart a purchase on the caller's own behalf; returns a checkoutUrl or resolves as "waived"
getPurchaseStatusCheck whether a purchase has been paid, verified fresh against the payment provider
listStayApplications / getStayApplication / createStayApplication / saveStayApplication / submitStayApplicationFull Stay Application lifecycle
listExperienceApplications / getExperienceApplication / createExperienceApplication / saveExperienceApplication / submitExperienceApplicationFull Experience Application lifecycle (min. 4-day experiences, enforced server-side)
listCoworkingApplications / getCoworkingApplication / createCoworkingApplication / saveCoworkingApplication / submitCoworkingApplicationFull Coworking Application lifecycle — no Application Fee

Booking (require an MCP agent token)

ToolDescription
quoteStayBookingPrice a prospective booking (package, dates, guests) before committing
bookStayCreate a booking on the caller's own behalf; returns a checkoutUrl or resolves as confirmed
getBookingStatusCheck whether a booking is confirmed, verified fresh against the payment provider
listMyBookingsList the caller's own bookings, including needsAction/checkoutUrl for anything still pending
getCancellationOptionsWhether the caller's own paid booking can still be cancelled under the Stay's policy, the deadline and what they'd get back
cancelBookingCancel the caller's own paid booking (requires confirm: true); refund/credit to the member's wallet, Custom policy sends a request only
createStayEnquiryEnquire about a Stay that can't be booked right now; the Nomad Stays team replies to the member by email

Trusted Stay Partner management tools

The tools above are read-only and public (aside from applications, which are self-service but still token-gated). A separate set of tools lets an authorized Trusted Stay Partner's own AI agent read AND write their own listing data — with the same capabilities (no more, no less) as they have via the Nomad Stays admin UI. These require a bearer token issued from the partner's Operator Information page at www.nomadstays.com/stayadmin/user-profile-stays (2FA must be enabled on the account to request one), set as NOMADSTAYS_MCP_AGENT_TOKEN. Every call is scoped server-side to Stays the authenticated account actually owns.

ToolDescription
getMyStays / getMyStayDetail / updateStayDetailRead/update a Stay's core details (title, description, address, policies)
getMyStayOnboardingStatusThe six "Listing Completion" scores from the Stay dashboard (Stay Details, Availability, Rooms, Packages, Wi-Fi, Operator Information) plus an overall percentage — Wi-Fi is a test-freshness score, not a speed rating
getMyStayRooms / createStayRoom / updateStayRoom / deleteStayRoomFull room CRUD, including bed sizes, facilities, and photos
getRoomTypeOptions / getRoomFacilityOptionsReference lookups for valid room types/facilities (differ for boutique vs standard Stays)
uploadStayPhoto / getMyStayPhotos / deleteStayPhoto / reorderStayPhotosStay-level photo management, including reordering
deleteRoomPhoto / reorderRoomPhotosRoom-level photo management
getMyStayPackages / createStayPackage / updateStayPackage / deleteStayPackagePricing package CRUD — sellPrice is always server-computed, never directly settable
getCurrencyOptions / getBusinessModelOptionsReference lookups for package currency and business model
getMyStayOrganisationalData / updateStayOrganisationalDataAddress, check-in/out policy, cancellation policy, pets/children/parking rules
getStayTypeOptions / getCountryOptions / getCancellationPolicyOptions / getAdditionalInformationOptionsReference lookups for organisational-data fields
getMyStayContacts / updateStayContactsPublic-facing contact details
getMyStayFacilities / updateStayFacilities / getFacilityGroupsFacility checkboxes, grouped exactly as on the admin UI
getMyBusinessProfile / updateHostBusinessProfileBusiness profile (excludes personal, bank, and tax fields — never exposed via MCP)

Key rules: boutique Stays (Boutique1–Boutique6 room types) and standard Stays are validated separately — always call getRoomTypeOptions first. Package price tiers are locked to 7/14/21/30 nights and don't all need to be set — a subset (e.g. 1-week-only) is valid. advertisingEndpoint only applies to Advertising-business-model Stays. Personal, bank, and tax details are permanently excluded from every tool.

Setup

1. Prerequisites

  • Node.js 20+
  • Access to a Nomad Stays SQL Server database (hosted on Coolify/Hetzner)

2. Install

bash
git clone https://github.com/nomadstays/nomadstays-mcp-server.gitcd nomadstays-mcp-servernpm install

3. Configure

bash
cp .env.example .env# Edit .env and set your NOMADSTAYS_DB_CONNECTION string

4. Build

bash
npm run build

5. Run (stdio mode — for Claude Desktop / local MCP clients)

bash
node build/index.js

6. Run (HTTP mode — for hosted / remote deployments)

bash
PORT=8080 node build/index.js

HTTP endpoints:

  • POST /mcp — MCP Streamable HTTP transport
  • GET /health — Health check
  • GET /api/mcp/stats/daily — Daily usage stats
  • GET /api/mcp/stats/tools — Per-tool usage stats

Claude Desktop configuration

Copy claude_desktop_config.example.json, update the path and connection string, then merge into your claude_desktop_config.json:

json
{  "mcpServers": {    "nomadstays": {      "command": "node",      "args": ["/path/to/nomadstays-mcp-server/build/index.js"],      "env": {        "NOMADSTAYS_DB_CONNECTION": "Server=tcp:..."      }    }  }}

Deploy

The production Nomad Stays deployment runs its MCP servers as Docker containers on Coolify (self-hosted on Hetzner) rather than Azure App Service. This repo doesn't include a Dockerfile of its own — containerize it with a standard Node.js build (Node 20+, npm run build, run dist/index.js) and deploy to any Docker-capable host, setting NOMADSTAYS_DB_CONNECTION (and PORT/HTTP_PORT for HTTP mode) as environment variables on the target platform.

Tech stack

来源:README.md,提交 11533a7

工具

79

getStayByID

Get Stay Details

Returns full details for a single stay. The id parameter searches both EntryId and StayId fields.

输入参数id必填

signupNomadStaysAccount

Sign Up for a Nomad Stays Account

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.

输入参数email必填lastName必填password必填firstName必填telephone必填acceptGdpr必填

getStaysByCountry

Search Stays by Country

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')

输入参数limitcountrycode必填

getStaysByContinent

Search Stays by Continent

Returns stays from the NomadStays database filtered by continent. Search by continent name (e.g., 'Europe', 'Asia', 'Africa', 'North America', 'South America', 'Oceania')

输入参数limitcontinent必填

getStaysByLocation

Search Stays by Location

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')

输入参数limitlocation必填

searchHelpCenter

Search Help Center

Search NomadStays Help Center articles from the public knowledgebase endpoint and return matching title/content/slug entries.

输入参数limitquery

getHelpCenterArticle

Get Help Center Article

Fetch a specific NomadStays Help Center article by its ID. Returns the full article content, title, slug, and categories.

输入参数id必填

listHelpCenterCategories

List Help Center Categories

List all available NomadStays Help Center categories. Returns category ID, name, slug, description, and article count for each category.

无需输入参数。

getStaysByLifestyle

Search Stays by Lifestyle

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.

输入参数limitlifestyle必填

getStaysByBudget

Search Stays by Budget

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'.

输入参数limitcurrency必填maxPrice必填continentcheckInDatecountryCodedurationDays必填

getStaysByAmenities

Search Stays by Amenities

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 filter by minimum WiFi download speed.

输入参数limitamenities必填matchTypeminWifiSpeed

getStaysByWiFiSpeed

Find Stays with Fast Wi-Fi

Find all stays with WiFi download speed greater than 10Mbps, listed and not suspended.

输入参数limitminWiFiDownloadSpeed

getAllLifestyles

List Lifestyle Categories

Returns all active lifestyle/genre categories available in NomadStays. Use this to discover what lifestyle categories exist before searching with getStaysByLifestyle.

无需输入参数。

getStayCountsByCountry

Count Stays by Country

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 have in Spain' or 'where do you have stays'. Optionally filter by continent.

输入参数continent

getAllAmenities

List All Amenities

List all possible amenities in the database, grouped into Stay Amenities (referenced by tbStaysFacilities) and Room Amenities (referenced by tbStaysRoom.RoomFacilityFk).

无需输入参数。

checkStayAvailability

Check Stay Availability

Check if a specific stay is available for given check-in and check-out dates. Returns availability status and room details.

输入参数stayId必填checkIn必填checkOut必填roomType

hasAvailabilityInWindow

Check Availability in a Date Window

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 stay'), instead of calling checkStayAvailability repeatedly for individual dates.

输入参数stayId必填fromDate必填windowDaysminLengthOfStay必填

findNearestAvailability

Find Nearest Available Dates

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.

输入参数stayId必填maxLengthOfStayminLengthOfStay必填preferredCheckIn必填searchWindowDays

getAvailabilityByMonth

Get Availability by Month

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.

输入参数year必填month必填stayId必填minLengthOfStay必填

getRoomAvailability

Check Room Availability by Night

Check a specific room's availability for each night in a date range. Returns availability status (available/not available) for each night.

输入参数roomId必填checkIn必填checkOut必填

getRoomAmenities

Get Room Amenities and Wi-Fi Speeds

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.

输入参数roomId必填

getMyStays

List My Stays

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 My Stay Title and Description

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.

输入参数stayId必填

getMyStayOnboardingStatus

Get Listing Completion Status

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 left to finish. Note: Wi-Fi is a test-freshness score (recency of the last speed test), not a speed rating. Operator Information is the same score the owner's dashboard shows, with a missingItems list of labels (e.g. 'Date of Birth', 'Banking Details') — those fields are owner-only and never writable via MCP, so relay the list to the owner. Stay Details is recalculated automatically after every MCP edit to details, organisational data, contacts, facilities or photos. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

输入参数stayId必填

getMyStayRooms

List My Stay's Rooms

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 agent can show current values or find the right roomId/fileName. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

输入参数stayId必填

getMyStayPackages

List My Stay's Pricing Packages

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_AGENT_TOKEN.

输入参数stayId必填

getMyStayOrganisationalData

Get My Stay's Organisational Data

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.

输入参数stayId必填

getMyBusinessProfile

Get My Business Profile

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 Stay Title and Description

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.

输入参数titlestayId必填description

createStayRoom

Add a Room to a Stay

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 owning account.

输入参数bedsstayId必填maxPersonmcpRoomIdroomTitle必填roomTypeFKmainBedSizeotherBedSizeroomFacilityFkroomDescription

updateStayRoom

Update a Room

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.

输入参数bedsroomId必填stayId必填maxPersonmcpRoomIdroomTitleroomTypeFKmainBedSizeotherBedSizeroomFacilityFkroomDescription

deleteStayRoom

Delete a Room

Delete (soft-delete) a room from a Stay. Requires an MCP agent token scoped to the owning account.

输入参数roomId必填stayId必填

getRoomTypeOptions

List Room Type Options

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.

输入参数stayId必填

getRoomFacilityOptions

List Room Facility Options

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 a Room Photo

Delete one photo from a room's gallery. Call getMyStayRooms first to find the exact fileName. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

输入参数roomId必填stayId必填fileName必填roomArea必填

reorderRoomPhotos

Reorder Room Photos

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.

输入参数roomId必填stayId必填roomArea必填fileNames必填

createStayPackage

Create a Pricing Package

Create a new pricing package on a Stay, optionally with initial price tiers. Requires an MCP agent token scoped to the owning account.

输入参数listedmaxPaxpricesstayId必填endDatestartDatecurrencyFK必填roomTypeFKstayRoomFKdescriptionpackageName必填advertisingEndpoint

updateStayPackage

Update a Pricing Package

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.

输入参数listedmaxPaxpricesstayId必填endDateisActivepackageId必填startDatecurrencyFKroomTypeFKstayRoomFKdescription另有 2 个

deleteStayPackage

Delete a Pricing Package

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.

输入参数stayId必填packageId必填

getCurrencyOptions

List Currency Options

List valid currency ids/codes for use as a package's currencyFK.

无需输入参数。

updateStayOrganisationalData

Update Stay Organisational Data

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.

输入参数citystategeoLatgeoLngstayId必填addressreason1reason2reason3postCodecheckInTocountryId另有 18 个

updateHostBusinessProfile

Update My Business Profile

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.

输入参数vatNumberbusinessNameentityAccountbusinessNumber

uploadStayPhoto

Upload a Stay Photo

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.

输入参数urlarea必填base64roomIdstayId必填

getMyStayContacts

Get My Stay's Contacts and Social Links

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 so the agent knows current values. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

输入参数stayId必填

updateStayContacts

Update Stay Contacts and Social Links

Update a Stay's contact/owner/manager details and social media links. Only fields supplied are changed. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

输入参数stayId必填tikToktwitterwebsiteyoutubelinkedIninstagramownerNameownerEmailmanagerNameownerMobilebookingEmail另有 6 个

getMyStayFacilities

Get My Stay's Facilities

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: 'General', 'Services', 'Languages Spoken', 'Meal', 'Position', 'Remote Worker'. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

输入参数group必填stayId必填

updateStayFacilities

Update Stay Facilities

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.

输入参数group必填stayId必填facilityDetailIds必填

getFacilityGroups

List Facility Groups

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_TOKEN.

无需输入参数。

getStayTypeOptions

List Accommodation Type Options

List valid values for a Stay's 'Main Accommodation Type' (stayTypeId in updateStayOrganisationalData). Requires NOMADSTAYS_MCP_AGENT_TOKEN.

无需输入参数。

getCountryOptions

List Country Options

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 Cancellation Policy Options

List valid values for a Stay's cancellation policy (cxPolicyId in updateStayOrganisationalData). Requires NOMADSTAYS_MCP_AGENT_TOKEN.

无需输入参数。

getAdditionalInformationOptions

List Children, Pets and Parking Options

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/childrenAllowedId/parkingId. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

输入参数filterName必填

getBusinessModelOptions

List Business Model Options

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

List My Stay's Photos

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_MCP_AGENT_TOKEN.

输入参数stayId必填

deleteStayPhoto

Delete a Stay Photo

Delete one photo from a Stay. Call getMyStayPhotos first to find the exact fileName. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

输入参数area必填stayId必填fileName必填

reorderStayPhotos

Reorder Stay Photos

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.

输入参数area必填stayId必填fileNames必填

getProductInfo

Get Product Price

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. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

输入参数productId必填

purchaseProduct

Start a Product Purchase

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.

输入参数productId必填applicationId

getPurchaseStatus

Check Purchase Status

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.

输入参数saleId必填

listStayApplications

List My Stay Applications

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.

无需输入参数。

getStayApplication

Get a Stay Application

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.

输入参数applicationId必填

createStayApplication

Start a Stay Application

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/businessModelId, since country-specific rules (VAT number, tourism number, permitted business models) are enforced server-side and rejections name the specific field/reason. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

输入参数zipcitystatemobilestreetwebsitecommentsstayNamevatNumberhasKitchenbusinessNamemonthlyPrice另有 12 个

saveStayApplication

Update a Stay Application

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.

输入参数zipcitystatemobilestreetwebsitecommentsstayNamevatNumberhasKitchenbusinessNamemonthlyPrice另有 13 个

submitStayApplication

Submit a Stay Application

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.

输入参数applicationId必填

listExperienceApplications

List My Experience Applications

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.

无需输入参数。

getExperienceApplication

Get an Experience Application

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.

输入参数applicationId必填

createExperienceApplication

Start an Experience Application

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/postalCountryId/businessModelId, since country-specific rules (VAT number, tourism number, permitted business models) are enforced server-side and rejections name the specific field/reason. Experiences must run a minimum of 4 days. Requires NOMADSTAYS_MCP_AGENT_TOKEN.

输入参数zipcitystatemaxPaxmobilestreetdaysQtywebsitecommentsvatNumberhasKitchendescription另有 16 个

saveExperienceApplication

Update an Experience Application

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.

输入参数zipcitystatemaxPaxmobilestreetdaysQtywebsitecommentsvatNumberhasKitchendescription另有 17 个

submitExperienceApplication

Submit an Experience Application

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.

输入参数applicationId必填

quoteStayBooking

Get a Booking Quote

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.

输入参数petsroomsadultscheckIn必填checkOut必填childrenpackageId必填

bookStay

Book a Stay

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 MUST send the checkoutUrl to the member and tell them to open it in their own browser to pay — you cannot complete this payment on their behalf, and no card details ever pass through you. Requires NOMADSTAYS_MCP_AGENT_TOKEN with the 'bookings' scope.

输入参数quoteId必填contactNamecontactEmailcontactPhonespecialRequest

createStayEnquiry

Enquire About a Stay

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 working day). The member's name and email come from their Nomad Stays account; do not ask for them. Only send an enquiry the member has asked for, and include what they told you (who is travelling, work needs, questions). Use bookStay instead whenever a quote succeeds. Requires the 'bookings' scope.

输入参数nightsstayId必填message必填arrivalDate

getBookingStatus

Check Booking Status

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 the 'bookings' scope.

输入参数pnr必填

listMyBookings

List My Bookings

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.

无需输入参数。

listCoworkingApplications

List My Coworking Applications

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.

无需输入参数。

getCoworkingApplication

Get a Coworking Application

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.

输入参数applicationId必填

createCoworkingApplication

Start a Coworking Application

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 to 'submit'. Call getCountryOptions first to find a valid country name (must be the exact tbCountry.CountryName, not an ID). Requires NOMADSTAYS_MCP_AGENT_TOKEN.

输入参数cityaddresscountrywebsitetelephoneapplicantNamecoworkingNameapplicantEmail

saveCoworkingApplication

Update a Coworking Application

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.

输入参数cityaddresscountrywebsitetelephoneapplicantNameapplicationId必填coworkingNameapplicantEmail

submitCoworkingApplication

Submit a Coworking Application

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.

输入参数applicationId必填

版本历史

1
  1. v0.7.0最新Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分