Redfin MCP Server

Listados de Redfin en venta, en alquiler y vendidos, además de páginas completas de propiedades, como JSON estructurado.

Documentación

Servidor MCP de Redfin

Un servidor de Protocolo de Contexto de Modelo (MCP) alojado que brinda a Claude, Cursor, Windsurf y cualquier otro cliente MCP dos herramientas de solo lectura de Redfin. Busca listados en venta, en alquiler y vendidos con el conjunto de filtros que Redfin muestra a un visitante, y lee una página de propiedad completa, ambos como JSON estructurado, sin licencia de MLS y sin nada que alojar.

Lee páginas públicas de Redfin que un visitante sin sesión puede ver.

1,000 créditos gratis cada mes, sin necesidad de tarjeta, lo que equivale a 200 llamadas a Redfin a la tarifa de 5 créditos.

https://mcp.hasdata.com/api/mcp?apis=redfin

Glama score tool contract MCP Tools npm PyPI License

Contenido

Lo que necesitas

Un cliente MCP y una clave de API de HasData desde el panel de control, que se crea gratis sin tarjeta, y el nivel gratuito cubre unas 200 llamadas al mes a la tarifa de 5 créditos. Este es un servidor remoto, por lo que la ruta más simple es una URL y un encabezado x-api-key, sin contenedor que ejecutar. Un cliente que solo habla stdio lo alcanza mediante un lanzador ligero, publicado como @hasdata/redfin-mcp en npm y hasdata-redfin-mcp en PyPI, como se muestra a continuación.

Inicio rápido

La URL del servidor es la misma para todos los clientes. Lo ejecutamos de forma práctica en Claude Code y Claude Desktop. Los demás bloques siguen el formato documentado de cada cliente para un servidor remoto.

CampoValor
URLhttps://mcp.hasdata.com/api/mcp?apis=redfin
TransporteHTTP, transmisible
Encabezado de autenticaciónx-api-key: HASDATA_API_KEY

Los clientes con soporte OAuth pueden agregar la misma URL como conector e iniciar sesión sin poner una clave en un archivo de configuración.

Claude Code
claude mcp add --transport http redfin "https://mcp.hasdata.com/api/mcp?apis=redfin" \
  --header "x-api-key: HASDATA_API_KEY"
Claude Desktop

Configuración, luego Conectores, luego Agregar conector personalizado, luego pega https://mcp.hasdata.com/api/mcp?apis=redfin e inicia sesión.

Para la ruta de archivo de configuración, Claude Desktop carga solo servidores locales (stdio), por lo que alcanza un servidor remoto a través de un lanzador stdio. El paquete @hasdata/redfin-mcp es ese lanzador, y lee la clave del entorno. Agrega esto a claude_desktop_config.json:

