RentCast

Accede a datos de propiedades, valoraciones y estadísticas de mercado utilizando la API de RentCast.

Documentación

Servidor MCP de RentCast

Un servidor de Model Context Protocol (MCP) para la API de RentCast. Proporciona a Claude Desktop, Claude Code y otros clientes MCP acceso a registros de propiedades de EE. UU., estimaciones de valor y alquiler con comparables, listados de venta y alquiler, y estadísticas de mercado.

Necesitas una clave de API de RentCast. Crea una en tu panel de API de RentCast.

🚀 Inicio rápido

Hay tres formas de ejecutar el servidor:

  1. Extensión de Claude Desktop: un archivo, sin necesidad de terminal.
  2. Instalación local: clona el repositorio y apunta Claude Desktop o Claude Code hacia él.
  3. Despliegue en contenedor: ejecútalo como servidor HTTP con Docker.

1. Extensión de Claude Desktop

  1. Compila la extensión (o descarga rentcast-mcp.mcpb desde una versión):
    npx @anthropic-ai/mcpb pack . rentcast-mcp.mcpb
    
  2. Haz doble clic en rentcast-mcp.mcpb, o arrástralo a Configuración > Extensiones de Claude Desktop.
  3. Ingresa tu clave de API de RentCast cuando se te solicite. Claude Desktop la almacena como una configuración sensible.

La extensión usa el tipo de servidor MCPB uv: Claude Desktop instala las dependencias fijadas de uv.lock en el primer lanzamiento, por lo que no necesitas tener Python instalado.

2. Instalación local

  1. Instala uv (recomendado):

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  2. Clona este repositorio:

    git clone https://github.com/robcerda/rentcast-mcp-server.git
    cd rentcast-mcp-server
    
  3. Instala las dependencias:

    Usando uv (recomendado):

    uv sync --locked
    

    --locked instala exactamente lo que uv.lock fija, verificado contra los hashes que registra, y se niega a re-resolver.

    Usando pip:

    pip install -r requirements-lock.txt --require-hashes
    pip install -e . --no-deps
    

    requirements-lock.txt se genera a partir de uv.lock y fija cada dependencia con hashes, por lo que la ruta de pip instala el mismo conjunto que la de uv. pip install -r requirements.txt sigue funcionando e instala exactamente el mismo conjunto.

  4. Configura tu clave de API. Crea un archivo .env en la raíz del proyecto:

    RENTCAST_API_KEY=your_api_key_here
    

    O pásala en el bloque env de la configuración del cliente a continuación.

  5. Configura Claude Desktop: Añade esto a tu archivo de configuración de Claude Desktop:

    macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    Windows: %APPDATA%\Claude\claude_desktop_config.json

    {
      "mcpServers": {
        "RentCast": {
          "command": "/opt/homebrew/bin/uv",
          "args": [
            "run",
            "--locked",
            "--project",
            "/path/to/your/rentcast-mcp-server",
            "rentcast-mcp"
          ],
          "env": {
            "RENTCAST_API_KEY": "your_api_key_here"
          }
        }
      }
    }
    

    Importante: Reemplaza /path/to/your/rentcast-mcp-server con tu ruta real, y /opt/homebrew/bin/uv con la salida de which uv.

    Reinicia Claude Desktop después de guardar la configuración.

    O configura Claude Code:

    claude mcp add rentcast -e RENTCAST_API_KEY=your_api_key_here -- \
      uv run --locked --project /path/to/your/rentcast-mcp-server rentcast-mcp
    

    Si se instaló mediante pip en lugar de uv, usa:

    {
      "command": "python",
      "args": ["/path/to/your/rentcast-mcp-server/src/rentcast_mcp_server/server.py"]
    }
    

Configuración

VariableRequeridaDescripción
RENTCAST_SURROGATE_KEYNoUna credencial sustituta (hsurr:...) para enviar en lugar de la clave real. Preferida sobre RENTCAST_API_KEY cuando está configurada
RENTCAST_API_KEYSí, a menos que se configure una sustitutaTu clave de API de RentCast
RENTCAST_SUPPRESS_LOGGINGNotrue pide a RentCast que no registre tus consultas y parámetros de consulta
RENTCAST_MCP_TRANSPORTNostdio (predeterminado), streamable-http o http
RENTCAST_MCP_HOSTNoDirección de enlace HTTP (predeterminado 127.0.0.1)
RENTCAST_MCP_PORTNoPuerto HTTP (predeterminado 8000)
RENTCAST_MCP_ALLOWED_HOSTSNoValores extra de Host para aceptar sobre HTTP, separados por comas
RENTCAST_MCP_ALLOWED_ORIGINSNoValores extra de Origin del navegador para aceptar sobre HTTP, separados por comas

Cada configuración HTTP también tiene una bandera de línea de comandos: rentcast-mcp --help.

Credenciales sustitutas

Si tu entorno emite una credencial sustituta (una cadena que comienza con hsurr:) en lugar de la clave de API real, configúrala en RENTCAST_SURROGATE_KEY. El servidor la envía en el encabezado X-Api-Key exactamente como se proporciona, de la misma manera que envía una clave real, y usa RENTCAST_API_KEY solo cuando no hay una sustituta configurada. Un valor en RENTCAST_SURROGATE_KEY que no comience con hsurr: detiene el servidor con un error en lugar de recurrir a la clave real.

Despliegue en contenedor

docker build -t rentcast-mcp .
docker run --rm -p 8000:8000 -e RENTCAST_API_KEY=your_api_key_here rentcast-mcp

