
Zillow
STDIOMCP server providing real-time access to Zillow real estate data and property information
MCP server providing real-time access to Zillow real estate data and property information
A Model Context Protocol (MCP) server that provides real-time access to Zillow real estate data, built with Python and FastMCP.
Clone this repository:
git clone https://github.com/yourusername/zillow-mcp-server.git
cd zillow-mcp-server
Install the dependencies:
pip install -r requirements.txt
Create a .env
file with your Zillow API key:
ZILLOW_API_KEY=your_zillow_api_key_here
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
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
Add the Zillow MCP server to your Claude Desktop configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json
%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"] } } }
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 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 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 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 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.
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 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?
Get property information as a formatted text resource:
zillow://property/{property_id}
Get market trends information as a formatted text resource:
zillow://market-trends/{location}
The server implements robust error handling with:
This MCP server is built using:
The server provides both tools (interactive functions) and resources (static data) that Claude can access to provide real estate information to users.
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature-name
git commit -m 'Add some feature'
git push origin feature-name
This project is licensed under the MIT License - see the LICENSE file for details.