Skip to main content
Glama
danielk-am

@openbnb/mcp-server-airbnb

by danielk-am

downloads

Airbnb Search & Listings - MCP Bundle (MCPB)

Airbnbのリスティングを高度なフィルタリング機能付きで検索し、詳細な物件情報を取得するための包括的なMCP Bundleです。Model Context Protocol (MCP) サーバーとして構築され、MCP Bundle (MCPB) 形式でパッケージされているため、対応したAIアプリケーションへのインストールと使用を簡単にします。


🚀 ローカルサーバーを実行したくないですか? openbnb.ai をお試しください

👉 openbnb.ai は、ローカルセットアップなしで、Airbnb のリスティング検索という同じ問題を解決するホスト型MCPサーバーです。

このサーバーを自分でインストールして実行する手間を避けたい場合は、openbnb が、MCP クライアントから直接接続できる、完全ホスト型の代替手段です。このオープンソースサーバーが提供する機能を超えています:

  • ゼロセットアップ — Node も npx も、設定ファイルも、管理する更新も不要です

  • 高度なフィルタリング — ここにある基本のツールを超える充実した検索コントロール

  • MCP UI — 結果を閲覧するためのインタラクティブなUIコンポーネント(単なるテキストではありません)

  • マネージド&メンテナンス — お客様の代わりに稼働し続けます

セットアップ手順と、MCP クライアントの接続情報については、openbnb.ai をご覧ください。

オープンソースサーバーをセルフホストしたい場合は、この先をお読みください。


特徴

🔍 高度な検索機能

  • 場所ベースの検索 — 都市、州、地域に対応

  • 国際的な場所のサポート — クライアントサイドジオコーディングにより、米国外のクエリ(例:「パリ、フランス」「コペンハーゲン、デンマーク」)でも正しい都市に結果を返します

  • Google Maps Place ID との統合 — 正確な場所の指定が可能

  • 物件タイプフィルタリング — 一軒家、個室部屋、共用部屋、ホテルルーム

  • 日付フィルタリング — チェックイン日とチェックアウト日に対応

  • 宿泊人数の設定 — 大人、子供、子供、幼児、ペットを含む

  • 価格帯フィルタリング — 最低価格と最高価格の指定が可能

  • ページネーション — 多くの検索結果を閲覧するための対応

🏠 詳細な物件情報

  • 包括的なリスティング詳細 — 設備、ポリシー、ハイライトを含む

  • 位置情報 — 座標と近隣情報を含む

  • ハウスルールとポリシー — 予約判断に役立つ情報

  • 物件の説明と主な特徴

  • Airbnbリスティングへの直接リンク — スムーズな予約を実現

🛡️ セキュリティと法令遵守

  • robots.txt 遵守 — テスト用に設定可能なオーバーライド付き

  • リクエストタイムアウト管理 — ハングしたリクエストを防止

  • 詳細なログによる拡張エラーハンドリング

  • レートリミット認識 — 相手先に配慮した API の利用

  • MCPB ユーザー設定による安全な設定

インストール

Claude Desktop の場合

この拡張機能はMCP Bundle(.mcpb)ファイルとしてパッケージされています。インストールには:

  1. 最新の リタンス から .mcpb ファイルをダウンロードする

  2. ファイルを開く — Claude Desktop にインストールダイアログが表示される

  3. 必要に応じて拡張機能の設定を行う

robots.txt を無視するには、Claude Desktop の設定を開き、拡張機能に移動して、Ignore robots.txt トグルを有効にします。

Cursor などの場合

始める前に、npx 動作させるために、お使いのデスクトップに Node.js がインストールされていることを確認してください。

  1. Cursor 設定 > ツール & 統合 > 新しい MCP サーバー の順に移動します。

  2. 以下のいずれかを mcp.json に追加します:

    {
      "mcpServers": {
        "airbnb": {
          "command": "npx",
          "args": [
            "-y",
            "@openbnb/mcp-server-airbnb"
          ]
        }
      }
    }

    すべてのリクエストで robots.txt を無視する場合は、以下を --ignore-robots-txt 引数付きで使用します。

    {
      "mcpServers": {
        "airbnb": {
          "command": "npx",
          "args": [
            "-y",
            "@openbnb/mcp-server-airbnb",
            "--ignore-robots-txt"
          ]
        }
      }
    }
  3. 再起動します。

設定

拡張機能には、ユーザーが設定できる以下のオプションがあります:

robots.txt を無視する

  • タイプ: ブール値(チェックボックス)

  • デフォルト: false

  • 説明: Airbnb へのリクエスト時に robots.txt の制限を回避します

  • 推奨: テスト目的ではない限り無効のままにしてください

