mcpField
B
bookdata

bookdata

ローカル
github.com/CloudCorpRecords地図・旅行02 日前に更新

bookdata について

bookdataは宿泊先の検索や旅行計画向けのローカルブリッジで、目的地と日程による検索やBooking.comの個別施設の詳細取得に対応します。HasData Booking MCPサーバーへ呼び出しを転送し、予約や支払い機能のない読み取り専用データを提供します。

主な機能

  1. 01目的地、日程、人数で宿泊先を検索
  2. 02価格、種類、評価、設備で絞り込み
  3. 03施設の規約、価格、レビューを取得
  4. 04写真と空室の客室タイプを表示
  5. 05ページ単位で検索結果を取得

活用シーン

  1. 01目的地と日程に合う宿泊先を比較
  2. 02施設の価格、規約、住所を確認
  3. 03設備や評価で宿泊先を絞り込み

MCP 対応

MCP サーバーとして、上流のツール一覧をローカルで公開し、ツール呼び出しと引数をHasData Booking MCPサーバーへ転送して、結果をそのまま返します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-bookdata": {
"command": "npx",
"args": [
"-y",
"@reneturcios/bookdata"
]
}
}
}
起動コマンドnpx -y @reneturcios/bookdata

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@reneturcios/bookdata0.1.0
ocighcr.io/cloudcorprecords/bookdata:0.1.0

ツール

2

掲載時のツール一覧 · 2 日前に更新

パラメーター型必須説明
urlstringはい施設ページの Booking.com URL 全体です。`booking.com` と `www.booking.com` のホストのみ受け付けます。
roomsnumberはい予約する部屋数です。
adultsnumberはい全室の大人の宿泊者数です。
childrennumberはい全室の子どもの宿泊者数(0~10)です。子どもがいない場合は `0` を指定します。
currencystringいいえレスポンスで返される料金の通貨です。`hotelCurrency` を指定すると、各施設の現地通貨を使用します。ドキュメントに記載された値(52 種類)のいずれかを正確に指定します。例:`hotelCurrency`、`usd`。
languageenumいいえ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
checkInDatestringはい`YYYY-MM-DD` 形式のチェックイン日です。未来の日付で、`checkOutDate` より前である必要があります。
checkOutDatestringはい`YYYY-MM-DD` 形式のチェックアウト日です。`checkInDate` より後である必要があります。
childrenAgesstringいいえ子どもの年齢をカンマ区切りで指定します。子ども 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を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。