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
コンテンツンツンツンツ
Related MCP server: Zillow56 MCP Server
必要いもの
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を参照してください。
Available Tools
2 toolshasdata_zillow_listing_getRealEstateListingszillow_listing: GET /AInspect
Get Zillow Real Estate Listings
Searches Zillow for-sale, for-rent, and sold listings by keyword with rich filters (price, beds, baths, home type, year built, lot/square footage, HOA, listing status, amenities, views, pet policy, days on Zillow) and pagination. Returns each listing with address, Zillow URL/zpid, price, Zestimate, beds/baths, sqft, home type, status, days on Zillow, coordinates, thumbnail, and listing agent. Use for real-estate market dashboards, rental pricing analysis, agent lead lists, inventory tracking, and collecting URLs for the Zillow Property endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| hoa | No | The Homeowners Association (HOA) fee. | |
| page | No | The page number of the results to retrieve. | |
| sort | No | The sorting option for the search results. | |
| type | Yes | The type of listing. | |
| pets__ | No | An array of pet options. | |
| keyword | Yes | The keyword used to search for listings. | |
| tours__ | No | An array of tour options. | |
| views__ | No | An array of views. | |
| keywords | No | Additional keywords to refine the search. | |
| beds_max_ | No | The maximum number of bedrooms. | |
| beds_min_ | No | The minimum number of bedrooms. | |
| basement__ | No | An array of basement options. | |
| baths_max_ | No | The maximum number of bathrooms. | |
| baths_min_ | No | The minimum number of bathrooms. | |
| moveInDate | No | The desired move-in date. | |
| price_max_ | No | The maximum price of the listing. | |
| price_min_ | No | The minimum price of the listing. | |
| homeTypes__ | No | An array of home types to filter the listings. | |
| listingType | No | The category of the listing. | |
| daysOnZillow | No | The number of days a listing has been on Zillow. | |
| lotSize_max_ | No | The maximum lot size. | |
| lotSize_min_ | No | The minimum lot size. | |
| mustHaveGarage | No | If set to true, only listings with a garage will be included. | |
| yearBuilt_max_ | No | The maximum year the property was built. | |
| yearBuilt_min_ | No | The minimum year the property was built. | |
| parkingSpotsMin | No | The minimum number of parking spots. | |
| singleStoryOnly | No | If set to true, only single-story properties will be included. | |
| squareFeet_max_ | No | The maximum square footage. | |
| squareFeet_min_ | No | The minimum square footage. | |
| otherAmenities__ | No | An array of other amenities. | |
| propertyStatus__ | No | An array of property statuses. | |
| hide55plusCommunities | No | If set to true, 55+ communities will be excluded. | |
| listingPublishOptions__ | No | An array of listing publish options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral burden, and it does a good job by specifying both the search behavior and the returned data: 'address, Zillow URL/zpid, price, Zestimate, beds/baths, sqft, home type, status, days on Zillow, coordinates, thumbnail, listing agent.' It also states 'pagination' as part of the behavior. It does not cover rate limits or errors, but for a listing search this is largely background.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: it starts with the operation, then covers filters and return fields, then adds use cases. The prose is reasonably brisk for a 33-parameter tool, and most sentences earn their place; only a few phrases just echo the schema or the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 33 parameters, no output schema, and no annotations, this description is unusually complete. It covers what the tool searches, what filters are possible, what fields come back, how pagination works, and why someone would use it, plus it connects downstream to the sibling Property endpoint. An agent has what it needs to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so every parameter already has a structured description. The tool description adds an organized summary of the main filter categories—'price, beds, baths, home type, day built, lot/square footage, HOA, listing status, amenities, views, pet policy, days on Zillow'—but it does not substantially promote per-parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Get Zillow Real Estate Listings') and explicitly states it 'Searches Zillow for-sale, for-rent, and sold listings by keyword with rich filters'. It clearly distinguishes itself as a listing-search tool rather than a property-detail tool, and the closing note about 'collecting URLs for the Zillow Property endpoint' reinforces that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete intended use cases: 'real-estate market dashboards, rental pricing analysis, agent lead lists, inventory tracking, and collecting URLs for the Zillow Property endpoint.' It gives a clear sense of when to choose this tool, though it does not explicitly name the sibling tool or state 'use getPropertyDetails when you already have a zpid.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_zillow_property_getPropertyDetailszillow_property: GET /AInspect
Get Zillow Property Details
Fetches the full Zillow property page by URL/zpid, with optional agent email extraction. Returns address, list price, Zestimate and Rent Zestimate, price and tax history, beds/baths, living area, lot size, year built, home type, HOA, days on Zillow, listing description, features/amenities, photos, school assignments, walk/transit scores, and listing agent/broker (plus email when enabled). Use for valuation models, CMA generation, investor underwriting, rental yield analysis, and enriching buyer/seller agent assistants with authoritative property data.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the property on Zillow. Must be a valid Zillow property URL. | |
| extractAgentEmails | No | If enabled, attempts to extract agent email addresses from the property details. Increases the cost of the request. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the explanation burden. It states the tool 'Fetches' (read-only) and enumerates the data returned, plus notes the cost implication in the parameter description. It lacks explicit statements about error behavior or rate limits, but these are less critical for a simple GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear action, a list of returned data, and a use-case paragraph. It is slightly verbose due to the enumerated fields, but each sentence earns its place and the main purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers what the tool returns, when to use it, and the optional parameter behavior. It does not mention pagination (not needed for a single property) or error scenarios, but overall provides enough context for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by clarifying that the URL can also be a zpid ('by URL/zpid'), which is not stated in the schema. It also echoes the optional email extraction behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get Zillow Property Details' and 'Fetches the full Zillow property page by URL/zpid'. It distinguishes from the sibling listing tool by focusing on a specific property rather than search/listings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases ('Use for valuation models, CMA generation, investor underwriting, rental yield analysis') but does not directly contrast with the sibling tool (e.g., 'use this instead of listings when you have a specific URL'). Context is clear, but alternative guidance is implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v1.0.0- First observed
hasdata_zillow_listing_getRealEstateListings - First observed
hasdata_zillow_property_getPropertyDetails
TDQS
Scored across 2 tools
The two tools have distinct jobs: one searches for listings and returns listing-level records, while the other fetches the full property page for a URL or zpid. The search tool also explicitly identifies itself as the entry point for the property endpoint, so an agent can assign each task easily.
Both names follow the same hasdata_zillow_entity_getThing pattern, so the set is predictable and readable. The minor inconsistency is that the verb portion is verbose and slightly redundant in different ways: getRealEstateListings versus getPropertyDetails, which makes them consistent but not perfectly parallel.
Two tools is at the borderline: the pair works well together as a search-then-details workflow, but the server is thin for a general-purpose Zillow data source. A property lookup by address or an agent lookup tool would make the count feel more complete.
The listing search plus property details covers the core real-estate data workflow: find properties, collect URLs, then fetch the full property record. The main gap is that agents cannot directly look up a property by address without first performing a keyword search, but that is a workaround through the existing search tool.
Maintenance
Related MCP Connectors
Redfin for-sale, for-rent and sold listings plus full property pages, as structured JSON.
Zillow real estate listings for sale, rent, and sold, via an Apify Actor, hosted MCP.
Pull property listings, prices, and details from real-estate sites as structured JSON.
Search SimplyRETS MLS listings and open houses; read listing and market analytics.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables access to Zillow real estate data through the Zillow Working API, allowing users to query property information and listings.1MIT
- AlicenseCqualityDmaintenanceEnables access to the Zillow56 API to search for real estate listings and rental market trends using locations, coordinates, or specific property filters. It also provides comprehensive housing market snapshots and historical data based on the Zillow Home Value Index (ZHVI).37MIT
- AlicenseNot gradedqualityDmaintenanceProvides real-time access to Zillow real estate data, enabling property search, details, Zestimates, market trends, and mortgage calculations via natural language.3 npm56MIT
- AlicenseNot gradedqualityBmaintenanceREST API and MCP server for Zillow property data: Zestimates, rent estimates, tax records, listing search, price history, photos, and 300+ fields. 4 tools with OAuth 2.1 + PKCE. Free tier: 100 credits.7MIT No Attribution