Redfin Remote MCP Server
Server Details
Redfin for-sale, for-rent and sold listings plus full property pages, as structured JSON.
- Status
- Healthy
- Uptime
- 97.5% over 42 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- HasData/redfin-mcp
- GitHub Stars
- 11
- Server Listing
- Redfin MCP Server
TDQS
Scored across 2 tools
The two tools target clearly distinct operations: one performs a location-based listing search, the other fetches details for a specific property URL. There is no overlap in purpose or inputs, and the listing tool's description explicitly explains the hand-off to the property endpoint.
Both names follow the same predictable structure: vendor prefix (hasdata_redfin_), resource segment (listing/property), then a camelCase action (getRealEstateListings/getPropertyDetails). The only minor deviation is mixing a snake_case prefix with camelCase action verbs, but the pattern is identical across both tools.
Two tools is thin for a real-estate data surface — search plus detail is a minimal pair, and the server leans on the listing endpoint to cover multiple research use cases. It is defensible but borderline rather than well-scoped.
Coverage of the core read-only lifecycle (find listings, inspect a property's full page with price/tax/school history) is solid, but the surface has notable gaps such as agent/broker lookup, neighborhood or market-trend aggregates, and structured filtering by price/beds beyond pagination.
Available Tools
2 toolshasdata_redfin_listing_getRealEstateListingsredfin_listing: GET /ARead-onlyInspect
Get Redfin Real Estate Listings
Searches Redfin for-sale, for-rent, or sold listings with pagination. The location accepts a zipcode, city, neighborhood, school, school district, apartment-building name, or a full street address. Returns each listing with address, Redfin URL, list price, beds/baths, square footage, year built, days on market, status, coordinates, photos, and MLS number; an address or building returns a single property card instead. Use for real-estate market research, lead generation for agents, price/DOM trend analysis, and feeding URLs into the Redfin Property endpoint for deep-dive details.
| Name | Required | Description | Default |
|---|---|---|---|
| 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. | |
| baths | No | The minimum number of bathrooms. | |
| pets__ | No | An array of pet types allowed. | |
| keyword | Yes | The location to search for listings. Accepts a zipcode (`33321`), a city (`Austin` or `Austin, TX`), a neighborhood (`East Austin`), a school (`BASIS Austin`), a school district (`Austin Independent School District`), an apartment building by its name (`Maizon Brickell`), or a full street address (`5805 Woodview Ave, Austin, TX 78756`), including a single unit (`221 SW 12th St Unit 1716, Miami, FL`). An address or a building returns a single property card instead of a list of listings, and the `type` parameter does not apply to it. | |
| beds_max_ | No | The maximum number of bedrooms. | |
| beds_min_ | No | The minimum number of bedrooms. | |
| cost_hoa_ | No | The maximum monthly Homeowners Association (HOA) fee. | |
| moveInDate | No | The desired move-in date in MM/DD/YYYY format. | |
| 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. Allowed values depend on the listing `type`. | |
| lotSize_max_ | No | The maximum lot size. | |
| lotSize_min_ | No | The minimum lot size. | |
| stories_max_ | No | The maximum number of stories. | |
| stories_min_ | No | The minimum number of stories. | |
| timeOnRedfin | No | How long the listing has been on Redfin. | |
| yearBuilt_max_ | No | The maximum year the property was built. | |
| yearBuilt_min_ | No | The minimum year the property was built. | |
| statusOptions__ | No | An array of listing statuses. | |
| soldWithinOption | No | Filter sold listings by how recently they were sold. | |
| rentalAmenities__ | No | An array of rental amenities to filter the listings. | |
| cost_priceReduced_ | No | Filter listings by when the price was reduced. | |
| rentalOtherTerms__ | No | An array of additional rental terms. | |
| monthlyPayment_max_ | No | The maximum monthly payment. | |
| monthlyPayment_min_ | No | The minimum monthly payment. | |
| schools_schoolType___ | No | An array of school types. | |
| forSaleSquareFeet_max_ | No | The maximum square footage for for-sale listings. | |
| forSaleSquareFeet_min_ | No | The minimum square footage for for-sale listings. | |
| homeFeatures_basement_ | No | The basement type. | |
| homeFeatures_poolType_ | No | The type of pool. | |
| cost_acceptedFinancing_ | No | The accepted financing type. | |
| cost_excludeLandLeases_ | No | If set to true, listings with land leases will be excluded. | |
| cost_pricePerSqft__max_ | No | The maximum price per square foot. | |
| cost_pricePerSqft__min_ | No | The minimum price per square foot. | |
| homeFeatures_options___ | No | An array of home feature flags to filter the listings. | |
| listingType_category___ | No | An array of listing categories. | |
| onlyWithDealOrPromotion | No | If set to true, only listings with a deal or promotion will be included. | |
| exclude55PlusCommunities | No | If set to true, 55+ communities will be excluded. | |
| forRentSquareFootage_max_ | No | The maximum square footage for for-rent listings. | |
| forRentSquareFootage_min_ | No | The minimum square footage for for-rent listings. | |
| schools_greatSchoolRating_ | No | The minimum GreatSchools rating (1-10). | |
| transportScores_bikeScore_ | No | The minimum bike score (1-100). | |
| transportScores_walkScore_ | No | The minimum walk score (1-100). | |
| cost_maxPropertyTaxPerYear_ | No | The maximum property tax per year. | |
| homeFeatures_keywordSearch_ | No | A free-text keyword search applied to listing descriptions. | |
| openHouseAndTour_openHouse_ | No | Filter listings with an open house. | |
| openHouseAndTour_videoTour_ | No | If set to true, only listings with a video tour will be included. | |
| homeFeatures_garageSpotsMin_ | No | The minimum number of garage spots. | |
| monthlyPayment_interestRate_ | No | The mortgage interest rate (percent) used to calculate the monthly payment. | |
| monthlyPayment_mortgageTerm_ | No | The mortgage term used to calculate the monthly payment. | |
| monthlyPayment_insuranceRate_ | No | The home insurance rate (percent) used to calculate the monthly payment. | |
| transportScores_transitScore_ | No | The minimum transit score (1-100). | |
| listingType_excludeShortSales_ | No | If set to true, short sales will be excluded. | |
| schools_includeUnratedSchools_ | No | If set to true, unrated schools will be included. | |
| listingType_redfinListingsOnly_ | No | If set to true, only Redfin-listed properties will be included. | |
| monthlyPayment_downPaymentAmount_ | No | The down payment as an absolute amount. | |
| monthlyPayment_downPaymentPercent_ | No | The down payment as a percentage of the home price. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/non-destructive, so the safety profile is covered. The description adds genuinely non-obvious behavior: results are paginated, and a street-address or building-name input collapses to a single property card where the `type` parameter no longer applies. Auth and rate-limit behavior are not mentioned, which keeps it below 5.
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?
Front-loaded with the operation and mode, then details. The return-field enumeration is long, but it substitutes for a missing output schema, so it earns its space. Slight density, but no redundant sentences.
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 59-parameter, no-output-schema tool, the description covers purpose, input modes, result-shape variation, returned fields, and the sibling relationship. Nothing essential to a correct call is left unstated.
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 coverage is 100% and the schema already spells out every filter and enum, so baseline is 3. The description earns above baseline by documenting a semantic rule the schema never states: that required `type` is ignored for address/building searches, plus the set of location formats `keyword` truly accepts.
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?
States a precise verb+resource (search for-sale/for-rent/sold Redfin listings) and its scope (pagination, location input forms). It explicitly distinguishes itself from the sibling by noting that deep-dive details come from the Redfin Property endpoint, so an agent can route without opening either schema.
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?
Gives concrete use cases (market research, agent lead gen, price/DOM trend analysis) and names the downstream alternative for detail lookups. It also flags the special case where an address/building input returns a single card rather than a list. It stops short of an explicit 'use X instead when Y' exclusion statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_redfin_property_getPropertyDetailsredfin_property: GET /ARead-onlyInspect
Get Redfin Property Details
Fetches the full Redfin property page by URL. Returns address, list/sold price, price history, Redfin Estimate, beds/baths, square footage, lot size, year built, property type, HOA, days on market, school ratings, tax history, listing agent, full description, photos, and nearby comparables. Use for CMA reports, investor due-diligence, valuation models, listing enrichment, and powering buyer-assistant agents with verified property facts.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the property on Redfin. Must be a valid Redfin property URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, covering the safety profile. The description adds that it fetches the full page for a given URL and lists the payload contents, but says nothing about auth requirements, rate limits, or failure modes for invalid URLs.
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?
Front-loads the core action in the first sentence and keeps the payload enumeration and use cases compact. The field list is long but each item is a distinct returned attribute, so it earns its place; only marginal trimming would improve it.
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?
There is no output schema, so the description carries the burden of describing returns, and it does so thoroughly via the field enumeration. For a read-only, single-parameter fetch the coverage is solid; only the lack of any error/edge-case guidance keeps it from a 5.
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?
With a single parameter at 100% schema description coverage, the schema fully documents the required url. The description reinforces that the input is a Redfin property URL and must be valid, but adds no format examples or error behavior beyond the schema, so it stays at the baseline.
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?
States a specific verb and resource (fetch the full Redfin property page by URL) and enumerates the returned data, so the agent knows exactly what it gets. It is clearly distinguishable from the sibling listing-search tool, which returns listings rather than a single URL-addressable property.
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?
It names concrete usage contexts (CMA reports, investor due-diligence, valuation models, listing enrichment, buyer-assistant agents), which tells the agent when this tool is the right fit. However, it never states when NOT to use it or names the sibling listing tool as the alternative for discovery-style queries, so routing is left partly to inference.
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
- First observed
hasdata_redfin_listing_getRealEstateListings - First observed
hasdata_redfin_property_getPropertyDetails
Publisher details
- Operator
- HasData · Publisher source
- Operator website
- https://hasdata.com · Publisher source
- Vendor relationship
- Independent · Publisher source
- Documentation
- https://docs.hasdata.com/mcp-server · Publisher source
- Trust center
- Not available
- Restrictions
- A free HasData account covers 1,000 credits a month with no card. Heavier use needs a paid plan. No admin approval, no regional limits and no custom OAuth app. · Publisher source
Related MCP Connectors
Zillow for-sale, for-rent and sold listings, and full property details, as structured JSON.
Pull property listings, prices, and details from real-estate sites as structured JSON.
Redfin listings, sale-comps, and neighborhood market data via natural-language queries.
U.S. real-estate data: property records, AVM value + rent estimates, sale/rental listings.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables searching Zillow for-sale, for-rent, and sold listings with rich filters and retrieving complete property details as structured JSON, with no Zillow account required.250 npm74 PyPI11MIT
- FlicenseNot gradedqualityBmaintenanceEnables pulling property listings, prices, and details from real-estate websites as structured JSON, with anti-bot handling and protected-page support.-
- AlicenseAqualityAmaintenanceEnables natural language access to Redfin real estate data, including property search, details, photos, market reports, price history, climate risk, and saved homes/searches, by routing requests through your own signed-in browser session.22647 npm3MIT
- AlicenseNot gradedqualityBmaintenanceProvides access to comprehensive US property data, including automated valuations, tax history, comparable sales, and ownership details, enabling real estate analysis and market insights.9 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.