bookdata について
bookdataは宿泊先の検索や旅行計画向けのローカルブリッジで、目的地と日程による検索やBooking.comの個別施設の詳細取得に対応します。HasData Booking MCPサーバーへ呼び出しを転送し、予約や支払い機能のない読み取り専用データを提供します。
主な機能
- 01目的地、日程、人数で宿泊先を検索
- 02価格、種類、評価、設備で絞り込み
- 03施設の規約、価格、レビューを取得
- 04写真と空室の客室タイプを表示
- 05ページ単位で検索結果を取得
活用シーン
- 01目的地と日程に合う宿泊先を比較
- 02施設の価格、規約、住所を確認
- 03設備や評価で宿泊先を絞り込み
MCP 対応
MCP サーバーとして、上流のツール一覧をローカルで公開し、ツール呼び出しと引数をHasData Booking MCPサーバーへ転送して、結果をそのまま返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | 施設ページの Booking.com URL 全体です。`booking.com` と `www.booking.com` のホストのみ受け付けます。 |
| rooms | number | はい | 予約する部屋数です。 |
| adults | number | はい | 全室の大人の宿泊者数です。 |
| children | number | はい | 全室の子どもの宿泊者数(0~10)です。子どもがいない場合は `0` を指定します。 |
| currency | string | いいえ | レスポンスで返される料金の通貨です。`hotelCurrency` を指定すると、各施設の現地通貨を使用します。ドキュメントに記載された値(52 種類)のいずれかを正確に指定します。例:`hotelCurrency`、`usd`。 |
| language | enum | いいえ | Booking.com のインターフェースおよびレスポンス内のローカライズされたフィールドの言語です。en-us | en-gb | de | nl | fr | es | es-ar | es-mx | ca | it | pt-pt | pt-br | no | fi | sv | da | cs | hu | ro | ja | zh-cn | zh-tw | pl | el | ru | tr | bg | ar | ko | he | lv | uk | hi | id | ms | th | et | hr | lt | sk | sr | sl | vi | tl | is |
| checkInDate | string | はい | `YYYY-MM-DD` 形式のチェックイン日です。未来の日付で、`checkOutDate` より前である必要があります。 |
| checkOutDate | string | はい | `YYYY-MM-DD` 形式のチェックアウト日です。`checkInDate` より後である必要があります。 |
| childrenAges | string | いいえ | 子どもの年齢をカンマ区切りで指定します。子ども 1 人につき 1 つの値を指定します(各値は `0`~`17`)。`children > 0` の場合は必須で、年齢の数は `children` と一致する必要があります。 例:`1,3,7` |
詳細
bookdata
bookdataは、ホスト型のHasData Booking MCP サーバーへの小規模なローカルブリッジで、Booking.comのデータを JSONとして返します。目的地のキーワード、チェックイン日と チェックアウト日、および宿泊人数(部屋数、大人、子ども)を指定すると、その場所で利用可能な宿泊施設を検索します。同じ日程で 1件の施設のBooking.com URLを指定すると、その施設の詳細情報(名称と 住所、ポリシー、料金、評価とレビュー、写真、 およびその期間に利用できる客室スイート)を取得します。
このブリッジは宿泊施設データを保持しません。上流サーバーのツール一覧を、 ライブエンドポイントから取得したとおりにローカルで提供し、各ツール呼び出しを上流に転送して、 結果を変更せずに返します。取得した機能は読み取り専用です。Booking.comの公開リスティングページを検索して読み取ります。 ベンダー名にかかわらず、予約、予約管理、 メッセージ送信、または支払いのツールは含まれていません。
ツール
hasdata_booking_search_getBookingSearchResults— 目的地を指定して宿泊施設を検索します。必須項目:keyword、checkInDate、checkOutDate、rooms、adults、children。任意のフィルターにはchildrenAges、sort、料金範囲、ベッドルーム数とバスルーム数、 施設タイプ、星評価、レビュー評価、 設備とアクセシビリティ機能、ベッドと 予約の設定、language、currency、およびpage(1ページあたり25件)が含まれます。各ホテルの ID、タイトルとURL、所在地、ポリシー、料金、評価、 レビュー概要、およびメイン写真を返します。hasdata_booking_place_getBookingPlaceDetails— 1件の施設の詳細情報を取得します。必須項目:url(Booking.comの施設URL)、checkInDate、checkOutDate、rooms、adults、children。 任意項目:childrenAges、language、currency。 施設の名称、住所と座標、ポリシー、料金、評価とレビュー概要、写真、 および利用可能な客室スイートを返します。
設定
HASDATA_BOOKING_MCP_URL(任意)— 上流エンドポイントを 上書きします。デフォルトはhttps://mcp.hasdata.com/mcp?apis=bookingです。(この 上書き用フックは、この再構築独自の明示的な再現部分です。)HASDATA_API_KEY(任意)— 設定すると、上流へのすべての リクエストに、呼び出し元自身のHasData APIキーを使ったx-api-key: <key>ヘッダーが付与されます。未設定の場合、 キーヘッダーは送信されません。(ヘッダー名と環境変数名は、元のレジストリレコードで固定されています。この環境変数からキーを 転送する動作は明示的な再現部分です。元の機能はキーなしで取得されています。)
転送の仕組み
最初のツール呼び出し時に、クライアントは上流とのストリーム可能な
HTTPセッションを開きます。まずJSON-RPCの
initializeリクエスト(protocolVersion 2025-03-26、
clientInfo name bookdata)を送り、次に
notifications/initialized通知を送り、その後、呼び出し元の引数を変更せずに含めた
tools/callリクエストを送ります。上流からのinitializeの応答に
Mcp-Session-Idヘッダーが含まれている場合、その値は
セッションの後続リクエストすべてに引き継がれ、プロセスの実行中はセッションが再利用されます。
応答は通常のJSON形式、またはサーバー送信イベント形式で届くことがあります。どちらも読み取ります。
成功した上流の結果は、上流が設定したisErrorフラグも含めて、
そのまま渡されます。
JSON-RPCエラー、2xx以外のステータス、読み取り不能な応答、
または完了できないリクエストによる失敗は、テキストが
bookdata error:で始まるisError結果として返されます(このエラー表示は、
この再構築独自の明示的な再現部分です)。
CLI
各ツールは、JSON引数文字列を受け取るサブコマンドとしても実行できます。
npx @reneturcios/bookdata hasdata_booking_search_getBookingSearchResults '{"keyword":"Paris","checkInDate":"2026-11-10","checkOutDate":"2026-11-14","rooms":1,"adults":2,"children":0}'
npx @reneturcios/bookdata hasdata_booking_place_getBookingPlaceDetails '{"url":"https://www.booking.com/hotel/fr/example.html","checkInDate":"2026-11-10","checkOutDate":"2026-11-14","rooms":1,"adults":2,"children":0}'
npx @reneturcios/bookdata --version
終了コード:成功時は0、isErrorの結果の場合は1、
使用方法に誤りがある場合は2です。
MCP サーバー
npx -y @reneturcios/bookdata mcp
MCP クライアントの設定:
{
"mcpServers": {
"bookdata": {
"command": "npx",
"args": ["-y", "@reneturcios/bookdata", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/bookdata
docker run --rm ghcr.io/cloudcorprecords/bookdata --version
コンテナーのデフォルトコマンドはmcpなので、最初の形式はstdio MCP サーバーとして動作し、それ以外の引数は通常どおりCLIに渡されます。
開発
npm install
npm run build
npm test
npm run dev
テストスイートはすべて、スタブ化した JSON-RPC上流サーバーに対して実行されます。ライブネットワークへの呼び出しはありません。
ライセンス
MIT — LICENSEを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。