Skip to main content
Glama
bfhayes

RentCast MCP Server

by bfhayes
README.md
# RentCast MCP Server

MCP server that wraps the [RentCast API](https://www.rentcast.io/) to help search for houses for sale, get property valuations, rent estimates, and market statistics.

## Setup

```bash
# Install dependencies
uv sync

# Set your API key
export RENTCAST_API_KEY="your-api-key-here"
```

Get an API key at [app.rentcast.io](https://app.rentcast.io/).

## Running the MCP Server

```bash
# stdio transport (default, for Claude Desktop / Claude Code)
uv run rentcast-mcp

# Or directly
uv run python -m rentcast_mcp
```

### Claude Desktop Configuration

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "rentcast": {
      "command": "uv",
      "args": ["--directory", "/path/to/rentcast-mcp", "run", "rentcast-mcp"],
      "env": {
        "RENTCAST_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

## Tools

| Tool | Description |
|------|-------------|
| `search_sale_listings` | Search homes for sale by location, price, beds, baths, sqft, year built |
| `get_listing_details` | Full details for a specific listing by ID |
| `get_property_record` | Property records with owner info, tax history, sale history |
| `get_property_value` | Automated value estimate (AVM) with comparable sales |
| `get_rent_estimate` | Rental value estimate for investment analysis |
| `get_market_stats` | Market statistics and price trends for a zip code |
| `compare_listings` | Side-by-side comparison of multiple listings |
| `search_recent_sales` | Search recently sold properties (comps) |

## CLI Testing

```bash
# Search listings
uv run python cli.py search_sale_listings '{"zipCode": "95123", "minBedrooms": 4, "maxPrice": 2100000}'

# Get property value
uv run python cli.py get_property_value '{"address": "5500 Grand Lake Dr, San Antonio, TX, 78244"}'

# Market stats
uv run python cli.py get_market_stats '{"zipCode": "78701"}'

# Rent estimate
uv run python cli.py get_rent_estimate '{"address": "123 Main St, Austin, TX 78701"}'

# Compare listings
uv run python cli.py compare_listings '{"listing_ids": ["id1", "id2"]}'
```

## Rate Limits

Free tier: 50 API calls/month. The server tracks call count per session and warns when approaching the limit.

TDQS

A4.1/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct data type and action: searching current listings, searching sold comps, fetching listing details, property records, value estimates, rent estimates, market stats, and comparing listings. Even the two search tools are clearly separated by active vs. sold status. No meaningful overlap between tools.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case: 'search_' for searches, 'get_' for retrievals, and 'compare_' for comparison. This is highly predictable and makes the tool set easy to navigate.

Tool Count5/5

8 tools is well within the ideal 3-15 range for a focused real estate data server. Each tool covers a distinct core operation (search, detail, estimates, stats) without unnecessary bloat. The count feels perfectly scoped to the server's purpose.

Completeness4/5

The server covers the full range of read-only property data needs: active listings, recent sales, property records, valuation, rent estimation, and market trends. The only notable gap is the absence of rental listing search despite 'RentCast' branding, but this is minor given the rent estimate tool and the overall breadth.

Maintenance

ActivityInactive
ResponsivenessNo issues