La imagen sirve HTTP transmisible en el puerto 8000 en /mcp. La validación de Host y Origin permanece activa incluso cuando está vinculada a 0.0.0.0, por lo que un cliente que la alcance por un nombre público necesita que ese nombre esté permitido:

docker run --rm -p 8000:8000 \
  -e RENTCAST_API_KEY=your_api_key_here \
  -e RENTCAST_MCP_ALLOWED_HOSTS=mcp.example.com \
  rentcast-mcp

El transporte HTTP no tiene autenticación propia. Cualquiera que pueda alcanzar el puerto puede gastar tu cuota de RentCast, así que colócalo detrás de una VPN o un proxy inverso autenticado si es accesible desde fuera de tu máquina.

✨ Características

🏠 Registros de propiedades

Registros públicos de más de 150 millones de propiedades de EE. UU.: atributos, propietario, evaluaciones fiscales, historial de ventas y características. Busca una dirección, o busca por ciudad, estado, código postal o un radio alrededor de un punto.

💰 Estimaciones de valor y alquiler

El modelo de valoración automatizada de RentCast devuelve una estimación de valor o alquiler a largo plazo con un rango y los listados comparables utilizados para calcularla. Ajusta los comparables con comp_count, max_radius y days_old, o anula los atributos de la propiedad sujeto.

📋 Listados de venta y alquiler

Listados activos e inactivos de venta y alquiler a largo plazo, con precio, fechas de listado, detalles del agente y la oficina, e historial de listados.

📈 Estadísticas de mercado

Estadísticas de venta y alquiler para cualquier código postal: precio y alquiler promedio, mediana, mínimo y máximo, precio por pie cuadrado, días en el mercado, recuentos de listados, desgloses por tipo de propiedad y dormitorios, e historial mensual.

🔍 Consultas de búsqueda

Las herramientas de búsqueda aceptan la sintaxis de consulta de RentCast:

  • Múltiples valores con |: property_type="Condo|Townhouse", bedrooms="2|3"
  • Rangos inclusivos con : y * para un extremo abierto: bedrooms="2:4", price="*:500000", year_built="2000:*"
  • Hasta 500 resultados por solicitud, paginados con limit y offset. Configura include_total_count para obtener el número total de coincidencias.

🛠️ Herramientas disponibles

HerramientaDescripciónEndpoint de RentCast
search_propertiesBuscar registros de propiedades/properties
get_random_propertiesMuestra aleatoria de registros de propiedades/properties/random
get_propertyUn registro de propiedad por id/properties/{id}
get_value_estimateEstimación de valor con ventas comparables/avm/value
get_rent_estimateEstimación de alquiler a largo plazo con alquileres comparables/avm/rent/long-term
search_sale_listingsBuscar listados de venta/listings/sale
get_sale_listingUn listado de venta por id/listings/sale/{id}
search_rental_listingsBuscar listados de alquiler a largo plazo/listings/rental/long-term
get_rental_listingUn listado de alquiler por id/listings/rental/long-term/{id}
get_market_statisticsEstadísticas de mercado e historial para un código postal/markets

Las herramientas de búsqueda devuelven {count, limit, offset, hasMore, results}, más totalCount cuando se solicita.

Prompts: property_analysis (valor, alquiler, comparables y mercado para una dirección) y market_overview (el mercado de venta y alquiler de un código postal).

📝 Ejemplos de uso

Valor y alquiler para una dirección

What is 5500 Grand Lake Dr, San Antonio, TX 78244 worth, and what would it rent for?

Encontrar listados

Find 3 bedroom houses for sale under $500k in 78704 listed in the last 30 days

Tendencias del mercado de alquiler

Show rental market trends in ZIP code 90210 over the last year

Análisis de inversión

Compare the gross rental yield of condos and single family homes for sale in 33131

🔧 Solución de problemas

RentCast API error 401

La clave de API falta o no es válida. Verifica RENTCAST_API_KEY, o vuelve a ingresar la clave en la configuración de la extensión.

RentCast API error 403

La clave está restringida a otros endpoints o direcciones IP, o hay un problema de facturación. Verifica tu panel de API.

RentCast API error 429

RentCast permite 20 solicitudes por segundo por clave. El servidor reintenta las solicitudes limitadas con retroceso antes de informar esto.

Resultados de búsqueda vacíos

RentCast informa "sin resultados" como una lista results vacía. city y state distinguen entre mayúsculas y minúsculas, y property_type debe coincidir exactamente, por ejemplo, Single Family.

El servidor se desconecta al iniciar

Verifica los registros MCP del cliente. La causa más común es un RENTCAST_API_KEY faltante, lo que hace que el servidor salga inmediatamente.

Desarrollo

uv sync --locked --extra dev
uv run pytest
uv run ruff check .

Las pruebas se ejecutan contra una API de RentCast falsa y nunca realizan solicitudes reales.

Ejecutar el servidor localmente

uv run rentcast-mcp

Para usar el Inspector de MCP:

uv run mcp dev src/rentcast_mcp_server/server.py

Actualizar dependencias

uv lock --upgrade-package <name>
uv export --frozen --no-emit-project --no-editable --no-dev \
  --format requirements-txt --output-file requirements-lock.txt

CI falla si uv.lock, requirements-lock.txt y requirements.txt se desvían.

Compilar la extensión

npx @anthropic-ai/mcpb validate manifest.json
npx @anthropic-ai/mcpb pack . rentcast-mcp.mcpb

.mcpbignore mantiene las pruebas, los archivos de CI y los entornos locales fuera del paquete. Cuando agregues o renombres una herramienta, actualiza la lista tools en manifest.json; una prueba verifica que coincida con el servidor.

Licencia

MIT