{
  "mcpServers": {
    "redfin": {
      "command": "npx",
      "args": ["-y", "@hasdata/redfin-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}

Para Python en lugar de Node, cambia el lanzador por el paquete de PyPI, que uvx ejecuta sin instalación manual:

{
  "mcpServers": {
    "redfin": {
      "command": "uvx",
      "args": ["hasdata-redfin-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}
Cursor

~/.cursor/mcp.json para cada proyecto, o .cursor/mcp.json para uno solo:

{
  "mcpServers": {
    "redfin": {
      "url": "https://mcp.hasdata.com/api/mcp?apis=redfin",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
Windsurf

~/.codeium/windsurf/mcp_config.json. Windsurf llama al campo serverUrl, no url:

{
  "mcpServers": {
    "redfin": {
      "serverUrl": "https://mcp.hasdata.com/api/mcp?apis=redfin",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
VS Code

.vscode/mcp.json en el espacio de trabajo:

{
  "servers": {
    "redfin": {
      "type": "http",
      "url": "https://mcp.hasdata.com/api/mcp?apis=redfin",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

Ejemplos de indicaciones

Cada una de estas aterriza en una herramienta, o en dos en secuencia cuando la segunda necesita la URL que devuelve la primera.

  • Encuentra casas de tres dormitorios en venta en 78741 por menos de $500,000 y ordénalas por precio por pie cuadrado.
  • ¿Qué se vendió en Austin en los últimos tres meses, y cómo se compara con lo que está listado ahora?
  • Extrae la página de propiedad completa para esta URL de Redfin y resume el estado desde la descripción.
  • ¿Qué alquileres en Austin permiten perros e incluyen lavandería en la unidad?
  • Muéstrame casas en venta en el Distrito Escolar Independiente de Austin donde la escuela primaria asignada tenga una calificación de 8 o mejor.
  • Encuentra casas para arreglar construidas antes de 1970 en este código postal que hayan estado en Redfin más de 30 días.

Una indicación que nombre un mercado va a la herramienta de búsqueda. Una indicación que te entregue una URL de Redfin va directamente a la herramienta de propiedad. Buscar una dirección completa es un tercer caso, cubierto a continuación, porque responde con una sola propiedad en lugar de una lista.

Herramientas

Dos herramientas, 5 créditos por llamada exitosa.

Obtener listados de bienes raíces de Redfin

hasdata_redfin_listing_getRealEstateListings

Una página de listados para una ubicación, o una sola propiedad cuando la ubicación es una dirección única.

Se requieren dos parámetros, y el resto del esquema refleja el propio panel de filtros de Redfin.

ParámetroTipoRequeridoNotas
keywordstringUn código postal, ciudad, vecindario, escuela, distrito escolar, nombre de edificio de apartamentos o una dirección completa
typestringforSale, forRent o sold
sortstringrecommended, newest, oldest, priceLowToHigh, priceHighToLow, bedrooms, bathrooms, lotSize, squareFeetPrice y más
pagenumberPágina de resultados, comenzando en 1

Los filtros llevan el nombre de la estructura anidada que Redfin usa internamente, aplanada con guiones bajos, por lo que deben pasarse exactamente como los escribe el esquema. price_min_ y price_max_ son la banda de precios, beds_min_ y beds_max_ el conteo de dormitorios, monthlyPayment_interestRate_ una asunción de hipoteca. Un doble guion bajo marca un arreglo.

Los que vale la pena conocer:

ParámetroTipoNotas
price_min_ / price_max_numberBanda de precios
beds_min_ / beds_max_numberConteo de dormitorios
bathsstringBaños mínimos, one hasta four, más oneAndHalf y twoAndHalf
homeTypes__arrayhouse, townhouse, townhome, condo, land, multiFamily, mobile, coOp, apartment, other. Qué valores aplican depende de type
statusOptions__arrayactive, comingSoon, contingentPending
listingType_category___arraybyAgent, byOwnerFsbo, newConstruction, foreclosures
timeOnRedfinstringnewListing hasta moreThan45Days
soldWithinOptionstringVentana de vendidos, desde lastOneWeek hasta lastFiveYear. Consulta la advertencia a continuación
yearBuilt_min_ / yearBuilt_max_stringUn año de una escalera fija, 1940 hasta 2026
forSaleSquareFeet_min_ / _max_stringÁrea de piso de una escalera fija, 750 hasta 10000
lotSize_min_ / lotSize_max_string2000 sqft hasta 100 acres, tal como se escriben
cost_hoa_numberCuota máxima mensual de HOA
cost_priceReduced_stringinTheLastDay hasta moreThan120Days
homeFeatures_options___arraywaterfront, hasAView, fireplace, fixerUpper, guestHouse, elevator, greenHome, accessibleHome y más
homeFeatures_poolType_stringprivatePool, communityPool, privateOrCommunityPool, noPrivatePool
homeFeatures_keywordSearch_stringTexto libre contra la descripción del listado
schools_greatSchoolRating_numberCalificación mínima de GreatSchools, 1 a 10
transportScores_walkScore_numberPuntaje mínimo de caminabilidad, 1 a 100
rentalAmenities__arrayinUnitWasherDryer, parkingAllowed, utilitiesIncluded, furnished, pool y más
pets__arraydogsAllowed, catsAllowed
moveInDatestringMM/DD/YYYY

Una búsqueda de mercado devuelve searchInformation con totalResults, un arreglo properties de 40, y pagination con currentPage, nextPage y un mapa otherPages. Una propiedad en venta o vendida lleva id, mlsId, url, homeType, status, price, beds, baths, area, yearBuilt, daysOnSite, addressRaw, un address analizado, latitude, longitude, description, atAGlanceFacts y photos.

{
  "id": 31625298,
  "mlsId": "2190201772333567097",
  "url": "https://www.redfin.com/TX/Austin/1721-Deerfield-Dr-78741/home/31625298",
  "homeType": "House",
  "status": "FOR_SALE",
  "price": 675000,
  "beds": 3,
  "baths": 2,
  "area": 1667,
  "yearBuilt": 1963,
  "daysOnSite": 0,
  "addressRaw": "1721 Deerfield Dr, Austin, TX 78741",
  "address": { "street": "1721 Deerfield Dr", "city": "Austin", "state": "TX", "zipcode": "78741" },
  "latitude": 30.231372,
  "longitude": -97.734893,
  "atAGlanceFacts": [
    { "factLabel": "Property Type", "factValue": "Single-family" },
    { "factLabel": "Year Built", "factValue": "1963" },
    { "factLabel": "Price/Sq.Ft.", "factValue": "$405" }
  ]
}

Un alquiler es un edificio en lugar de una casa, por lo que type: forRent devuelve una forma diferente. price, beds, baths y area se convierten cada uno en un objeto { min, max } en todas las unidades disponibles, y la entrada agrega propertyName, availableUnits, agentEmail y agentPhone mientras elimina mlsId, homeType, yearBuilt y daysOnSite.

{
  "id": "31510362",
  "propertyName": "The Sonata",
  "status": "FOR_RENT",
  "availableUnits": 12,
  "price": { "min": 745, "max": 1300 },
  "beds": { "min": 1, "max": 2 },
  "baths": { "min": 1, "max": 2 },
  "area": { "min": 474, "max": 976 },
  "addressRaw": "1070 Mearns Meadow Blvd, Austin, TX 78758"
}

Obtener detalles de propiedad de Redfin

hasdata_redfin_property_getPropertyDetails

Una página de propiedad completa, por su URL de Redfin.

ParámetroTipoRequeridoNotas
urlstringLa URL de la propiedad de Redfin, tal como la devuelve la herramienta de búsqueda

Devuelve un objeto property. Además de todo lo que lleva el resultado de búsqueda, agrega propertyDetails, schools, nearby, agentInfo, viewsActivity, openHouseSchedule, updatedAt, un objeto geo y la colección completa de photos, que llegó a 61 imágenes en la propiedad a continuación.

propertyDetails es el bloque de especificaciones, agrupado en parking, interior, exterior, utilities y publicFacts. Cada grupo es un arreglo de secciones etiquetadas, y cada sección es un arreglo de pares label y value, por lo que se lee como lo presenta la página en lugar de como un objeto tipado. Busca un dato por su etiqueta en lugar de por posición.

schools.assignedSchools lleva las escuelas de captación con greatSchoolsRating, parentRating, distanceInMiles y un indicador servesHome, que es el campo que dice si la escuela realmente atiende a esta dirección.

{
  "id": 31625298,
  "homeType": "Single Family Residential",
  "status": "COMING SOON",
  "price": 675000,
  "beds": 3,
  "baths": 2,
  "area": 1667,
  "yearBuilt": 1963,
  "geo": { "latitude": 30.231372, "longitude": -97.734893 },
  "updatedAt": "Sep 9, 2026 4:04 AM",
  "viewsActivity": { "views": 98, "favorites": 5 },
  "agentInfo": {
    "agentName": "Lilly Rockwell",
    "agentPhoneNumber": "512-413-1975",
    "brokerName": "Compass",
    "brokerPhoneNumber": ""
  },
  "propertyDetails": {
    "parking": [{ "parkingInformation": [{ "label": "Has Garage", "value": "yes" }] }],
    "utilities": [{ "utilitiesInformation": [{ "label": "Has Air Conditioning", "value": "yes" }] }]
  },
  "schools": { "assignedSchools": [{ "greatSchoolsRating": 6, "parentRating": 5, "servesHome": true }] }
}

Errores y rutas de fallo

Planifica estos en lugar de asumir un camino feliz.

soldWithinOption está actualmente roto y devuelve silenciosamente casas en venta etiquetadas como SOLD. Pasar cualquiera de sus valores pone el valor directamente en el filtro de Redfin, Redfin no lo reconoce, y la respuesta es la lista activa de venta con status marcado como SOLD. Cada listado volvió idéntico a la búsqueda simple de venta en nuestras verificaciones. Deja el parámetro fuera. type: sold por sí solo funciona correctamente y cubre los últimos tres meses, que es la ventana predeterminada de Redfin.

La herramienta de búsqueda devuelve tres formas diferentes, y cuál obtienes depende de la palabra clave. Una palabra clave de mercado responde con searchInformation, properties y pagination. Una dirección completa o un edificio con nombre responde con un solo objeto property y sin arreglo properties, sin searchInformation y sin pagination. Una búsqueda de alquiler responde con las entradas en forma de rango mostradas arriba. Ramifica según la presencia de properties antes de iterarlo.

totalResults alcanza un máximo de 350, y eso es un techo más que un conteo. Austin y Nueva York reportan ambos 350 mientras que un solo código postal reporta 168 y un pueblo pequeño 57. La paginación se detiene en nueve páginas de 40. Para enumerar un mercado grande, divídelo por código postal, banda de precios o tipo de casa en lugar de paginar, porque no hay página diez.

La búsqueda de vendidos no te da precios de venta como un campo separado. price contiene lo que la página muestra para ese estado, por lo que un precio de venta y un precio de vendido llegan en el mismo campo. Lee status junto a él cada vez. No hay historial de precios, historial de impuestos ni Redfin Estimate en la respuesta de la propiedad. Esos elementos están en la página, pero no están en lo que la herramienta devuelve hoy. Lo que obtienes en su lugar es propertyDetails.publicFacts, que trae los datos de tipo assessor como pares de etiqueta y valor.

nearby.pointsOfInterest son lugares cercanos, no ventas comparables. Sus categories provienen de un conjunto de datos de lugares de terceros y con frecuencia son incorrectos, por lo que una oficina de préstamos con título puede aparecer etiquetada como un bar. Usa los nombres y las coordenadas, y no confíes en la categoría.

openHouseSchedule puede ser un arreglo que contiene un objeto vacío cuando la página tiene la sección pero sin fechas. Prueba el contenido, no la longitud.

brokerPhoneNumber y otros campos de agente vienen como cadenas vacías en lugar de null. Trata la cadena vacía como ausente.

Los resultados que traen datos también traen un requestMetadata.id que vale la pena citar como soporte.

Precios, nivel gratuito y límites

Cada herramienta de Redfin cuesta 5 créditos por llamada exitosa. El tamaño de la respuesta no cambia el precio, por lo que una página con 40 listados y una propiedad individual cuestan lo mismo.

El nivel gratuito es 1,000 créditos cada mes sin tarjeta, lo que equivale a 200 llamadas a Redfin a la tarifa base. Se renueva con el ciclo de facturación, por lo que un agente de bajo volumen funciona con el nivel gratuito indefinidamente.

Los planes de pago comienzan en $49 al mes por 200,000 créditos, lo que equivale a 40,000 llamadas. El precio unitario baja con el volumen, desde $1.23 por cada 1,000 llamadas en el plan inicial hasta $0.50 en Business, $0.42 en Growth y $0.37 en los planes de alto volumen más grandes.

Tu plan también define la concurrencia. El nivel gratuito permite 1 solicitud a la vez, Startup 15, Business 30, Growth 50, y los planes de alto volumen van de 200 a 1,500. Reintenta con el 429 con un backoff en cualquier proceso desatendido, porque un agente que recorre una lista de propiedades llegará al límite antes que tú.

Una solicitud que devuelve un código distinto de 200 no se factura. Una llamada exitosa que no encuentra nada sigue siendo una llamada.

Selección de herramientas

Empieza por lo que te da el prompt. Un mercado, un código postal o un distrito escolar va a la herramienta de búsqueda. Una URL de Redfin va directo a la herramienta de propiedad. Gastar una llamada de búsqueda para llegar a una URL que ya tienes es el desperdicio más común.

Luego elige por profundidad. El resultado de búsqueda es suficiente para clasificaciones, barridos de precios y resúmenes de mercado, y ya trae precio, camas, baños, área, año de construcción y días en el sitio. La herramienta de propiedad es la única que devuelve el bloque de especificaciones, las escuelas asignadas y el agente de listado, y vale una llamada por propiedad que te importe, no una por fila.

Filtra del lado del servidor. El esquema refleja con precisión el panel de filtros de Redfin, por lo que una consulta como "tres camas, menos de $500k, construido antes de 1970, en este código postal" es una llamada con cuatro parámetros, no un barrido de página seguido de filtrado local.

Cómo se compara

No hay una API pública de Redfin, por lo que la alternativa real es un feed de MLS o IDX.

Feed de MLS o IDXEste servidor
ElegibilidadUna correduría con licencia o una relación de agenteUna clave de API
ConfiguraciónSolicitud por MLS, contrato y revisión de cumplimientoUn encabezado
CoberturaUn MLS por feed, cientos a nivel nacionalLo que Redfin publique, en un solo lugar
Datos de ventasHistorial completo donde el MLS lo permitaLa ventana reciente que muestra Redfin
AlquileresA menudo un feed separado o ausenteLa misma herramienta, con una forma de rango
RedistribuciónRestringida por contratoTu responsabilidad de verificar
CostoTarifas de configuración más mensuales, por MLSDe pago más allá del nivel gratuito, 5 créditos por llamada

La fila que lo decide es la elegibilidad. Un feed de MLS es la fuente autorizada y necesita una licencia que no puedes comprar como desarrollador, lo que lo descarta para investigación, prototipos y cualquier cosa que un agente haga en tu nombre. Cuando eres una correduría que ya tiene un feed, el feed es más completo y más actualizado, y deberías usarlo.

Preguntas frecuentes

¿Existe un servidor MCP oficial de Redfin?

Redfin no publica uno, y tampoco publica una API pública. Este está mantenido por HasData y lee páginas públicas de Redfin.

¿Qué es un servidor MCP de Redfin?

Un servidor MCP expone herramientas que un cliente de IA puede llamar. Este convierte los resultados de búsqueda y las páginas de propiedad de Redfin en JSON sobre el que un agente puede razonar, sin un navegador ni una biblioteca de scraping en tu stack.

¿Necesito una licencia de MLS o una cuenta de Redfin?

No. La única credencial es tu clave de HasData.

¿Por qué buscar una dirección devuelve una propiedad en lugar de una lista?

Porque Redfin resuelve una dirección completa a la página de esa propiedad en lugar de a un conjunto de resultados. La herramienta lo pasa tal cual, por lo que la respuesta contiene un solo objeto property con la misma forma que devuelve la herramienta de propiedad. Es un atajo útil cuando tienes una dirección pero no una URL.

¿Cómo extraigo todos los listados de una ciudad?

No puedes, en un solo barrido. Redfin limita un conjunto de resultados a 350 en nueve páginas, por lo que un mercado grande debe dividirse en consultas más pequeñas por código postal, rango de precios o tipo de vivienda, y las partes deben unirse.

¿Puedo filtrar listados vendidos por fecha?

No de manera confiable por ahora. type: sold funciona y devuelve la ventana predeterminada de tres meses de Redfin, pero soldWithinOption no se traduce a un filtro que Redfin acepte, y pasarlo devuelve listados activos etiquetados como SOLD. Déjalo fuera hasta que se arregle.

¿Cubre alquileres?

Sí, a través de type: forRent. Espera la forma de rango en lugar de la forma de vivienda individual, porque un resultado de alquiler es un edificio con varias unidades disponibles.

¿Puedo usar esto junto con otras APIs de HasData?

Sí. Una clave cubre todo, y un endpoint sirve a todos a través del parámetro apis. Apunta un cliente a ?apis=redfin,zillow para obtener ambos conjuntos de herramientas en una conexión, o a mcp.hasdata.com/api/mcp para el catálogo completo.

¿HasData está afiliado a Redfin?

No. HasData es un servicio independiente y no está afiliado, respaldado ni patrocinado por Redfin. Redfin es una marca comercial de su respectivo propietario. Las herramientas funcionan solo con datos disponibles públicamente, y eres responsable de usar los resultados de acuerdo con los términos de Redfin y la ley que te aplica.

Cumplimiento y datos personales

Los listados traen datos de contacto del agente. Una propiedad en venta devuelve agentInfo con un nombre y un número de teléfono directo, y un alquiler devuelve agentEmail y agentPhone. Esos pertenecen a personas identificables, publicados en capacidad profesional, lo que no los saca del alcance del GDPR o del CCPA. El marketing hacia ellos está regulado por separado nuevamente, y los agentes inmobiliarios son un objetivo común de exactamente eso, así que verifica tus obligaciones antes de construir una lista de contactos. El análisis de mercado no necesita esos campos en absoluto.

Enlaces de HasData

Otros servidores MCP de HasData: Google Search, Google Maps, Google Trends, Google Flights, DuckDuckGo, YouTube, TikTok, Instagram, Amazon, Shopify, Yelp, Zillow, Airbnb, Booking.com, Indeed.

Desarrollo

El lanzador es un puente stdio delgado hacia el servidor remoto, por lo que no hay nada que compilar.

npm install
HASDATA_API_KEY=your_key_here npm test

Las pruebas en test/ verifican el contrato de la herramienta, la parte que puede romperse sin un commit aquí. Comprueban que ?apis=redfin devuelve el número esperado de herramientas, que ningún nombre cambió, que cada herramienta aún declara sus parámetros requeridos y lleva una descripción, que los enums de filtro que este README documenta siguen siendo los que ofrece el esquema, y que la clave en uso realmente se acepta. Esa última verificación llama a una herramienta de verdad y cuesta 5 créditos, que es el precio de un canario que puede fallar por la razón correcta.

La suite de contrato también se ejecuta semanalmente en un horario, porque la lista de herramientas upstream puede cambiar sin que nadie toque este repositorio.

Contribuciones

Una tabla de herramientas, una muestra de respuesta o un comportamiento documentado que no coincide con la realidad vale un issue. Hay una plantilla para exactamente eso. Las pull requests son bienvenidas para lo mismo y para cualquier cosa en el lanzador.

Licencia

MIT, ver LICENSE.