Skip to main content
Glama
tandat8503

Rentcast MCP Server

by tandat8503

🏠 Rentcast MCP Server

A Model Context Protocol (MCP) server that provides access to Rentcast Real Estate API data through a standardized interface. This server enables AI assistants and applications to retrieve comprehensive real estate information including property details, market analysis, rent estimates, and property valuations.

✨ Features

  • πŸ” Property Search: Search properties with filters (city, state, bedrooms, bathrooms, etc.)

  • 🎲 Random Properties: Get random properties for market analysis

  • πŸ“Š Market Analysis: Comprehensive market statistics and trends

  • πŸ’° Property Valuation: Automated property value estimates with comparables

  • 🏠 Rent Estimates: Long-term rent estimates with comparable properties

  • 🏘️ Sale Listings: Current properties for sale

  • 🏘️ Rental Listings: Current properties for rent

  • 🏠 Property Details: Detailed property information and parameters

Related MCP server: PolyMarket MCP Server

πŸš€ Quick Start

Prerequisites

Installation

# Clone the repository
git clone https://github.com/tandat8503/mcp_rentcast.git
cd mcp_rentcast

# Install dependencies
npm install

# Copy environment file
cp .env.example .env

# Edit .env with your Rentcast API key
RENTCAST_API_KEY=your_api_key_here

# Build the project
npm run build

# Start the server
npm start

Using with MCP Inspector

# Start MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.js

# Open browser at http://localhost:6274
# Use the provided auth token to access the interface

πŸ› οΈ Available Tools

1. search_properties

Search for properties with comprehensive information.

Parameters:

  • city (optional): City name (e.g., "Austin", "New York")

  • state (optional): State abbreviation (e.g., "TX", "CA")

  • zipCode (optional): ZIP code (e.g., "78705")

  • bedrooms (optional): Number of bedrooms (1-10)

  • bathrooms (optional): Number of bathrooms (1-10)

  • propertyType (optional): Property type (e.g., "Single Family", "Condo")

  • limit (optional): Maximum results (default: 15, max: 50)

Example:

{
  "city": "Austin",
  "state": "TX",
  "bedrooms": 2,
  "limit": 20
}

2. get_random_properties

Get random properties for market analysis.

Parameters:

  • city (optional): City name

  • state (optional): State abbreviation

  • zipCode (optional): ZIP code

  • limit (optional): Number of properties (default: 10, max: 50)

3. analyze_market

Get comprehensive market statistics and trends.

Parameters:

  • zipCode (optional): ZIP code for analysis

  • city (optional): City name

  • state (optional): State abbreviation

  • dataType (optional): "All", "Sale", or "Rental" (default: "All")

4. get_property_value

Get automated property value estimates.

Required (one of):

  • address: Full property address

  • latitude + longitude: GPS coordinates

  • propertyId: Unique property identifier

Optional:

  • propertyType: Property type

  • bedrooms: Number of bedrooms

  • bathrooms: Number of bathrooms

  • squareFootage: Property size in sq ft

Example:

{
  "address": "1011 W 23rd St, Austin, TX 78705",
  "propertyType": "Apartment",
  "bedrooms": 1,
  "bathrooms": 1
}

5. get_rent_estimates

Get long-term rent estimates with comparable properties.

Required (one of):

  • address: Full property address

  • latitude + longitude: GPS coordinates

  • propertyId: Unique property identifier

Optional:

  • propertyType: Property type

  • bedrooms: Number of bedrooms

  • bathrooms: Number of bathrooms

  • squareFootage: Property size in sq ft

6. get_sale_listings

Get current properties for sale.

Parameters:

  • city (optional): City name

  • state (optional): State abbreviation

  • zipCode (optional): ZIP code

  • limit (optional): Maximum results (default: 15, max: 50)

7. get_rental_listings

Get current properties for rent.

Parameters:

  • city (optional): City name

  • state (optional): State abbreviation

  • zipCode (optional): ZIP code

  • limit (optional): Maximum results (default: 15, max: 50)

8. get_property_details

Get detailed property information.

Parameters:

  • id (required): Property or listing ID

9. get_server_status

Get server status and API usage information.

Parameters: None

πŸ”§ Configuration

Environment Variables

Variable

Description

Default

Required

RENTCAST_API_KEY

Your Rentcast API key

-

βœ…

RENTCAST_BASE_URL

Rentcast API base URL

https://api.rentcast.io/v1

❌

MAX_API_CALLS_PER_SESSION

Maximum API calls per session

40

❌

TIMEOUT_SECONDS

API call timeout

30

❌

ENABLE_RATE_LIMITING

Enable rate limiting

true

❌

RATE_LIMIT_PER_MINUTE

Rate limit per minute

60

❌

DEBUG

Enable debug mode

false

❌

LOG_LEVEL

Log level

INFO

❌

API Limits

  • Free Tier: 45 API calls per month

  • Default Session Limit: 40 calls per session

  • Rate Limiting: 60 calls per minute (configurable)

πŸ—οΈ Project Structure

mcp_rentcast/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ index.ts          # Main MCP server implementation
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”œβ”€β”€ config.ts     # Configuration service
β”‚   β”‚   └── rentcast-api.ts # Rentcast API client
β”‚   └── types/
β”‚       └── index.ts      # TypeScript type definitions
β”œβ”€β”€ dist/                 # Compiled JavaScript output
β”œβ”€β”€ package.json          # Project dependencies and scripts
β”œβ”€β”€ tsconfig.json         # TypeScript configuration
β”œβ”€β”€ .env.example          # Environment variables template
β”œβ”€β”€ .gitignore           # Git ignore patterns
└── README.md            # This file

πŸš€ Development

Scripts

# Build the project
npm run build

# Start in development mode with hot reload
npm run dev

# Start production server
npm start

# Run tests
npm test

# Lint code
npm run lint

# Format code
npm run format

Building

# Development build
npm run build

# The compiled output will be in the `dist/` directory

Debug Mode

The server includes comprehensive console logging for debugging:

  • Input Parameters: Logs all parameters received by tools

  • API Responses: Logs API call results and data samples

  • Error Handling: Detailed error logging with context

  • Performance: API call counts and rate limiting information

πŸ” Debugging

Console Logs

Each tool provides detailed logging:

πŸ” [tool_name] Tool called with params: { ... }
πŸ” [tool_name] Built search params: { ... }
πŸ” [tool_name] API result: { ... }
πŸ” [tool_name] Data sample: { ... }
πŸ” [tool_name] Tool completed successfully

Common Issues

  1. Missing API Key: Ensure RENTCAST_API_KEY is set in .env

  2. API Limits: Monitor remaining API calls with get_server_status

  3. Rate Limiting: Wait between API calls if rate limited

  4. Invalid Parameters: Check parameter validation in console logs

πŸ“Š API Usage Optimization

Best Practices

  1. Batch Requests: Use higher limits when possible to reduce API calls

  2. Caching: Implement caching for frequently requested data

  3. Parameter Validation: Provide accurate parameters for better results

  4. Error Handling: Implement proper error handling for failed requests

Rate Limiting

  • Default: 60 calls per minute

  • Configurable via RATE_LIMIT_PER_MINUTE

  • Automatic delays between calls when enabled

🀝 Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests if applicable

  5. Submit a pull request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support

For issues and questions:

  1. Check the console logs for debugging information

  2. Verify your API key and configuration

  3. Check Rentcast API status and limits

  4. Open an issue in the repository


Built with ❀️ for the MCP community

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tandat8503/mcp_rentcast'

If you have feedback or need assistance with the MCP directory API, please join our Discord server