Nomad Stays について
Nomad Staysは、旅行者とTrusted Stay Partners向けの宿泊データMCPサーバーです。世界各地のリモートワーク向け宿泊施設の検索に加え、予約・申請や、パートナー自身の掲載情報を管理するツールを提供します。
主な機能
- 01場所・予算・ライフスタイルで宿泊施設を検索
- 02設備・Wi-Fi速度・空室状況で絞り込み
- 03部屋と日程の空き状況を確認
- 04アカウント・申請・予約を作成
- 05自分の掲載情報・部屋・プランを管理
活用シーン
- 01予算と日程に合うリモートワーク先を探す
- 02設備やWi-Fi条件を比較する
- 03宿泊またはコワーキングを申請する
- 04Trusted Stay Partnerとして掲載情報を更新する
MCP 対応
MCPクライアントに宿泊施設の検索、空室確認、申請、予約、掲載管理ツールを公開します。アカウント、予約、パートナー管理機能にはMCPエージェントトークンが必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.nomadstays.com/mcpclaude mcp add --transport http nomadstays https://mcp.nomadstays.com/mcp{"mcpServers":{"nomadstays":{"type":"http","url":"https://mcp.nomadstays.com/mcp"}}}Cursor で開く{"servers":{"nomadstays":{"type":"http","url":"https://mcp.nomadstays.com/mcp"}}}VS Code で開く{"mcpServers":{"nomadstays":{"type":"http","url":"https://mcp.nomadstays.com/mcp"}}}{"mcpServers":{"nomadstays":{"serverUrl":"https://mcp.nomadstays.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
78| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | はい | 滞在識別子(EntryId フィールドを検索) |
詳細
NomadStays MCP サーバー
AI エージェントが、国、大陸、場所、ライフスタイル、予算、アメニティ、空室状況で検索できる、Nomad Stays の宿泊施設データにアクセスするための MCP(Model Context Protocol) サーバーです。
Claude、ChatGPT、および MCP に対応するあらゆる AI エージェントと互換性があります。
利用可能なツール
最新の全ツール一覧は、合計 78 個です。パラメーターを含む完全なリファレンスは mcp.nomadstays.com をご覧ください。この README ではカテゴリ別に一覧を掲載しています。ツールの追加や変更時には、両方を最新の状態に保ってください。
検索、空室状況、参照(公開、認証不要)
| ツール | 説明 |
|---|---|
getStaysByCountry | 2 文字の国コードまたは国名で宿泊施設を検索します |
getStaysByContinent | 大陸(ヨーロッパ、アジア、アフリカなど)で検索します |
getStaysByLocation | 都市、地域、場所の説明を対象にフリーテキスト検索します |
getStaysByLifestyle | ライフスタイルカテゴリ(デジタルノマド、ビーチ、都市など)で絞り込みます |
getStaysByBudget | 指定した期間と通貨で予算内の宿泊施設を探します |
getStaysByAmenities | アメニティ(WiFi、プール、エアコンなど)で絞り込みます |
getStaysByWiFiSpeed | WiFi の最低ダウンロード速度(Mbps)で絞り込みます |
getStayByID | 1 件の宿泊施設の詳細を取得します |
getStayCountsByCountry | 国ごとの宿泊施設数を多い順に取得します(大陸での絞り込みは任意) |
getAllLifestyles | 利用可能なライフスタイルカテゴリをすべて一覧表示します |
getAllAmenities | 利用可能なアメニティをすべて一覧表示します |
checkStayAvailability | 指定した日付の宿泊施設の空室状況を確認します |
findNearestAvailability | 希望の日程が埋まっている場合、最も近い空室日を探します |
getAvailabilityByMonth | 特定の月の空室期間をすべて取得します |
getRoomAvailability | 指定した期間の部屋ごとの空室状況を取得します |
getRoomAmenities | WiFi の測定値を含む、特定の部屋のアメニティ一覧を取得します |
searchHelpCenter | Nomad Stays ヘルプセンターの記事を検索します |
getHelpCenterArticle | ID で指定したヘルプ記事を取得します |
listHelpCenterCategories | ヘルプセンターのカテゴリをすべて一覧表示します |
AI エージェント向けアカウント登録
サポート対象の方がまだ Nomad Stays アカウントをお持ちでない場合は、signupNomadStaysAccount ツールを使ってアカウントを作成できます。認証、ブラウザー、CAPTCHA は不要です。
| ツール | 説明 |
|---|---|
signupNomadStaysAccount | アカウントをお持ちでない方のために、新しい Nomad Stays アカウントを作成します。pending_email_confirmation を返します。セッションやトークンは返されません。 |
注意事項:
- アカウントは作成されますが、本人がメールで届く確認リンクをクリックするまでは無効です。この呼び出しではセッションやトークンは返されず、エージェントが本人としてサインインしたり操作したりすることもできません。これが信頼境界です。公開されているブラウザー登録フォームで行われる CAPTCHA/ハニーポットによる確認に代わり、リクエストの背後に実在する受信箱があることを証明します。
- サーバー側で、送信元 IP ごとに 5 分間で 2 回までに制限されています(メインリポジトリの
Controllers/AgentSignupApiController.cs)。 - 本人がメールアドレスを確認し、通常どおり
www.nomadstays.com/Account/Loginでログインすると、MCP ベアラートークンをリクエストするか、OAuth を完了できます(下記「Trusted Stay Partner 管理ツール」を参照)。これにより、以後は本人のエージェントが本人に代わって操作できます。
商品、購入、申請ツール(MCP エージェントトークンが必要です)
宿泊、体験、コワーキングの各申請では、いずれも同じ list/get/create/save/submit のライフサイクルをたどります。宿泊と体験の申請には、1回限りの39ユーロの申請料がかかります(商品8と9)。コワーキングの申請は無料です。
| ツール | 説明 |
|---|---|
getProductInfo | 商品の価格と購入可能かどうかを確認します(商品8=宿泊申請、9=体験申請) |
purchaseProduct | 呼び出し元本人のために購入を開始します。checkoutUrl を返すか、「waived」として処理されます |
getPurchaseStatus | 決済プロバイダーに最新の情報を照合し、購入が支払い済みかどうかを確認します |
listStayApplications / getStayApplication / createStayApplication / saveStayApplication / submitStayApplication | 宿泊申請の全ライフサイクル |
listExperienceApplications / getExperienceApplication / createExperienceApplication / saveExperienceApplication / submitExperienceApplication | 体験申請の全ライフサイクル(最低4日間の体験が必要で、サーバー側で適用されます) |
listCoworkingApplications / getCoworkingApplication / createCoworkingApplication / saveCoworkingApplication / submitCoworkingApplication | コワーキング申請の全ライフサイクル。申請料はかかりません |
予約(MCP エージェントトークンが必要です)
| ツール | 説明 |
|---|---|
quoteStayBooking | 確定前に、宿泊予約の料金(パッケージ、日程、ゲスト)を見積もります |
bookStay | 呼び出し元本人のために予約を作成します。checkoutUrl を返すか、予約確定として処理されます |
getBookingStatus | 決済プロバイダーに最新の情報を照合し、予約が確定しているかどうかを確認します |
listMyBookings | 呼び出し元本人の予約を一覧表示します。保留中の予約については、needsAction/checkoutUrl も含まれます |
createStayEnquiry | 現時点で予約できない宿泊について問い合わせます。Nomad Stays チームがメールで会員に返信します |
Trusted Stay Partner 管理ツール
上記のツールは読み取り専用で公開されています(申請はセルフサービスですが、引き続きトークンが必要です)。別のツール群を使うと、認証済みの Trusted Stay Partner 自身の AI エージェントが、自身のリスティングデータを読み取り、更新できます。Nomad Stays の管理 UI で利用できる機能と同じ範囲です(それ以上でも、それ以下でもありません)。これらのツールを使うには、パートナーの Operator Information ページ(www.nomadstays.com/stayadmin/user-profile-stays)で発行したベアラートークンが必要です(トークンを申請するには、アカウントで 2FA を有効にする必要があります)。トークンは NOMADSTAYS_MCP_AGENT_TOKEN として設定します。すべての呼び出しは、認証済みアカウントが実際に所有する Stay のみにサーバー側で制限されます。
| ツール | 説明 |
|---|---|
getMyStays / getMyStayDetail / updateStayDetail | Stay の基本情報(タイトル、説明、住所、ポリシー)を読み取り/更新します |
getMyStayOnboardingStatus | Stay ダッシュボードに表示される 6 つの「リスティング完成度」スコア(Stay Details、Availability、Rooms、Packages、Wi-Fi、Operator Information)と全体の割合を返します。Wi-Fi はテストの鮮度を示すスコアであり、速度の評価ではありません |
getMyStayRooms / createStayRoom / updateStayRoom / deleteStayRoom | ベッドサイズ、設備、写真を含む、部屋の完全な CRUD 操作 |
getRoomTypeOptions / getRoomFacilityOptions | 有効な部屋タイプ/設備を参照します(Boutique と標準の Stay で異なります) |
uploadStayPhoto / getMyStayPhotos / deleteStayPhoto / reorderStayPhotos | Stay 単位の写真管理(並べ替えを含む) |
deleteRoomPhoto / reorderRoomPhotos | 部屋単位の写真管理 |
getMyStayPackages / createStayPackage / updateStayPackage / deleteStayPackage | 料金パッケージの CRUD 操作 — sellPrice は常にサーバー側で計算され、直接設定することはできません |
getCurrencyOptions / getBusinessModelOptions | パッケージの通貨とビジネスモデルを参照します |
getMyStayOrganisationalData / updateStayOrganisationalData | 住所、チェックイン/チェックアウトのポリシー、キャンセルポリシー、ペット/子ども/駐車場に関する規則 |
getStayTypeOptions / getCountryOptions / getCancellationPolicyOptions / getAdditionalInformationOptions | 組織データの各フィールドを参照します |
getMyStayContacts / updateStayContacts | 一般公開される連絡先情報 |
getMyStayFacilities / updateStayFacilities / getFacilityGroups | 管理 UI とまったく同じグループ分けの設備チェックボックス |
getMyBusinessProfile / updateHostBusinessProfile | ビジネスプロフィール(個人情報、銀行情報、税務情報は含まれません。これらが MCP 経由で公開されることはありません) |
主なルール:Boutique の Stay(部屋タイプ Boutique1~Boutique6)と標準の Stay は別々に検証されます。必ず最初に getRoomTypeOptions を呼び出してください。パッケージの料金ティアは 7/14/21/30 泊に固定されていますが、すべて設定する必要はありません(例:1 週間のみの設定も有効です)。advertisingEndpoint は Advertising ビジネスモデルの Stay にのみ適用されます。個人情報、銀行情報、税務情報は、すべてのツールから恒久的に除外されています。
セットアップ
1. 前提条件
- Node.js 20+
- Nomad Stays の SQL Server データベースへのアクセス(Coolify/Hetzner 上でホスト)
2. インストール
git clone https://github.com/nomadstays/nomadstays-mcp-server.git
cd nomadstays-mcp-server
npm install
3. 設定
cp .env.example .env
# Edit .env and set your NOMADSTAYS_DB_CONNECTION string
4. ビルド
npm run build
5. 実行(stdio モード — Claude Desktop/ローカル MCP クライアント向け)
node build/index.js
6. 実行(HTTP モード — ホスト型/リモートデプロイ向け)
PORT=8080 node build/index.js
HTTP エンドポイント:
POST /mcp— MCP Streamable HTTP トランスポートGET /health— ヘルスチェックGET /api/mcp/stats/daily— 日次使用統計GET /api/mcp/stats/tools— ツールごとの使用統計
Claude Desktop の設定
claude_desktop_config.example.json をコピーし、パスと接続文字列を更新してから、claude_desktop_config.json にマージします。
{
"mcpServers": {
"nomadstays": {
"command": "node",
"args": ["/path/to/nomadstays-mcp-server/build/index.js"],
"env": {
"NOMADSTAYS_DB_CONNECTION": "Server=tcp:..."
}
}
}
}
デプロイ
本番環境の Nomad Stays のデプロイでは、MCP サーバーを Azure App Service ではなく、Coolify(Hetzner 上のセルフホスト環境)で Docker コンテナとして実行しています。このリポジトリには独自の Dockerfile は含まれていません。標準的な Node.js ビルド(Node 20 以降、npm run build を実行し、dist/index.js を起動)でコンテナ化し、Docker に対応した任意のホストにデプロイしてください。デプロイ先のプラットフォームで、NOMADSTAYS_DB_CONNECTION(および HTTP モードでは PORT/HTTP_PORT)を環境変数として設定してください。
技術スタック
- TypeScript + Node.js 20
- @modelcontextprotocol/sdk
- Express(HTTP モード)
- mssql(SQL Server 接続)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。