icon for mcp server

Zillow

STDIO

MCP server providing real-time access to Zillow real estate data and property information

Zillow MCP Server

A Model Context Protocol (MCP) server that provides real-time access to Zillow real estate data, built with Python and FastMCP.

Features

  • 🏠 Property Search: Search for properties by location, price range, and property features
  • 💰 Property Details: Get detailed information about specific properties
  • 📊 Zestimates: Access Zillow's proprietary home valuation data
  • 📈 Market Trends: View real estate market trends for any location
  • 🧮 Mortgage Calculator: Calculate mortgage payments based on various inputs
  • 🔍 Health Check: Verify API connectivity and monitor performance

Installation

Prerequisites

Setup

  1. Clone this repository:

    git clone https://github.com/yourusername/zillow-mcp-server.git
    cd zillow-mcp-server
    
  2. Install the dependencies:

    pip install -r requirements.txt
    
  3. Create a .env file with your Zillow API key:

    ZILLOW_API_KEY=your_zillow_api_key_here
    

Running the Server

Run the server with options:

# Standard stdio mode (for Claude Desktop) python zillow_mcp_server.py # HTTP server mode (for remote access) python zillow_mcp_server.py --http --port 8000 # Debug mode for more verbose logging python zillow_mcp_server.py --debug

Docker Deployment

You can also run the server using Docker:

# Build the Docker image docker build -t zillow-mcp-server . # Run with environment variables docker run -p 8000:8000 -e ZILLOW_API_KEY=your_key_here zillow-mcp-server # Or using an env file docker run -p 8000:8000 --env-file .env zillow-mcp-server

Usage with Claude Desktop

Add the Zillow MCP server to your Claude Desktop configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{ "mcpServers": { "zillow": { "command": "python", "args": ["/path/to/zillow_mcp_server.py"] } } }

For remote HTTP server:

{ "mcpServers": { "zillow-remote": { "command": "npx", "args": ["mcp-remote", "https://your-mcp-server-url.com/sse"] } } }

Available Tools

Search Properties

Search for properties based on various criteria:

search_properties( location: str, type: str = "forSale", min_price: Optional[int] = None, max_price: Optional[int] = None, beds_min: Optional[int] = None, beds_max: Optional[int] = None, baths_min: Optional[float] = None, baths_max: Optional[float] = None, home_types: Optional[List[str]] = None )

Example usage in Claude:

Please search for properties in Seattle with prices between $500,000 and $800,000.

Get Property Details

Get detailed information about a specific property:

get_property_details( property_id: str = None, address: str = None )

Example usage in Claude:

Can you get the details for the property with ID 12345?

Get Zestimate

Get Zillow's estimated value for a property:

get_zestimate( property_id: str = None, address: str = None )

Example usage in Claude:

What's the Zestimate for 123 Main St, Seattle, WA?

Get Market Trends

Get real estate market trends for a specific location:

get_market_trends( location: str, metrics: List[str] = ["median_list_price", "median_sale_price", "median_days_on_market"], time_period: str = "1year" )

Example usage in Claude:

What are the current real estate trends in Boston over the past year?

Calculate Mortgage

Calculate mortgage payments and related costs:

calculate_mortgage( home_price: int, down_payment: int = None, down_payment_percent: float = None, loan_term: int = 30, interest_rate: float = 6.5, annual_property_tax: int = None, annual_homeowners_insurance: int = None, monthly_hoa: int = 0, include_pmi: bool = True )

Example usage in Claude:

Calculate the monthly mortgage payment for a $600,000 house with 20% down and a 6% interest rate.

Check Health

Verify the Zillow API connection and get server status:

check_health()

Example usage in Claude:

Please check if the Zillow API is currently responsive.

Get Server Tools

Get a list of all available tools on this server:

get_server_tools()

Example usage in Claude:

What tools are available in the Zillow MCP server?

Available Resources

Property Resource

Get property information as a formatted text resource:

zillow://property/{property_id}

Market Trends Resource

Get market trends information as a formatted text resource:

zillow://market-trends/{location}

Error Handling

The server implements robust error handling with:

  • Automatic retries with exponential backoff
  • Detailed error logging
  • Rate limit handling
  • Connection timeouts
  • Graceful degradation

Technical Architecture

This MCP server is built using:

  • FastMCP: A Pythonic framework for building Model Context Protocol servers
  • Requests: For making HTTP requests to the Zillow Bridge API with connection pooling and retries
  • Backoff: For implementing exponential backoff retry logic
  • python-dotenv: For managing environment variables

The server provides both tools (interactive functions) and resources (static data) that Claude can access to provide real estate information to users.

Limitations and Considerations

  • Zillow's API has usage limits (typically 1,000 requests per day per dataset)
  • Zillow's terms of service prohibit storing data locally; all requests must be dynamic
  • You must properly attribute data to Zillow in the user interface
  • The Bridge API format may change; refer to Zillow's documentation for updates

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Commit your changes: git commit -m 'Add some feature'
  4. Push to the branch: git push origin feature-name
  5. Submit a pull request

License

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

Acknowledgments

Be the First to Experience MCP Now