Zillow MCP Server
Zillow MCP Server
Claude、Cursor、Windsurf、その他のMCPクライアントに、読み取り専用のZillowツールを2つ提供するホスト型Model Context Protocol(MCP)サーバーです。充実したフィルターで売り出し中・賃貸中・成約済みのリスティングを検索でき、単一のプロパティを完全に読み取ることもできます。すべて構造化JSONとして返されるため、Zillowアカウントもホスト不要です。
ログインしていない訪問者に見えるZillow.com上の一般リスティングページを読み取ります。
https://mcp.hasdata.com/api/mcp?apis=zillow
コンテンツンツンツンツ
必要いもの
MCPクライアントと、ダンスボードから取得한HasData APIキーが必要です。カード不要で登録でき、トライアルでは5クレジット単位で約200回分をカバーします。これはリモートサーバーなので、もっともシンプルなのはURLとx-api-keyヘッダーを使う方法です。コンテナを実行する必要もなく、フロー中にZillowアカウントも必要ありません。stdioのみ対応のクライアントは、npmの@hasdata/zillow-mcpとPyPIのhasdata-zillow-mcpとして公開されている薄いランチャー経由で利用できます。以下に示します。
クイックスタート
サーバーURLはすべてのクライアントで共通です。Claude CodeとClaude Desktopで実地に検証しています。それ以外のブロックは、各クライアントがリモートサーバー向けに定義する形式に沿っています。
フィールド | 値 |
URL |
|
トランスポート | HTTP, streamable |
認証ヘッダー |
|
OAuth対応のクライアントは、同じURLをコネクタとして追加し、キーを設定ファイルに保存しなくてもサインインできます。
claude mcp add --transport http zillow "https://mcp.hasdata.com/api/mcp?apis=zillow" \
--header "x-api-key: HASDATA_API_KEY"「設定」、「Connectors」、「Add custom connector」の順に進め、https://mcp.hasdata.com/api/mcp?apis=zillowを貼り付けてサインインします。
設定ファイルを使う場合、Claude Desktopはローカル(stdio)サーバーのみ読み込むため、stdioランチャーを経由してリモートサーバーに接続します。@hasdata/zillow-mcpがそのランチャーで、環境変数からキーを読み取ります。以下をclaude_desktop_config.jsonに追加します。
{
"mcpServers": {
"zillow": {
"command": "npx",
"args": ["-y", "@hasdata/zillow-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}NodeではなくPythonを使う場合は、ランチャーをPyPIパッケージに置き換えます。uvxが手動インストールなしで実行できます。
{
"mcpServers": {
"zillow": {
"command": "uvx",
"args": ["hasdata-zillow-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}すべてのプロジェクトで~/.cursor/mcp.json、単一のプロジェクトでは.cursor/mcjsonを使用します:
{
"mcpServers": {
"zillow": {
"url": "https://mcp.hasdata.com/api/mcp?apis=zillow",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}~/.codeium/windsurf/mcp_config.json。Windsurfはフィールド名をurlではなくserverUrlとします:
{
"mcpServers": {
"zillow": {
"serverUrl": "https://mcp.hasdata.com/api/mcp?apis=zillow",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}ワークスペース内の.vscode/mcp.json:
{
"servers": {
"zillow": {
"type": "http",
"url": "https://mcp.hasdata.com/api/mcp?apis=zillow",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}プロンプト例
コードではなくプロンプトです。貼り付けるとエージェントがツールを選択します。すべて成功した呼び出しあたり5クレジット消費するため、各プロンプトに必要な呼び出し回数を注記しています。
テキサス州オースティンの売出し中物件、3ベッド以上・$600k未満で、新しい順に10件だけ価格と掲載日を並べてください。
呼び出し1回、5クレジット。価格、ベッド数、面積、掲載日は検索結果に含まれます。
上位結果の詳細を引き出してください:価格履歴、税金履歴、価格見積、および転校先学校を含める。
呼び出し1回、5クレジット。これらは物件ページにあり、詳細ツールがURLから読み取ります。
オースティンの賃貸コンドで猫可なものを探し、最も安い3件の賃貸見積価格を取得してください。
呼び出し4回、20クレジット。検索1回と、物件各1回の呼び出しが続きます。
この物件URLについて、売出価格、価格見積もり、価格履歴の直近3件を教えてください。
呼び出し1回、5クレジット。
検索結果があれば順位付けや候補絞り込みは十分です。価格履歴、税履歴、見積、学校、エージェントはプロパティ呼び出しから得られるため、候補を絞ってから3件を調べる手順は、検索1回+物件呼び出し3回になります。
ツール
読み取り専用のツールが2つあります。以下のサンプルは実際の呼び出しからトリミングしたもので、数値は市場動向によって変わります。形を理解する目的でお読みください。各ツールの名前は、完全なフィールドリストを持つエンドポイントリファレンスにリンクしています。
サンプルはペイロードであり、レスポンス全体ではありません。tools/callの結果にはテキストのブロックが1つ入ります。そのテキスト自体は、url、status、text、jsonを保持するJSONで、スクレイピングデータはjson以下にあります。Raw JSON-RPCレスポンスからは result.content[0].text をパーし、その後 .json で参照します。チャットクライアントはその構造を自動的に展開しますが、エンドポイントに直接接続するコードからは展開されません。
Get Zillow real estate listings を取得
hasdata_zillow_listing_getRealEstateListings
場所キーワードで絞りましょうか、ページングされたリスティングを取得。
パラメーター | 型 | 必須 | 説明 |
| string | yes | 検索する場所。例: |
| string | yes |
|
| number | 価格帯 | |
| number | ベッド数・バス数帯域 | |
| array |
| |
| number/string |
| |
| string |
| |
| number | 結果ページ |
リファレンスには、平方フィート、ロットサイズ、築年数、HOA帯域に加え、otherAmenities__、views__、pets__、listingType、propertyStatus__、listingPublishOptions__なども掲載されています。
戻り値は、totalResultsを持つsearchInformation、properties配列、そしてnextPaginationのうちの次のページへのURL、で構成されます。各物件には、id, url, homeType, status, price, currency, 賃貸見積もりrentZestimate, daysOnZoolow, 平方フィートのarea, addressRaw, 構造化されたaddress, latitude, longitude, beds, baths, listingDetails, mediaDetails, photosが含まれます。
{
"id": "60134551",
"url": "https://www.zillow.com/homedetails/6116-Speyside-Dr-Austin-TX-78754/60134551_zpid/",
"homeType": "SINGLE_FAMILY",
"status": "FOR_SALE",
"price": 320000,
"currency": "$",
"rentZestimate": 2286,
"daysOnZillow": 0,
"area": 2277,
"address": { "street": "6116 Speyside Dr", "city": "Austin", "state": "TX", "zipcode": "78754" },
"beds": 4,
"baths": 3
}Get Zillow property details
hasdata_zillow_property_getPropertyDetails
URLで指定した1物件の全情報を取得します。
パラメーター | 型 | 必須 | 説明 |
| string | yes | Zillowの物件URL。リスティング結果の |
| boolean | 掲載エージェントのメールアドレス取得を試みます。5クレジット追加されるため、物件呼び出しは5ではなく10クレジットになります |
完全なページを返します。price, currency, fees, beds, baths, area, yearBuilt, homeType, mlsId, 構造化された address と geo, description と highlights, photos, schools, daysOnZillow, views, saves, agentInfoブロック、およびpriceHistory, taxHistory, mortgage配列です。Zillowによる価格見積もりは、zestimate, estimatedSaleRange, rentZestimateを持つ zestimate オブジェクトで返ってきます。これは確定値ではなく見積もりです。
areaはここではオブジェクトです({ livingArea, livingAreaUnits })。検索ツールが返すフラットな数値ではありません。物件ページの平方フィートはarea.livingAreaを読んでください。area > 2000のような数値比較をオブジェクトに対して行うと、警告なく失敗します。
{
"id": 60134551,
"status": "FOR_SALE",
"price": 320000,
"currency": "USD",
"yearBuilt": 2002,
"beds": 4,
"baths": 3,
"area": { "livingArea": 2277, "livingAreaUnits": "Square Feet" },
"fees": { "monthlyHoaFee": "$500 annually" },
"zestimate": { "zestimate": 318100, "estimatedSaleRange": "$302K - $334K", "rentZestimate": 2286 },
"address": { "street": "6116 Speyside Dr", "county": "Travis County" },
"agentInfo": { "agentName": "Marie Coleman", "brokerName": "eXp Realty" },
"priceHistory": [{ "date": "2026-08-24", "price": 320000, "event": "listedForSale" }],
"schools": { "elementarySchool": { "name": "Bluebonnet Trail", "district": "Manor ISD" } }
}エラーと失敗経路
ツール呼び出しでHTTPエラーコードがクライアントに返ることはほぼありません。MCPレイヤーは200で応答し、失敗を結果に含めます。isErrorがtrueで、理由がテキストとして入ります。エージェントは、通常ステータス行をみるような場面でメッセージを読み取ります。
間違ったキーは、接続失敗ではなくツール出力として表示されます。 tools/list は空でなければどんなキーでも受け入れ、両方のツールを返すため、クライアントはハンドキエクを完了して緑色になります。最初のツール呼び出しで isError: true と最後に HasData API error: 401 Unauthorized が返ります。この文字列に注してください。それ以前のフローでは何も報告されないからです。
キーが無い場合、その最初の実際のAPIエラーになります。 認証はツールより前に実行されるため、接続自体が401で失敗です。CORSヘッダーが存在するので、ブラウザベースのクライアントは不機娚なネットワークエラーではなく、ステータスを読むことができます。
スキーマに違反する引数は、スクレイプが起、前拒原されます。 サーバーはisError: true とテキスト MCP error -32602: Input validation error を確認します。該当フィールドを明示します。データ取得されず、課金もされません。
検索結果0件は、正常な結果として空の properties 配列を返します。 在庫がない場所とフィルタでも、requestMetadata.status が ok のままです。ループ処理の前に、配列の長さを調べてください。
削除済み物件は400を返します 、requestMetadata.status が errorになります。古い検索で取得したURLが、もはやない物件を指すことがあります。
データを伴う結果には requestMetadata.id も含まれるため、サポートに問い合わせる際に役立ちます。
料金、無料枠、制限
各 Zillow ツールは、成功した呼び出しごとに 的に ==5 クレジット を必要とします。 extractAgentEmails をオンにすると、物件呼び出しに5 クレジットが追加され、5 でなく10 クレジットになります。メールが不要ならオフにしてください。レスポンス・サイズは価格に影響しません。
無料トライアルはカードなしで30日間で1,000クレジットで、基本レートの Zillow 呼び出しに約200回分です。その後、アクティブなアカウントには、残高が100を下回るたびに毎日100クレジットを補充されます。そのため、低ボリュムのエージェントれば無料枠で無期限に動かせます。
有料プランは、200,000クレジット(30,000回の呼び出し)から月額**$49で始まります。単価格はボリュームに応じて下がり、エンリププランの1,000回呼び出しあたり$1.23から、Businessの$0.50**、Growthの**$0.42**、そして最大の[高ボリューム・プラン](https://hasdata; ... ) Note: I need to keep URL. Let me write correctly:
有料プランは、200,000クレジット(30,000回の呼び出し)に対して月額**$49から始まります。単価はボリュームに応じて下がり、エンリププランの1,000回呼び出しあたり$1.23から、Businessの$0.50**、Growthの**$0.42**、そして最も大規模な高ボリュームプランの**$0.37**までです。 —— yeah.
Actually I worry about typing the URL in the first line while ensuring it matches. I'll copy from source: https://hasdata.com/prices?... — actually no, the source is https://hasdata.com/prices?utm... — the source text: "(https://hasdata.com/prices?}utm_source=github\\\\&utm_medium=syndication\\\\&utm_campaign=zillowMCP)" — I must preserve that exactly. So I'll write https://hasdata.com/ricing?utm_source=github\&utm_medium=syndication\&utm_campaign=zillowMCP). Careful: original URL domain "hasdata.com/prices". I need to check if it's "prices" or "pricing". In source, first link is "prices" (I believe becс "Plans and costs" page is /prices). Looking at source: in the first paragraph: [high-volume plans](https://hasdata.com/prices?utm_source=github\&utm_medium=syndication\&utm_campaign=zillow-MCP). The source text: "https://hasdata.com/prices?utm_source=github\\\\&utm_medium=syndication\\\\&utm_campaign=zillow-mcp". Yes, "prices". I'll copy it.
Similarly the other URLs:
https://hasdata.com/prices?utm_source=github\&utm_medium=syndication\&utm_campaign=zillow-mcp...apis/zillow-api?...etc.
Good.
Now write the full final. I'll do it now in one piece, ensuring each line.有料プランは、200,000クレジット(40,000回の呼び出し)に対して月額**$49から始まります。単価は容量に応じて下がり、エントリープランの1,000回の呼び出しあたり$1.23から、Businessの$0.50**、Growthの**$0.42**、そして最大規模の高ボリュームプランでは**$0.37**までになります。
プランは同時実行数も決定します。無料トライアルは同時に1リクエスト、Startupは15、Businessは30、Growthは50、高ボリュームプランは200から1,500までです。無人で動作させるものであれば、上限超過のケースを防御的に処理してください。
200以外のレスポンスが返ったリクエストは課金されません。成功しても結果が見つからなかった呼び出しも、それでも呼び出しとして扱われます。
ツールの選択
apisクエリパラメータは、エージェントが参照できるツールを決定します。ツールが少ないほど、ツール定義に消費されるコンテキストが減り、モデルが誤ったツールを選択する可能性も低くなります。
?apis=zillow the two tools in this repo
?apis=zillow,redfin add Redfin real estate
?apis=zillow,google_maps add Google Maps placesこのパラメータはzillowのようなプロバイダー名と、zillow_listingのような個別のAPI名を受け取ります。スペルが間違っている名前は無視されます。すべての名前が誤っている場合、リクエストは400で失敗し、レスポンスボディには認識できなかった名前と有効な値の一覧が両方記載されます。パラメータを省略すると、同じエンドポイントでHasDataの全57ツールが公開されます。
比較
Zillow自身のAPIプログラムは、Bridge Interactive APIやMortgage APIのように、メンバーやパートナーが自社の在庫を移動するためのもので、公開市場を自己完結で参照する方法ではありません。リスティングを検索したり、任意の物件情報を読むには、公開ページをスクレイピングするのが一般的で、このサーバーはそれを安定したスキーマの背後で行っています。
ZillowパートナーAPI | 本サーバー | |
目的 | 自社またはMLS在庫の管理 | 公開市場の閲覧 |
アクセス | メンバーシップまたはパートナー承認 | キー1つとURL1つ |
マーケット全体の検索 | 制限あり | 可能(リッチなフィルタ付き) |
セットアアプ | ビジネスオンボーディング | 不要 |
出力 | パートナーフィード | 価格とベッド数が解析済みの構造化JSON |
このサーバーがやらないこと。 投稿、リードの提出、アカウント情報の扱いはいっさいあリま膳ん。本サーバーが読むのは、サインアウトした訪問者がZillow.comで見らることのできるものだけです。
FAQ
公式のZillow MCPサーバーはありますか?
Zillowは公式のものをリースしていません。このサーバーはHasDataがメンテナンスし、公開ページを読むものなので、Zillowのアカウントは不要です。
Zillow MCPサーバーとは何ですか?
Zillowのリスティングデータを、AIクライアントが呼び出せるためのツールとして公開するサーバです。クライアントはモデルコンテキストプロトコルでツール呼び出しを送信し、サーバーはデータを取得して構造化JSONを返します。モデルはその結果を処理します。このサーバーは2つのツールを公開しており、リモートで稼働します。
ZillowのアカウントやAPIキーは必要ですか?
いいえ。必要な資格情報はHasDataのキーだけです。ツールはZillow.comの公開ページを読み込むため、申し込むZillowメンバーシップはありません。
検索結果に価格推移や学校情報が表示されないのはなぜですか?
Zillowが検索カードにそれらを含めていないためです。それらの情報は物件詳細ページで確認でき、詳細ツールがURLで読み取ります。まず検索で絞り込み、その後、詳細を求めて物件ツールを呼び出してください。
価格推定とは何ですか?
zestimateオブジェクトには、Zillow自身による推定価格とその範囲が含まれています。賃貸価格の推定も含まれます。これはモデルの出力であり、査定や確定した成約価格ではありません。推定値として扱ってください。
他のHasData APIと一緒に使えますか?
はい。apisパラメータはリストを受け取るので、?apis=zillow,redfinと指定すると、エージェントはZillowとRedfinの両方を使用できます。パラメータを外すとすべてのAPIが使えます。
HasDataはZillowと関係がありますか?
いいえ。HasDataは独立したサービスで、Zillow Group, Inc.には所属しません。その承認や支援も受けていません。“Zillow”はそれぞれの権利者の商標です。
コンプライアンスと個人データ
HasDataは公開されているデータのみにアクセスします。プラットフォームの利用規約が自動アクセスを制限していることがあります。あなた自身のコンプライアンスはあなた自身で責任を負ってください。収集するデータに、リスティングエージェントの連絡先などの個人情報が含まれる場合は、GDPR、CCPA、またはお住い管轄の同等の規則に基づく合法的な根拠があることを確認してください。
HasDataリンク
製品ページとリクエストビルダー | |
サーバードキュメント | |
全57ツールを1つのサーバーで | |
クライアントのウォークスルー | |
その他に私たちがスクレイプするもの | |
プランとクレジットコスト | |
キーと使用状況 |
開発
このリポジトリは、リモートサーバーの設定とドキュメントを提供します。ビルドステップもコンテナ化するものもありません。
test/にあるテストは、ツールの契約を検証します。それは、ここでコミットをしなくても壊れる可能性がある部分です。テストでは、?apis=zillowがちょうど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 Connectors
Zillow MCP for AI agents: property data, Zestimates & listings — 300+ fields per home. Free tier.
U.S. real-estate data: property records, AVM value + rent estimates, sale/rental listings.
RealEstateAPI MCP — property search, detail, and skip-trace (realestateapi.com)
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/zillow-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server