Booking.com 風の検索/見積/予約フローを MCP ツールとして提供する最小サーバーです。開発・検証向けにモックデータを返します。
- Node.js 18+(推奨: 20 以上)
- npm(または互換ツール)
npm install任意で .env を用意(※モックでは不要! 実 API 切替時に使用想定。)
PORT=3002
BOOKING_API_BASE=
BOOKING_API_KEY=
- 開発(TS を直接実行)
npm run mcp:dev
- HTTP 待受(デフォルト: http://localhost:3002/mcp)
npm run mcp:http
- STDIO 起動
npm run mcp:stdio
- ビルド
npm run build
- STDIO:
- Transport: STDIO
- Command:
tsx - Arguments:
/Users/<you>/Desktop/booking/src/server.ts - Env:
MCP_TRANSPORT=stdio
- HTTP:
npm run mcp:httpで待受し、URL にhttp://localhost:3002/mcp
- STDIO(Apps SDK 推奨の一つ): 本リポ直下の
app.jsonを読み込み - HTTP(公開 URL が必要):
- サーバを起動:
npm run mcp:http - トンネル: 例)
ngrok http 3002 - 発行された
https://...の末尾に/mcpを付けて Connector の MCP Server URL に設定 - モック運用中は Authentication = None
- サーバを起動:
search_accommodationsquote_bookingcreate_reservation
戻りは MCP の structuredContent を使用(エラー時は isError: true)。
{
"destination": "Tokyo",
"check_in": "2025-11-22",
"check_out": "2025-11-24",
"guests": 2,
"rooms": 1,
"currency": "JPY",
"max_price": 20000,
"free_cancellation": true
}- 「東京で 11/22–11/24、大人2名、上限2万円、キャンセル可で探して」
- モデルが
search_accommodationsを自動選択→引数を生成 - 続けて「1件目を見積もって」→
quote_booking - 「予約して。連絡先は… 支払いトークンは tok_test_123」→
create_reservation- (トークンを発行していなくても ChatGPT 等の MCP クライアントが生成してくれる)
- モデルが
自然言語の場合、明示的な JSON は不要です(ツールの引数はモデルが自動で構築します)。
bookingClient()内のモック実装を HTTP 呼び出しへ置換- 認証情報は
.envで管理(API Key / OAuth いずれでも対応可能)
MIT(必要に応じて変更してください)