サードパーティのジオコーディングを無効にする

  • タイプ: ブール値(チェックボックス)

  • 環境変数: DISABLE_GEOCODING

  • デフォルト: false

  • 説明: Photon/Nominatim のジオコーディング手順をスキップし、Airbnb が場所の文字列を自分で解決できるようにします。これを有効にすると、PR 以前動作を除外します。 — すべての検索が airbnb.com へのみ行われ、サードパーティの呼び出しはありません。

  • 推奨: ゼロ・サードパーティ・アウトバウンドトラフィックが特別な必要がない限り、無効のままにしてください。有効にすると、米国外の検索で誤った結果を返す可能性があります。外部サービス を参照してください。

ツール

包括的なフィルタリングオプションを使って Airbnb のリスティングを検索します。

パラメータ:

  • location(必須) : 検索する場所(例:「サンフランシスコ、CA」)。placeId がない場合、サーバーはこの文字列を Photon/Nominatim 経由でクライアント側でジオコーディングします — 外部サービス を参照してください。

  • placeId(オプション): Google マップの Place ID。location をコスオーバーし、クライアント側のジオコーディングを完全にスキップします(サードパーティの呼び出しなし)。

  • checkin(オプション): チェックイン日(YYYY-MM-DD 形式)

  • checkout(オプション): チェックアウト日(YYYY-MM-DD 形式)

  • adults(オプション): 大人の人数(デフォルト: 1)

  • children(オプション): 子供の人数(デフォルト: 0)

  • infants(オプション): 乳幼児の人数(デフォルト: 0)

  • pets(オプション): ペットの数(デフォルト: 0)

  • minPrice(オプション): 一泊の最低価格

  • maxPrice(オプション): 一泊の最高価格

  • cursor(オプション): 結果を閲覧するためのページネーションカーソル

  • propertyType(オプション): 物件タイプでフィルタ — entire_homeprivate_roomshared_room、または hotel_room

  • ignoreRobotsText(オプション): このリクエストの robots.txt を上書きします

戻り値:

  • 物件詳細、価格、ダイレクトリンクを含む検索結果

  • さらに結果を閲覧するためのページネーション情報

  • 参照用の検索 URL

airbnb_listing_details

特定の Airbnb リスティングの詳細情報を取得します。

パラメータ:

  • id(必須) : Airbnb のリスティング ID

  • checkin(オプション): チェックイン日(YYYY-MM-DD 形式)

  • checkout(オプション): チェックアウト日(YYYY-MM-DD 形式)

  • adults(オプション): 大人の人数(デフォルトで1)

  • children(オプション): 子供の人数(デフォルト: 0)

  • infants(オプション): 乳幼児の人数(デフォルト: 0)

  • pets(オプション): ペットの数(デフォルト: 0)

  • ignoreRobotsText(オプション): このリクエストの robots.txt を上書きします

戻り値:

  • 詳細な物件情報。次の内容が含まれます:

    • 座標を含む位置情報

    • アメニティと施設设备。seeAllAmenitiesGroups として提供され、カテゴリ別にキーイングされたオブジェクトです。そのため、カテゴリを直接参照できます。Airbnbが打ち消し線で表示するアメニティは、固有の "Not included" カテゴリの下に表示されます。

    {
      "seeAllAmenitiesGroups": {
        "Bathroom": "Hair dryer",
        "Heating and cooling": "AC - split type ductless system, Heating",
        "Not included": "Dryer, Hot water"
      }
    }
    • ハウスルールとポリシー

    • 物件の詳細と説明

    • リスティングへの直接リンク

技術的な詳細

アーキテクチャ

  • ランタイム: Node.js 18+

  • プロトコル: stdioトランスポートを介したモデルコンテキストプロトコル (MCP)

  • 形式: MCP Bundle (MCPB) v0.3

  • 依存関係: セキュリティと信頼性を考慮した最小限の外部依存関係

外部サービス

airbnb.com に加えて、サーバーはロケーションクエリを正確な地図バウンディングボックスに変換するために、2つのサードパーティーのジオコーディングサービスにリクエストを行います。これにより、Airbnb のサーバーサイドのジオコーダーが多くの米国国外のクエリ(例えば「Paris, France」は Vendée に、「Copenhagen, Denmark」は Wisconsin になる)で誤った結果を生じる問題を回避できます。

サービス

エンドポイント

用途

備考

Photon

