hoteldata について
hoteldataは、Google Hotelsを検索するローカルブリッジです。旅行計画ツールやエージェント向けに、宿泊施設・料金・設備情報を多様な条件で取得します。結果はHasDataから転送され、保存されません。
主な機能
- 01ホテルとバケーションレンタルを検索
- 02価格・評価・種別・設備で絞り込み
- 03料金・レビュー・施設情報を取得
- 04CLIとstdio MCPサーバー
活用シーン
- 01指定日の宿泊先を比較
- 02設備や価格で宿泊施設を絞り込み
- 03寝室数を指定して貸別荘を検索
MCP 対応
MCPクライアントに読み取り専用のホテル検索ツールを公開し、呼び出しをホスト型HasData Google Hotels MCPサーバーに転送します。予約や決済のツールはありません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 2 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| q | string | はい | Google Hotels の検索クエリ(都市、地区、ホテル名など)。 |
| gl | string | いいえ | 検索対象を限定する国の 2 文字の国コードです。ドキュメントに記載された値を正確に 1 つ指定してください(245 種類に対応)。例:`ac`、`af`。 |
| hl | string | いいえ | 検索に使用する言語の 2 文字コードです。ドキュメントに記載された値(159 種類)のいずれかを正確に指定してください。例:`af`、`ak`。 |
| adults | number | いいえ | 大人の宿泊者数(1-6)。 |
| brands | string | いいえ | 絞り込むブランド ID のカンマ区切りリスト。同じクエリのレスポンス内の `brands` にブランド ID が返されます。 |
| rating | enum | いいえ | ゲストの総合評価の下限で絞り込みます。選択肢: - `threePointFivePlus` — 3.5 星以上 - `fourPlus` — 4.0 星以上 - `fourPointFivePlus` — 4.5 星以上threePointFivePlus | fourPlus | fourPointFivePlus |
| sortBy | enum | いいえ | ホテルの検索結果を並べ替えます。オプション: - `lowestPrice` — 最低価格 - `highestRating` — 最高評価 - `mostReviewed` — レビュー数最多lowestPrice | highestRating | mostReviewed |
| bedrooms | number | いいえ | 寝室数の下限(バケーションレンタルのみ)。 |
| children | number | いいえ | 子どもの宿泊者数(1-5)。宿泊者の合計(大人 + 子ども)は 6 人を超えることはできません。 |
| currency | string | いいえ | 返される価格の通貨を指定します。ドキュメントに記載された値を正確に 1 つ指定してください(71 個から選択)。例:`ALL`、`DZD`。 |
| maxPrice | number | いいえ | 選択した通貨での1泊あたりの最高料金。 |
| minPrice | number | いいえ | 選択した通貨での1泊あたりの最低料金。 |
| amenity__ | array | いいえ | 絞り込むアメニティのリスト(例:`hotelFreeWifi,hotelPool`)。 ホテルを検索する場合(デフォルトモード)は、`hotel*` を接頭辞とする値が適用されます。`vacationRentals=true` の場合は、`rental*` を接頭辞とする値が適用されます。 Google Hotels ではモードごとに異なるアメニティのカタログが公開されているため、2 つの値セットは重複しません。検索するモードに合った値を渡してください。 |
| bathrooms | number | いいえ | 浴室数の下限(バケーションレンタルのみ)。 |
| hotelClass | string | いいえ | 含めるホテルの星クラスのカンマ区切りリスト(例:`2,3,4,5`)。 |
| checkInDate | string | はい | チェックイン日。形式は 'yyyy-MM-dd' です。 |
| checkOutDate | string | はい | チェックアウト日。形式は 'yyyy-MM-dd' です。 |
| childrenAges | string | いいえ | 子どもの年齢をカンマ区切りで指定します(例:`5,8,12`)。子どもの人数と一致する必要があります。 |
| ecoCertified | boolean | いいえ | エコ認証を取得した宿泊施設のみを表示します。 |
| nextPageToken | string | いいえ | ホテル検索結果の次のページを取得するためのトークン。以前のレスポンスの `pagination` フィールドで返されます。 |
| propertyToken | string | いいえ | 特定の宿泊施設の詳細を取得するためのトークン。検索結果の各宿泊施設に含まれて返されます。 |
| specialOffers | boolean | いいえ | 特別オファーのある宿泊施設のみを表示します。 |
| propertyType__ | array | いいえ | 絞り込む宿泊施設タイプのリスト(例:`hotelResort,hotelMotel`)。 ホテルを検索する場合(デフォルトモード)は、`hotel*` を接頭辞とする値が適用されます。`vacationRentals=true` の場合は、`rental*` を接頭辞とする値が適用されます。 Google Hotels ではモードごとに異なる宿泊施設タイプのカタログが公開されているため、2 つの値セットは重複しません。検索するモードに合った値を渡してください。 |
| vacationRentals | boolean | いいえ | ホテルではなく、バケーションレンタルを検索します。 |
| freeCancellation | boolean | いいえ | 無料キャンセルに対応した宿泊施設のみを表示します。 |
詳細
hoteldata
hoteldata は、JSON 形式で Google Hotels の検索結果を返す、ホスト型の HasData Google Hotels MCP サーバーへの小規模なローカルブリッジです。場所または宿泊施設名に加えてチェックイン日とチェックアウト日を指定すると、一致するホテルとバケーションレンタルを取得します。返されるのは、上流から返された各宿泊施設の名前、リンク、所在地、1 泊あたりの料金と合計料金、ホテルクラス、宿泊者評価とレビュー件数、画像、アメニティ、近隣の場所です。宿泊者の構成(大人、人数と年齢を指定した子ども)やローカライズ(国、言語、通貨)を指定でき、価格帯、並べ替え順、宿泊施設の種類、アメニティ、最低評価、ブランド、ホテルクラス、キャンセル無料、特別オファー、エコ認証、寝室数と浴室数の最低条件を指定するバケーションレンタルモード、ページングトークンなど、幅広いフィルターで検索を調整できます。
このブリッジは検索結果を独自に保存しません。ライブエンドポイントから取得した上流サーバーのツール一覧をそのままローカルで提供し、各ツール呼び出しを上流に転送して、結果を変更せずに返します。取得した機能は読み取り専用の検索機能のみです。予約、宿泊予約、支払いのツールは含まれていません。
ツール
hasdata_google_travel_hotels_getGoogleHotels— 1 回の滞在について Google Hotels を検索します。必須項目:q(検索クエリ。都市、近隣地域、またはホテル名)、checkInDateとcheckOutDate(どちらもyyyy-MM-dd形式)。任意項目:gl(国)、hl(言語)、currency、adults、childrenとchildrenAges(子どもの人数と一致する、カンマ区切りの年齢)、sortBy(lowestPrice/highestRating/mostReviewed)、1 泊あたりのminPriceとmaxPrice、propertyType__(ホテルとレンタルの宿泊施設の種類)、amenity__(ホテルとレンタルのアメニティ)、rating(宿泊者の最低評価)、brands、hotelClass、freeCancellation、specialOffers、ecoCertified、vacationRentals、bedrooms、bathrooms、nextPageToken(ページング)、propertyToken(特定の宿泊施設の詳細)。 宿泊施設ごとの料金、価格比較、評価、レビュー、アメニティ、お得情報、ページネーショントークンを返します。
設定
HASDATA_GOOGLE_HOTELS_MCP_URL(任意)— 上流エンドポイントを上書きします。デフォルトはhttps://mcp.hasdata.com/mcp?apis=google_travel_hotelsです。 (上書き用フックは、この再構築で独自にラベル付けしたものです。)HASDATA_API_KEY(任意)— 設定すると、呼び出し元自身の HasData API キーとして、 すべての上流リクエストにx-api-key: <key>ヘッダーを付与します。未設定の場合、 キーヘッダーは送信されません。(ヘッダー名と環境変数名は元のレジストリレコードで 固定されています。この環境変数からキーを転送する動作は、再構築で独自にラベル付けしたものです。 元の機能はキーなしで取得されました。)
転送の仕組み
最初のツール呼び出し時に、クライアントは上流とのストリーミング可能な
HTTP セッションを開きます。まず JSON-RPC の initialize リクエスト(protocolVersion 2025-03-26、
clientInfo name hoteldata)を送り、次に notifications/initialized 通知を送り、
その後、呼び出し元の引数を変更せずに含めた tools/call リクエストを送ります。上流が
initialize に Mcp-Session-Id ヘッダーを付けて応答すると、その値はセッションの
後続のすべてのリクエストに付与されます。セッションはプロセスの稼働中、再利用されます。
応答は通常の JSON またはサーバー送信イベントとして届く場合があり、どちらも読み取られます。
上流からの成功結果は、上流が設定した isError フラグも含め、内容をそのまま通過させます。
JSON-RPC エラー、2xx 以外のステータス、読み取れない応答、完了できないリクエストなどの
失敗は、テキストが hoteldata error: で始まる isError 結果として返されます
(このエラー表示は、この再構築で独自にラベル付けしたものです)。
CLI
このツールは、1 つの JSON 引数文字列を受け取るサブコマンドとしても利用できます。
npx @reneturcios/hoteldata hasdata_google_travel_hotels_getGoogleHotels '{"q":"San Francisco","checkInDate":"2026-11-10","checkOutDate":"2026-11-12","adults":2,"sortBy":"lowestPrice"}'
npx @reneturcios/hoteldata --version
終了コード:成功時は 0、isError 結果の場合は 1、使い方に誤りがある場合は 2 です。
MCP サーバー
npx -y @reneturcios/hoteldata mcp
MCP クライアントの設定:
{
"mcpServers": {
"hoteldata": {
"command": "npx",
"args": ["-y", "@reneturcios/hoteldata", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/hoteldata
docker run --rm ghcr.io/cloudcorprecords/hoteldata --version
コンテナのデフォルトコマンドは mcp なので、最初の形式は stdio MCP サーバーです。それ以外の引数は通常どおり CLI に渡されます。
開発
npm install
npm run build
npm test
npm run dev
テストスイートはすべて、スタブ化された JSON-RPC アップストリームに対して実行されます。実際のネットワーク呼び出しはありません。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。