Airbnb MCP Server
Airbnb MCP Server
Claude、Cursor、Windsurf、その他のあらゆるMCPクライアントに、読み取り専用のAirbnbツールを2つ提供する、ホステッドModel Context Protocol(MCP)サーバーです。場所と日付で滞在を検索したり、個々のリスティングを完全な構造化JSONとして読み取ったりできます。Airbnb開発者アカウントやパートナー承認は一切不要です。
ログアウトした訪問者でも見ることができる公開リスティングページを読み込みます。
https://mcp.hasdata.com/api/mcp?apis=airbnb
Contents
Related MCP server: lilo-vacation-rentals
What you need
MCPクライアントと、ダッシュボードから取得できるHasData APIキーが必要です。APIキーはカード不要で無料作成でき、トライアルでは5クレジット単位で約200回の呼び出しができます。これはリモートサーバーなので、もっとも簡単な方法はURLとx-api-keyヘッダーを使うことです。実行するコンテナも、フロー全体でAirbnb開発者アカウントも一切必要ありません。stdioにしか対応していないクライアントは、薄いランチャーを経由して接続できます。このランチャーはnpmで@hasdata/airbnb-mcp、PyPIでhasdata-airbnb-mcpとして公開されており、後述します。
Quick start
サーバーのURLはすべてのクライアントで共通です。Claude CodeとClaude Desktopでは、実際に動作確認をしています。その他のブロックは、各クライアントに文書化されたリモートサーバーの形式に従っています。
Field | Value |
URL |
|
Transport | HTTP, streamable |
Auth header |
|
OAuthをサポートするクライアントでは、同じURLをコネクタとして追加し、設定ファイルにキーを書かなくてもサインインできます。
claude mcp add --transport http airbnb "https://mcp.hasdata.com/api/mcp?apis=airbnb" \
--header "x-api-key: HASDATA_API_KEY"「設定」→「コネクタ」→「カスタムコネクタを追加」の順に進み、https://mcp.hasdata.com/api/mcp?apis=airbnb を貼り付けてサインインします。
設定ファイルを使う方法では、Claude Desktopはローカル(stdio)サーバーのみを読み込むため、リモートサーバーにはstdioランチャーを経由して接続します。@hasdata/airbnb-mcpパッケージがそのランチャーです。これは環境からキーを読み取ります。これをclaude_desktop_config.jsonに追加してください:
{
"mcpServers": {
"airbnb": {
"command": "npx",
"args": ["-y", "@hasdata/airbnb-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}Node.js代わりにPythonを使う場合は、ランチャーをPyPIパッケージに置き換えます。これらはuvxで手動インストールなしで実行できます:
{
"mcpServers": {
"airbnb": {
"command": "uvx",
"args": ["hasdata-airbnb-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}すべてのプロジェクトには~/.cursor/mcp.json、単一プロジェクトには.cursor/mcp.json:
{
"mcpServers": {
"airbnb": {
"url": "https://mcp.hasdata.com/api/mcp?apis=airbnb",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}~/.codeium/windsurf/mcp_config.json。WindsurfはurlではなくserverUrlというフィールド名を使います:
{
"mcpServers": {
"airbnb": {
"serverUrl": "https://mcp.hasdata.com/api/mcp?apis=airbnb",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}ワークスペース内の.vscode/mcp.json:
{
"servers": {
"airbnb": {
"type": "http",
"url": "https://mcp.hasdata.com/api/mcp?apis=airbnb",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}Example prompts
プロンプトであり、コードではありません。貼り付けると、エージェントが自分でツールを選択します。また、各プロンプトに必要な呼び出し回数を注記しています。成功した呼び出しには毎回5クレジットかかるからです。
大人2名で9月15日から18日までオースティンの滞在を検索し、1泊$200未満で評価が最も高い10件を教えてください。
1回の呼び出し、5クレジット。対象評価と1泊あたりの価格は検索結果に含まれます。
最初の候補の上位を見つけて、その完全なアメニティ、正確な宿泊人数と部屋数、そしてホスト情報を取得してください。
1回の呼び出し、5クレジット。これらはプロパティページにあります。詳細ツールはURLから読み取ります。
夫2名,3泊のオースティンでの宿泊の1泊料金をナッシュビルと比較してください。
2回の呼び出し、10クレジット。都市ごとに1回の検索です。
このリスティングURLで、ベッドとバスの数、そしてホストがスーパーホストかどうかを教えてください。
1回の呼び出し、5クレジット。
検索結果はあえて余分なものを使わないようにしています。ランク付けや候補の絞り込みに十分な内容です。アメニティ、ベッド、ホスト、完全な説明はプロパティの呼び出しで得られるため、3件の宿に絞り込んでからそれぞれ調べるプロンプトは、検索1回とプロパト3回になります。
Tools
2つの読み取り専用ツールです。以下のサンプルは実際の呼び出しから一部をトリムしたもので、値はAirbnbの更新に応じて動きます。形状として読んでください。各ツール名からはエンドポイントのリファレンスにリンクしていて、完全なフィールド一覧を確認できます。
サンプルはペイロードであり、レスポンス全体ではありません。tools/callの結果には1つのテキストブロックが含まれ、そのテキスト自体がurl、status、text、jsonを持つJSONです。スクレイピングされたデータはjsonの下にあります。生のJSON-RPCレスポンスからのパスはresult.content[0].textをパースしてから.jsonです。チャットアプリケーションはこれを自動的にアンラップしますが、エンドポイントと直接話すコードではアンラップされません。
Get Airbnb listings
hasdata_airbnb_getAirbnbListings
場所と日付で検索した結果の1ページ。
Parameter | Type | Required | Notes |
| string | はい | 検索する場所 (例: |
| string | はい | チェックイン日、 |
| string | チェックアウト日、 | |
| number | ゲスト構成。各項目に人数 | |
| string | 前回のレスポンスの |
properties 配列と pagination を返します。pagination の nextPageToken と pageTokens で結果セットをたどります。各プロパティには id、url、title、latitude、longitude、短い description のタグライン、photos 配列、rating、reviews、Guest favorite や Superhost などの badges 配列、そして price オブジェクトが含まれます。price には originalPrice と、割引がある場合は任意の discountedPrice、for 3 nights のような qualifier、breakdown が含まれます。
検索結果は意図的に控えめです。ベッド、バス、アメニティ、ホスト、完全な説明は含まれています。これらは下のプロパティツールで取得してください。検索結果では、にんまり、ベッドルーム数を期待しないでください。
{
"id": "17545365",
"url": "https://www.airbnb.com/rooms/17545365",
"title": "Home in East Austin",
"latitude": 30.25741,
"longitude": -97.73366,
"description": "Downtown Casa - neighborhood feel, close to it all",
"rating": 4.87,
"reviews": 601,
"badges": ["Guest favorite"],
"price": {
"originalPrice": "$607",
"discountedPrice": "$447",
"qualifier": "for 3 nights",
"breakdown": [{ "description": "3 nights x $149.00", "price": "$447.00" }]
}
}Get Airbnb property details
hasdata_airbnb_property_getAirbnbPropertyDetails
URLを使って完全に1件のリスティングを読み取ります。
Parameter | Type | Required | Notes |
| string | はい | AirbnbのリスティングURL。検索結果の |
title、["4 guests", "2 bedrooms", "2 beds", "2 baths"] のような overview 配列、完全な description、rating、reviews、address、latitude、longitude、photos 配列、guestCapacity、host オブジェクト、amenities 配列、safetyAndPropertyInfo を返します。host オブジェクトには name、isSuperhost、isVerified、ホスト自身の reviews、rating、yearsHosting が含まれます。各アメニティには title、type、任意の description、available フラグがあるため、フィルターは available を読み取ります。リストにあるアメニティがすべて存在するとは想定しません。
{
"id": "17545365",
"title": "Downtown Casa - neighborhood feel, close to it all",
"overview": ["4 guests", "2 bedrooms", "2 beds", "2 baths"],
"rating": 4.87,
"reviews": 601,
"address": "Austin, Texas, United States",
"guestCapacity": 4,
"host": { "name": "Deanna", "isSuperhost": true, "isVerified": true, "reviews": 1273, "rating": 4.86, "yearsHosting": 11 },
"amenities": [
{ "title": "Wifi", "type": "SYSTEM_WI_FI", "available": true },
{ "title": "Free washer – In unit", "type": "SYSTEM_WASHER", "available": true }
]
}Errors and failure paths
ツール呼び出しの結果でHTTPエラーコードをクライアントが目にすることはほとんどありません。MCPレイヤは200を返し、失敗は結果の中に入れて isError を true にします。理由はテキストです。エージェントはステータスラインを期待する場所で、代わりにメッセージを読み取ります。
キーが間違っている場合、接続の失敗ではなくツール出力として表れます。 tools/list は空でない任意のキーを受け入れて両方のツールを返すので、クライアントはハンドシェイクを完了して緑色を表示します。最初のツール呼び出しでは isError: true と、テキスト HasData API error: 401 Unauthorized が返ります。その文字列に注意してください。フローのそれ以前で問題を報告することはないからです。
キーが欠落している場合は、唯一の実際のHTTPエラーです。 認証作業はツールの実行前に走るため、接続自体が401で失敗します。CORSヘッダーが存在し、ブラウザのクライアントは不透明なネットワーク障害ではなく ステータスを受け取ります。
ツールのスキーマに違反する引数は、スクレイピングの前に拒否されます。 サーバーは isError: true とテキスト MCP エラー -32602: Input validation error を返し、nr違反フィールドを指定します。データの抽出も課金そも行われません。
空室がない検索はエラーではなく、空配列の properties を持つ成功結果を返します。 場所と期間に空室がなかった場合も、requestMetadata.status が ok に設定された結果が戻ります。イテレーション前に配列の長さを確認してください。
取り下げたリスティングの URL は requestMetadata.status が error として返ります。 古い検索結果の URL が、もう存在しない宿泊先を指すことがります。
データを含む結果には、サポートで引用する価値のある requestMetadata.id も入ってきます。
Pricing, free tier and limits
各Airbnbツールは 成功した呼び出しごとに5クレジット です。レスポンスサイズによって価格は変わりません。 数十件ある検索ページも、2件の検索ページも同じ料金です。
無料トライアルは、カード不要で30日間1,000クレジット であり、Airbnbの呼び出し200回分です。トライアル終了後も、アクティブなアカウントは残高が100を下回るたびに毎日100クレジットが自動追加されるため、低ボリュームのエージェントは無料層で無期限に動かせます。
有料プランは 月額49ドル からで、200,000クレジット(40,000回の呼び出し)です。単価は量が増えるごとに下がります。エントリープランの 1,000回あたり1.23ドル から、Business で 0.50、Growth で 0.42、最大規模のハイボリュームプラン では 0.37 ドルになります。
プランはまた同時実行数も含みます。無料トライアルは1つ同時に、Startup は15、Business は30 、Growth は50、ハイボリュームプランは200から1500までです。無人で動かすものは、過負荷を防ぐように 舵取ります。
200以外で応答したリクエストは課金されません。結果がゼロでも成功した呼び出しは1回分です。
Tool selection
apis クエリパラメータで、エージェントに使われるツールが含まれます。ツールが少ないほど、ツール定義に費やされるコンテキストが少なく、モデルが間違ったツールを選ぶ可能性も低くなります。
?apis=airbnb the two tools in this repo
?apis=airbnb,booking add Booking.com stays
?apis=airbnb,google_maps add Google Maps placesパラメータには airbnb のようなプロバイダ名や、airbnb_listing のような個別API名を指定できます。名前の綴りを直した場合は無視されます。すべての名前が間違っていると、リクエストは400で失敗し、ボディには認識できなかった名前と有効なすべての値が列挙されます。パラメータを省略すると、同じ エンドポイント で HasData の57個すべてのツールが公開されます。
How it compares
Airbnbには公開の検索APIはありません。APIプログラムは、自社のリスティングを管理するためのパートナー・そしてコホスト向けの統合であり、市場を分析する方法ではありません。滞在を検索し任意のリスティングを読み取るには、パブリックページをスクレイピングするが唯一のルートであり、このサーバーはそれを安定したスキーマの背後で実現しています。
Airbnb partner API | 本サーバー | |
目的 | 自分のリスティングを管理する | 公開マーケットを読む |
アクセス | パートナー承認 | 1つのキーと思えば URL |
マーケット横断検索 | いいえ | はい |
セットアップ | ビジネスオンボーディング | 不要 |
出力 | パートナーのペイロード | 構造化JSON、価格と評価が事前パース済み |
このサーバーが行わないこと。 予約、メッセージ、ホストダッシュボード、ゲストデータはありません。ログアウトした訪問者が見ることのできるものだけを読み取ります。
FAQ
公式のAirbnb MCPサーバーはありますか?
Airbnbは公式のものを公開していません。本サーノーはHasDataが維持しており、公開ページを読み取るため、Airbnb開発者アカウントは不要です。
Airbnb MCPサーバーとは何ですか?
Airbnbのデータを、AIクライアントが呼び出せるツールとして公開するサーバーです。クライアントはModel Context Protocol経由でツール呼び出しを送り、サーバーはデータを取得して構造化JSONを返し、モデルがその結果を扱います。本サーバーは2つのツールを公開し、リモートで動作します。
Airbnb APIキーやパートナーアカウントは必要ですか?
いいえ。唯一の認証情報はHasDataのキーです。ツールはAirbnbの公開ページを読取るため、パートナーオンボーデイングは不要です。
検索結果にベッド数やアメニテイが表示れないのはなぜですか?
Airbnbが検索カーに載せていないからです。それらは物件ページにあり、詳細ツールはURLから読取ります。まず検索で候補を絞。後、後、物件ツールを呼び出して詳細を確認します。
ゲスト数、ペット、日付でフィルタできますか?
はい。リスティングツールはcheckIn、checkOutと、adults、children、infants、petsの数を取り、その人数と期間に対する空き状況と料金を返します。
他のHasData APIと一緒に使えますか?
はい。apisパラメータはリストを受け取ります。?apis=airbnb,bookingとすれば、あなたのAIエージェントにAirbnbとBooking.comを追加します。パラめータを外せばすべてを利用できます。
コンプライアンスとパーソナルデータ
HasDataは公に利用可能なデータにのがnullアクセスします。プットフォームの規約が自動アクセスを制限する場合があり、各自ののンコンプライアンスに責め任はあなたにあります。収集したデータに個人情報が含まれる場合、GDPR、CCPA、またはお住いの地域の同等の規則に基づく正当な法的根拠があることを確認してください。
HasData links
製品ページとリクエストビルダー | |
サーバードキュメント | |
全57ツールを1つのサーバーで | |
クライアントウォークスルー | |
その他にスクレイピングできるもの | |
プランとクレジット費用 | |
キーと使用状況 |
開発
このリポジトリは、リモートサーエブの構成とドキュメントです。ビルドステップはなく、コンテナ化するものもありません。
test/のテストは、ツール契約を検証します。ここは、このリポジトリへのコミッとトなしで破れる可能性がある部分です。?apis=airbnbが該当に2つのツールを返すこと、すべてのツールが必須パラメータを宣言していること、名前が変更れていないこと、そして使用中のキーが実際に受入れられることをチェックします。最後のチェックは実際にツールを呼び出し、5クレジットを消耗します。それは、正しい理由で失敗できるカナリアの代金です。
# macOS and Linux
HASDATA_API_KEY=your_key_here npm test
# Windows PowerShell
$env:HASDATA_API_KEY="your_key_here"; npm test同じスイートは、毎回のプッシュと週1回のスケジューでCIで実行されます。誰もこのリポジトリを触れなくても、アッパストリームのツールリストが変わる可能性があるためです。失敗があれば、ツールリストが動い、キーが動かなくなり、エンドポイントで不在になったことを意味し、その原因をアサーショシメッセージが示します。
コントリビューション
ツールのプランブルとレスポンスサンプルの訂正が、最も有効なコントリビューションです。それらはずれが生じやすい部分なためです。実行したコールと得られたレスポンスを含めてください。フォークからのプルリクエストはキーなしでテストを実行し、ライブチェックはレッドにならずスキップします。
ライセンス
MIT。 LICENSEをご覧ください。
Maintenance
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables users to search Airbnb listings with advanced filtering options and retrieve detailed property information through an MCP server interface.22,255MIT
- AlicenseCqualityDmaintenanceThe only MCP server with AI guest risk scoring and extortion detection. Search properties, book instantly, protect hosts. 41 tools across 5 layers. Instant API key, 10 free credits.6MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Airbnb — lets AI agents search listings, check availability, manage reservations, and book stays via browser automation.6MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for searching stays, comparing prices across Booking.com, Airbnb, Vrbo, and Google Hotels, and fetching reviews via natural language in AI assistants.MIT
Related MCP Connectors
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/HasData/airbnb-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server