`photon.komoot.io」

プライマリジオコーダー。placeId なしの全検索で呼び出されます

Komoot が運用する無料の OSM ベースのサービスです。検索1件につき1リクエスト。

Nominatim

nominatim.openstreetmap.org

Photon がバウンディングボックスを返さない場合のみ呼び出されるフォールバックジオコーダー

OSMF 利用ポリシー の対象(最大約1 req/秒)

各検索でジオコーダーにはリクエスト内の location 文字列のみが送信されます。他のリクエストフィールド、IP 位置情報、トラッキング識別子は送信されません。もちろん、場所の文字列はユーザーが入力したものと同じ文字列です。

オプトアウトする方法は2つあります:

  • リクエストごと:明示的に placeId を指定します。placeId がある場合、サーバーはサードパーティの呼び出しなしで Airbnb 独自の場所検索を直接使用します。

  • グローバル:環境変数 DISABLE_GEOCODING=true を設定します。サーバーは Photon/Nominatim を完全にスキップし、生の location 文字列を Airbnb に渡します。これによりすべての検索でPR 以前の動作を復元し、サードパーティへのアウトバウンド通信をゼロに保証します — ただし、Airbnb 独自のジオコーダーが誤処理する米国以外の地域では、結果が壊れる可能性があります。デフォルトは false です。

ジオコーダーに到達できない場合や結果がない場合、サーバーは以前と同様に「location」文字列を Airbnbbus に直接送信します。したがって、障害時の最悪のケースは、国際検索が以前の(不完全な)動作に低下するだけで、検索自体が完全に失敗するわけではありません。

エラー処理

  • 詳細なログ記録(タイムスタンプ付き)

  • Airbnb のページ構造変更時は、徐々に正常終了

  • ネットワークリクエストのタイムアウト保護

  • トラブルシューティングのための詳細なエラーメッセージ

セキュリティ対策

  • デフォルトで robots.txt を尊重

  • リクエストタイムアウト制限

  • 入力検証とサニタイズ

  • 安全な環境変数の管理

  • 機密データを保存しない

パフォーマンス

  • Cheerio による効率的なHTML解析

  • 適切な場合はリクエストのキャッシュ

  • メモリ使用量を最小限に抑制

  • 高速な起動と応答

互換性

  • プラットフォーム: macOS、Windows、Linux

  • Node.js: 18.0.0 以上

  • Claude Desktop: 0.10.0 以上

  • その他 MCP クライアント: MCP に対応するアプリケーションと互換性がある

開発

ソースからビルド

# Install dependencies
npm install

# Build the project
npm run build

# Watch for changes during development
npm run watch

テスト

# Build, then run both suites
npm test

npm test はビルド済みサーバーを stdio を通じて動作し、ツールを実際に呼び出します:

  • test-extension.js — MCP ハンドシェイク、ツール一覧、検索、リスニング詳細、ジオコーディングの流れ(Photon、Nominatimフォールバック)

  • test-amenities.js — 複数の実在リスニングからのアメニティ抽出を確認し、Airbnb が打ち消し線で表示するアメニティが「提供されるアメニティ」として表示されなることを検査します

どちらも airbnb.com とジオコーダーへネットワークアクセスするため、インターネット接続が必要です。また、サービスのページ構造を変更した場合に失敗する可能性があります — それが存在目的でもありますが、同時に無人化されたCIゲートウェイには適していません。

サーバーは直接実行することもできます:

以下を実行します。

# Run with robots.txt compliance (default)
node dist/index.js

# Run with robots.txt ignored (for testing)
node dist/index.js --ignore-robots-txt

法的・倫理的配慮

  • Airbnb の利用規約の尊重: この拡張機能は、適切な調査と予約サポートを目的とする

  • robots.txt の遵守: 拡張機能によりデフォルトで robots.txt が尊重される

  • レートリミット: Airbnb サーバーに過剰な負荷かけないよう、リクエスト頻度に注意する

  • データ利用: また合法的な目的のために、公に入手可能な情報のみを抽出する

サポート

  • 問題: バグや機能リクエストは GitHub Issues までお知らせください

  • ドキュメント: リポジトリに追加のドキュメントが参照できます

  • コミュニティ: MCP と MCPB 開発についての議論に参加しましょう

ライセンス

MIT ライセンス — 詳細は LICENSE ファイルをご参照ください。

コントリビューション

コントリビューションを歓迎します!コントリビューションガイドラインをお読みいただき、改善点があればプルリクエストをお送りください。


注記: この拡張機能はAirbnb, Inc.とは提携していません。公開されているAirbnbのリスティングを検索・分析するための独立したツールです。

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/danielk-am/mcp-server-airbnb'

If you have feedback or need assistance with the MCP directory API, please join our Discord server