RentCast MCP Server
RentCast MCP server gives MCP clients access to US property records, valuations, rent estimates, market statistics, and sale/rental listings through the RentCast API.
Look up detailed property data, property records by ID, or random property records.
Get property valuation data and long-term rent estimates for a specific property, subject to RentCast subscription tier.
Get market statistics for a ZIP code, optionally filtered by bedrooms or property type.
Search property records with filters for city, state, ZIP code, price range, bedrooms, bathrooms, square footage, year built, and property type, with pagination.
Get property listings for a ZIP code with optional price, bedroom, and property-type filters.
Search sale listings and rental listings with similar filters and pagination.
Retrieve a specific sale listing or rental listing by ID.
Use it through MCP clients like Claude Desktop or Claude Code, locally or over HTTP, with a RentCast API key.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@RentCast MCP Server Show me the market statistics for ZIP code 90210"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
RentCast MCP Server
A Model Context Protocol (MCP) server for the RentCast API. It gives Claude Desktop, Claude Code, and other MCP clients access to US property records, value and rent estimates with comparables, sale and rental listings, and market statistics.
You need a RentCast API key. Create one on your RentCast API dashboard.
🚀 Quick Start
There are three ways to run the server:
Claude Desktop extension: one file, no terminal needed.
Local installation: clone the repo and point Claude Desktop or Claude Code at it.
Containerized deployment: run it as an HTTP server with Docker.
1. Claude Desktop Extension
Build the extension (or download
rentcast-mcp.mcpbfrom a release):npx @anthropic-ai/mcpb pack . rentcast-mcp.mcpbDouble-click
rentcast-mcp.mcpb, or drag it into Claude Desktop's Settings > Extensions.Enter your RentCast API key when prompted. Claude Desktop stores it as a sensitive setting.
The extension uses the MCPB uv server type: Claude Desktop installs the pinned dependencies from uv.lock on first launch, so you do not need Python installed yourself.
2. Local Installation
Install uv (recommended):
curl -LsSf https://astral.sh/uv/install.sh | shClone this repository:
git clone https://github.com/robcerda/rentcast-mcp-server.git cd rentcast-mcp-serverInstall dependencies:
Using
uv(recommended):uv sync --locked--lockedinstalls exactly whatuv.lockpins, verified against the hashes it records, and refuses to re-resolve.Using
pip:pip install -r requirements-lock.txt --require-hashes pip install -e . --no-depsrequirements-lock.txtis generated fromuv.lockand pins every dependency with hashes, so the pip path installs the same set as the uv one.pip install -r requirements.txtstill works and installs exactly the same set.Set your API key. Create a
.envfile in the project root:RENTCAST_API_KEY=your_api_key_hereOr pass it in the
envblock of the client configuration below.Configure Claude Desktop: Add this to your Claude Desktop configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%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" } } } }Important: Replace
/path/to/your/rentcast-mcp-serverwith your actual path, and/opt/homebrew/bin/uvwith the output ofwhich uv.Restart Claude Desktop after saving the configuration.
OR configure 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-mcpIf installed via
pipinstead ofuv, use:{ "command": "python", "args": ["/path/to/your/rentcast-mcp-server/src/rentcast_mcp_server/server.py"] }
Related MCP server: Zillow MCP Server
Configuration
Variable | Required | Description |
| No | A surrogate credential ( |
| Yes, unless a surrogate is set | Your RentCast API key |
| No |
|
| No |
|
| No | HTTP bind address (default |
| No | HTTP port (default |
| No | Extra |
| No | Extra browser |
Each HTTP setting also has a command line flag: rentcast-mcp --help.
Surrogate credentials
If your environment issues a surrogate credential (a string starting with hsurr:) in place of the real API key, set it in RENTCAST_SURROGATE_KEY. The server sends it in the X-Api-Key header exactly as given, the same way it sends a real key, and uses RENTCAST_API_KEY only when no surrogate is set. A value in RENTCAST_SURROGATE_KEY that does not start with hsurr: stops the server with an error instead of falling back to the real key.
Containerized Deployment
docker build -t rentcast-mcp .
docker run --rm -p 8000:8000 -e RENTCAST_API_KEY=your_api_key_here rentcast-mcpThe image serves streamable HTTP on port 8000 at /mcp. Host and Origin validation stay on even when bound to 0.0.0.0, so a client reaching it by a public name needs that name allowed:
docker run --rm -p 8000:8000 \
-e RENTCAST_API_KEY=your_api_key_here \
-e RENTCAST_MCP_ALLOWED_HOSTS=mcp.example.com \
rentcast-mcpThe HTTP transport has no authentication of its own. Anyone who can reach the port can spend your RentCast quota, so put it behind a VPN or an authenticating reverse proxy if it is reachable from outside your machine.
✨ Features
🏠 Property Records
Public records for 150M+ US properties: attributes, owner, tax assessments, sale history, and features. Look up one address, or search by city, state, zip code, or a radius around a point.
💰 Value and Rent Estimates
RentCast's automated valuation model returns a value or long-term rent estimate with a range and the comparable listings used to calculate it. Tune the comps with comp_count, max_radius and days_old, or override the subject property's attributes.
📋 Sale and Rental Listings
Active and inactive for-sale and long-term rental listings, with price, listing dates, agent and office details, and listing history.
📈 Market Statistics
Sale and rental statistics for any zip code: average, median, min and max price and rent, price per square foot, days on market, listing counts, breakdowns by property type and bedrooms, and monthly history.
🔍 Search Queries
Search tools accept RentCast's query syntax:
Multiple values with
|:property_type="Condo|Townhouse",bedrooms="2|3"Inclusive ranges with
:and*for an open end:bedrooms="2:4",price="*:500000",year_built="2000:*"Up to 500 results per request, paged with
limitandoffset. Setinclude_total_countto get the total number of matches.
🛠️ Available Tools
Tool | Description | RentCast endpoint |
| Search property records |
|
| Random sample of property records |
|
| One property record by id |
|
| Value estimate with comparable sales |
|
| Long-term rent estimate with comparable rentals |
|
| Search for-sale listings |
|
| One sale listing by id |
|
| Search long-term rental listings |
|
| One rental listing by id |
|
| Market statistics and history for a zip code |
|
Search tools return {count, limit, offset, hasMore, results}, plus totalCount when requested.
Prompts: property_analysis (value, rent, comps and market for an address) and market_overview (a zip code's sale and rental market).
📝 Usage Examples
Value and Rent for an Address
What is 5500 Grand Lake Dr, San Antonio, TX 78244 worth, and what would it rent for?Find Listings
Find 3 bedroom houses for sale under $500k in 78704 listed in the last 30 daysRental Market Trends
Show rental market trends in ZIP code 90210 over the last yearInvestment Analysis
Compare the gross rental yield of condos and single family homes for sale in 33131🔧 Troubleshooting
RentCast API error 401
The API key is missing or invalid. Check RENTCAST_API_KEY, or re-enter the key in the extension settings.
RentCast API error 403
The key is restricted to other endpoints or IP addresses, or there is a billing issue. Check your API dashboard.
RentCast API error 429
RentCast allows 20 requests per second per key. The server retries rate limited requests with backoff before reporting this.
Empty search results
RentCast reports "no results" as an empty results list. city and state are case-sensitive, and property_type must match exactly, e.g. Single Family.
Server disconnects on startup
Check the client's MCP logs. The most common cause is a missing RENTCAST_API_KEY, which makes the server exit immediately.
Development
uv sync --locked --extra dev
uv run pytest
uv run ruff check .The tests run against a fake RentCast API and never make real requests.
Running the server locally
uv run rentcast-mcpTo use the MCP Inspector:
uv run mcp dev src/rentcast_mcp_server/server.pyUpdating dependencies
uv lock --upgrade-package <name>
uv export --frozen --no-emit-project --no-editable --no-dev \
--format requirements-txt --output-file requirements-lock.txtCI fails if uv.lock, requirements-lock.txt, and requirements.txt drift apart.
Building the extension
npx @anthropic-ai/mcpb validate manifest.json
npx @anthropic-ai/mcpb pack . rentcast-mcp.mcpb.mcpbignore keeps tests, CI files and local environments out of the bundle. When you add or rename a tool, update the tools list in manifest.json; a test checks that it matches the server.
License
MIT
Available Tools
12 toolsget_market_statisticsC
Get market statistics for a specific area.
Inputs: zip_code (required), property_type, bedrooms.
get_property_dataC
Get detailed information about a specific property.
Inputs: property_id (required).
get_property_listingsC
Get property listings for a specific area.
Inputs: zip_code (required), property_type, min_price, max_price, +1 more.
get_property_record_by_idC
Get a specific property record by ID.
Inputs: property_id (required).
get_property_recordsC
Get property records with various filters. Returns a list of property records.
Inputs: zip_code, city, state, property_type, +9 more.
get_property_valuationA
Get valuation data for a specific property. Note: RentCast API may return basic property data instead of detailed valuations depending on subscription tier.
Inputs: property_id (required).
get_random_property_recordsC
Get random property records. Returns a list of random property records.
Inputs: limit, property_type, state.
get_rental_listing_by_idC
Get a specific rental listing by ID.
Inputs: listing_id (required).
get_rental_listingsC
Get rental listings with various filters. Returns a list of rental listings.
Inputs: zip_code, city, state, property_type, +9 more.
get_rent_estimateB
Get rent estimate for a specific property. Note: RentCast API may return basic property data instead of detailed rent estimates depending on subscription tier.
Inputs: property_id (required).
get_sale_listing_by_idC
Get a specific sale listing by ID.
Inputs: listing_id (required).
get_sale_listingsC
Get sale listings with various filters. Returns a list of sale listings.
Inputs: zip_code, city, state, property_type, +9 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
The tools have clear distinctions between property, rental, and sale data, but there is significant overlap in the 'get_property_data', 'get_property_record_by_id', and 'get_property_records' tools, which could confuse agents about which to use for specific property queries. Descriptions help clarify, but the boundaries are not entirely distinct.
All tool names follow a consistent 'get_<resource>_<action>' pattern using snake_case, with variations like 'by_id' or 'listings' that are predictable and readable. There are no deviations in naming conventions across the set.
With 12 tools, the count is reasonable for a real estate data server, covering market stats, property details, and listings. It might be slightly heavy, but each tool serves a specific purpose without obvious redundancy, fitting well within the typical 3-15 range for a focused domain.
The tool set provides comprehensive read-only coverage for real estate data, including statistics, property records, and listings for rentals and sales. Minor gaps exist, such as no update or delete operations, but this is typical for a data retrieval API, and agents can work around it for most use cases.
Related MCP Connectors
US property search and full listing detail (Redfin-sourced) as agent tools.
Rentcast MCP — wraps Rentcast API (api.rentcast.io/v1)
Real estate data for AI agents: property lookup, comps, search, skip tracing, phone/address checks
Zillow MCP for AI agents: property data, Zestimates & listings — 300+ fields per home. Free tier.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceConnects Claude AI to real estate data via the ATTOM Data API, enabling property information lookup and analysis using natural language queries.-
- AlicenseNot gradedqualityDmaintenanceProvides real-time access to Zillow real estate data, enabling property search, details, Zestimates, market trends, and mortgage calculations via natural language.6 npm56MIT
- FlicenseNot gradedqualityDmaintenanceExposes ATTOM's real estate API as MCP tools, enabling property details, valuations, assessments, sales, and area data via natural language.2-
- AlicenseAqualityDmaintenanceWraps the RentCast API to search houses for sale, get valuations, rent estimates, and market statistics.8MIT