iflow-mcp_sap156-zillow-mcp-server 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- iflow_mcp_sap156_zillow_mcp_server-1.0.0/PKG-INFO +320 -0
- iflow_mcp_sap156_zillow_mcp_server-1.0.0/README.md +288 -0
- iflow_mcp_sap156_zillow_mcp_server-1.0.0/iflow_mcp_sap156_zillow_mcp_server.egg-info/PKG-INFO +320 -0
- iflow_mcp_sap156_zillow_mcp_server-1.0.0/iflow_mcp_sap156_zillow_mcp_server.egg-info/SOURCES.txt +8 -0
- iflow_mcp_sap156_zillow_mcp_server-1.0.0/iflow_mcp_sap156_zillow_mcp_server.egg-info/dependency_links.txt +1 -0
- iflow_mcp_sap156_zillow_mcp_server-1.0.0/iflow_mcp_sap156_zillow_mcp_server.egg-info/entry_points.txt +2 -0
- iflow_mcp_sap156_zillow_mcp_server-1.0.0/iflow_mcp_sap156_zillow_mcp_server.egg-info/requires.txt +10 -0
- iflow_mcp_sap156_zillow_mcp_server-1.0.0/iflow_mcp_sap156_zillow_mcp_server.egg-info/top_level.txt +1 -0
- iflow_mcp_sap156_zillow_mcp_server-1.0.0/pyproject.toml +56 -0
- iflow_mcp_sap156_zillow_mcp_server-1.0.0/setup.cfg +4 -0
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: iflow-mcp_sap156-zillow-mcp-server
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Zillow MCP Server for real estate data access via the Model Context Protocol
|
|
5
|
+
Author-email: Sai Abhinav Parvathaneni <neni.abhinav@gmail.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/sap156/zillow-mcp-server
|
|
8
|
+
Project-URL: Repository, https://github.com/sap156/zillow-mcp-server
|
|
9
|
+
Project-URL: Issues, https://github.com/sap156/zillow-mcp-server/issues
|
|
10
|
+
Keywords: zillow,mcp,model-context-protocol,real-estate,claude,api
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
|
+
Requires-Python: >=3.8
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
Requires-Dist: fastmcp>=2.0.0
|
|
24
|
+
Requires-Dist: requests>=2.31.0
|
|
25
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
26
|
+
Requires-Dist: backoff>=2.2.1
|
|
27
|
+
Requires-Dist: urllib3>=2.0.0
|
|
28
|
+
Provides-Extra: dev
|
|
29
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
30
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
31
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
32
|
+
|
|
33
|
+
# Zillow MCP Server
|
|
34
|
+
|
|
35
|
+
A Model Context Protocol (MCP) server that provides real-time access to Zillow real estate data, built with Python and FastMCP.
|
|
36
|
+
|
|
37
|
+
## Features
|
|
38
|
+
|
|
39
|
+
- 🏠 **Property Search**: Search for properties by location, price range, and property features
|
|
40
|
+
- 💰 **Property Details**: Get detailed information about specific properties
|
|
41
|
+
- 📊 **Zestimates**: Access Zillow's proprietary home valuation data
|
|
42
|
+
- 📈 **Market Trends**: View real estate market trends for any location
|
|
43
|
+
- 🧮 **Mortgage Calculator**: Calculate mortgage payments based on various inputs
|
|
44
|
+
- 🔍 **Health Check**: Verify API connectivity and monitor performance
|
|
45
|
+
|
|
46
|
+
## Installation
|
|
47
|
+
|
|
48
|
+
### Prerequisites
|
|
49
|
+
|
|
50
|
+
- Python 3.8 or higher
|
|
51
|
+
- A Zillow Bridge API key (request access at api@bridgeinteractive.com)
|
|
52
|
+
|
|
53
|
+
### Setup
|
|
54
|
+
|
|
55
|
+
1. Clone this repository:
|
|
56
|
+
```
|
|
57
|
+
git clone https://github.com/yourusername/zillow-mcp-server.git
|
|
58
|
+
cd zillow-mcp-server
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
2. Install the dependencies:
|
|
62
|
+
```
|
|
63
|
+
pip install -r requirements.txt
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
3. Create a `.env` file with your Zillow API key:
|
|
67
|
+
```
|
|
68
|
+
ZILLOW_API_KEY=your_zillow_api_key_here
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Running the Server
|
|
72
|
+
|
|
73
|
+
Run the server with options:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# Standard stdio mode (for Claude Desktop)
|
|
77
|
+
python zillow_mcp_server.py
|
|
78
|
+
|
|
79
|
+
# HTTP server mode (for remote access)
|
|
80
|
+
python zillow_mcp_server.py --http --port 8000
|
|
81
|
+
|
|
82
|
+
# Debug mode for more verbose logging
|
|
83
|
+
python zillow_mcp_server.py --debug
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Docker Deployment
|
|
87
|
+
|
|
88
|
+
You can also run the server using Docker:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# Build the Docker image
|
|
92
|
+
docker build -t zillow-mcp-server .
|
|
93
|
+
|
|
94
|
+
# Run with environment variables
|
|
95
|
+
docker run -p 8000:8000 -e ZILLOW_API_KEY=your_key_here zillow-mcp-server
|
|
96
|
+
|
|
97
|
+
# Or using an env file
|
|
98
|
+
docker run -p 8000:8000 --env-file .env zillow-mcp-server
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Usage with Claude Desktop
|
|
102
|
+
|
|
103
|
+
Add the Zillow MCP server to your Claude Desktop configuration file:
|
|
104
|
+
|
|
105
|
+
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
106
|
+
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
107
|
+
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"mcpServers": {
|
|
111
|
+
"zillow": {
|
|
112
|
+
"command": "python",
|
|
113
|
+
"args": ["/path/to/zillow_mcp_server.py"]
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
For remote HTTP server:
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"mcpServers": {
|
|
124
|
+
"zillow-remote": {
|
|
125
|
+
"command": "npx",
|
|
126
|
+
"args": ["mcp-remote", "https://your-mcp-server-url.com/sse"]
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Available Tools
|
|
133
|
+
|
|
134
|
+
### Search Properties
|
|
135
|
+
|
|
136
|
+
Search for properties based on various criteria:
|
|
137
|
+
|
|
138
|
+
```python
|
|
139
|
+
search_properties(
|
|
140
|
+
location: str,
|
|
141
|
+
type: str = "forSale",
|
|
142
|
+
min_price: Optional[int] = None,
|
|
143
|
+
max_price: Optional[int] = None,
|
|
144
|
+
beds_min: Optional[int] = None,
|
|
145
|
+
beds_max: Optional[int] = None,
|
|
146
|
+
baths_min: Optional[float] = None,
|
|
147
|
+
baths_max: Optional[float] = None,
|
|
148
|
+
home_types: Optional[List[str]] = None
|
|
149
|
+
)
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Example usage in Claude:
|
|
153
|
+
```
|
|
154
|
+
Please search for properties in Seattle with prices between $500,000 and $800,000.
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Get Property Details
|
|
158
|
+
|
|
159
|
+
Get detailed information about a specific property:
|
|
160
|
+
|
|
161
|
+
```python
|
|
162
|
+
get_property_details(
|
|
163
|
+
property_id: str = None,
|
|
164
|
+
address: str = None
|
|
165
|
+
)
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Example usage in Claude:
|
|
169
|
+
```
|
|
170
|
+
Can you get the details for the property with ID 12345?
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Get Zestimate
|
|
174
|
+
|
|
175
|
+
Get Zillow's estimated value for a property:
|
|
176
|
+
|
|
177
|
+
```python
|
|
178
|
+
get_zestimate(
|
|
179
|
+
property_id: str = None,
|
|
180
|
+
address: str = None
|
|
181
|
+
)
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Example usage in Claude:
|
|
185
|
+
```
|
|
186
|
+
What's the Zestimate for 123 Main St, Seattle, WA?
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Get Market Trends
|
|
190
|
+
|
|
191
|
+
Get real estate market trends for a specific location:
|
|
192
|
+
|
|
193
|
+
```python
|
|
194
|
+
get_market_trends(
|
|
195
|
+
location: str,
|
|
196
|
+
metrics: List[str] = ["median_list_price", "median_sale_price", "median_days_on_market"],
|
|
197
|
+
time_period: str = "1year"
|
|
198
|
+
)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Example usage in Claude:
|
|
202
|
+
```
|
|
203
|
+
What are the current real estate trends in Boston over the past year?
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Calculate Mortgage
|
|
207
|
+
|
|
208
|
+
Calculate mortgage payments and related costs:
|
|
209
|
+
|
|
210
|
+
```python
|
|
211
|
+
calculate_mortgage(
|
|
212
|
+
home_price: int,
|
|
213
|
+
down_payment: int = None,
|
|
214
|
+
down_payment_percent: float = None,
|
|
215
|
+
loan_term: int = 30,
|
|
216
|
+
interest_rate: float = 6.5,
|
|
217
|
+
annual_property_tax: int = None,
|
|
218
|
+
annual_homeowners_insurance: int = None,
|
|
219
|
+
monthly_hoa: int = 0,
|
|
220
|
+
include_pmi: bool = True
|
|
221
|
+
)
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Example usage in Claude:
|
|
225
|
+
```
|
|
226
|
+
Calculate the monthly mortgage payment for a $600,000 house with 20% down and a 6% interest rate.
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Check Health
|
|
230
|
+
|
|
231
|
+
Verify the Zillow API connection and get server status:
|
|
232
|
+
|
|
233
|
+
```python
|
|
234
|
+
check_health()
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Example usage in Claude:
|
|
238
|
+
```
|
|
239
|
+
Please check if the Zillow API is currently responsive.
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Get Server Tools
|
|
243
|
+
|
|
244
|
+
Get a list of all available tools on this server:
|
|
245
|
+
|
|
246
|
+
```python
|
|
247
|
+
get_server_tools()
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
Example usage in Claude:
|
|
251
|
+
```
|
|
252
|
+
What tools are available in the Zillow MCP server?
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
## Available Resources
|
|
256
|
+
|
|
257
|
+
### Property Resource
|
|
258
|
+
|
|
259
|
+
Get property information as a formatted text resource:
|
|
260
|
+
|
|
261
|
+
```
|
|
262
|
+
zillow://property/{property_id}
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Market Trends Resource
|
|
266
|
+
|
|
267
|
+
Get market trends information as a formatted text resource:
|
|
268
|
+
|
|
269
|
+
```
|
|
270
|
+
zillow://market-trends/{location}
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## Error Handling
|
|
274
|
+
|
|
275
|
+
The server implements robust error handling with:
|
|
276
|
+
|
|
277
|
+
- Automatic retries with exponential backoff
|
|
278
|
+
- Detailed error logging
|
|
279
|
+
- Rate limit handling
|
|
280
|
+
- Connection timeouts
|
|
281
|
+
- Graceful degradation
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
## Technical Architecture
|
|
285
|
+
|
|
286
|
+
This MCP server is built using:
|
|
287
|
+
|
|
288
|
+
- **FastMCP**: A Pythonic framework for building Model Context Protocol servers
|
|
289
|
+
- **Requests**: For making HTTP requests to the Zillow Bridge API with connection pooling and retries
|
|
290
|
+
- **Backoff**: For implementing exponential backoff retry logic
|
|
291
|
+
- **python-dotenv**: For managing environment variables
|
|
292
|
+
|
|
293
|
+
The server provides both tools (interactive functions) and resources (static data) that Claude can access to provide real estate information to users.
|
|
294
|
+
|
|
295
|
+
## Limitations and Considerations
|
|
296
|
+
|
|
297
|
+
- Zillow's API has usage limits (typically 1,000 requests per day per dataset)
|
|
298
|
+
- Zillow's terms of service prohibit storing data locally; all requests must be dynamic
|
|
299
|
+
- You must properly attribute data to Zillow in the user interface
|
|
300
|
+
- The Bridge API format may change; refer to Zillow's documentation for updates
|
|
301
|
+
|
|
302
|
+
## Contributing
|
|
303
|
+
|
|
304
|
+
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
305
|
+
|
|
306
|
+
1. Fork the repository
|
|
307
|
+
2. Create a feature branch: `git checkout -b feature-name`
|
|
308
|
+
3. Commit your changes: `git commit -m 'Add some feature'`
|
|
309
|
+
4. Push to the branch: `git push origin feature-name`
|
|
310
|
+
5. Submit a pull request
|
|
311
|
+
|
|
312
|
+
## License
|
|
313
|
+
|
|
314
|
+
This project is licensed under the MIT License - see the LICENSE file for details.
|
|
315
|
+
|
|
316
|
+
## Acknowledgments
|
|
317
|
+
|
|
318
|
+
- [FastMCP](https://github.com/jlowin/fastmcp) for the Pythonic MCP implementation
|
|
319
|
+
- [Zillow](https://www.zillow.com) for providing real estate data APIs
|
|
320
|
+
- [Model Context Protocol](https://modelcontextprotocol.io) for the standard protocol specification
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
# Zillow MCP Server
|
|
2
|
+
|
|
3
|
+
A Model Context Protocol (MCP) server that provides real-time access to Zillow real estate data, built with Python and FastMCP.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- 🏠 **Property Search**: Search for properties by location, price range, and property features
|
|
8
|
+
- 💰 **Property Details**: Get detailed information about specific properties
|
|
9
|
+
- 📊 **Zestimates**: Access Zillow's proprietary home valuation data
|
|
10
|
+
- 📈 **Market Trends**: View real estate market trends for any location
|
|
11
|
+
- 🧮 **Mortgage Calculator**: Calculate mortgage payments based on various inputs
|
|
12
|
+
- 🔍 **Health Check**: Verify API connectivity and monitor performance
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
### Prerequisites
|
|
17
|
+
|
|
18
|
+
- Python 3.8 or higher
|
|
19
|
+
- A Zillow Bridge API key (request access at api@bridgeinteractive.com)
|
|
20
|
+
|
|
21
|
+
### Setup
|
|
22
|
+
|
|
23
|
+
1. Clone this repository:
|
|
24
|
+
```
|
|
25
|
+
git clone https://github.com/yourusername/zillow-mcp-server.git
|
|
26
|
+
cd zillow-mcp-server
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
2. Install the dependencies:
|
|
30
|
+
```
|
|
31
|
+
pip install -r requirements.txt
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
3. Create a `.env` file with your Zillow API key:
|
|
35
|
+
```
|
|
36
|
+
ZILLOW_API_KEY=your_zillow_api_key_here
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Running the Server
|
|
40
|
+
|
|
41
|
+
Run the server with options:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Standard stdio mode (for Claude Desktop)
|
|
45
|
+
python zillow_mcp_server.py
|
|
46
|
+
|
|
47
|
+
# HTTP server mode (for remote access)
|
|
48
|
+
python zillow_mcp_server.py --http --port 8000
|
|
49
|
+
|
|
50
|
+
# Debug mode for more verbose logging
|
|
51
|
+
python zillow_mcp_server.py --debug
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Docker Deployment
|
|
55
|
+
|
|
56
|
+
You can also run the server using Docker:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Build the Docker image
|
|
60
|
+
docker build -t zillow-mcp-server .
|
|
61
|
+
|
|
62
|
+
# Run with environment variables
|
|
63
|
+
docker run -p 8000:8000 -e ZILLOW_API_KEY=your_key_here zillow-mcp-server
|
|
64
|
+
|
|
65
|
+
# Or using an env file
|
|
66
|
+
docker run -p 8000:8000 --env-file .env zillow-mcp-server
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Usage with Claude Desktop
|
|
70
|
+
|
|
71
|
+
Add the Zillow MCP server to your Claude Desktop configuration file:
|
|
72
|
+
|
|
73
|
+
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
74
|
+
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"mcpServers": {
|
|
79
|
+
"zillow": {
|
|
80
|
+
"command": "python",
|
|
81
|
+
"args": ["/path/to/zillow_mcp_server.py"]
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
For remote HTTP server:
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"mcpServers": {
|
|
92
|
+
"zillow-remote": {
|
|
93
|
+
"command": "npx",
|
|
94
|
+
"args": ["mcp-remote", "https://your-mcp-server-url.com/sse"]
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Available Tools
|
|
101
|
+
|
|
102
|
+
### Search Properties
|
|
103
|
+
|
|
104
|
+
Search for properties based on various criteria:
|
|
105
|
+
|
|
106
|
+
```python
|
|
107
|
+
search_properties(
|
|
108
|
+
location: str,
|
|
109
|
+
type: str = "forSale",
|
|
110
|
+
min_price: Optional[int] = None,
|
|
111
|
+
max_price: Optional[int] = None,
|
|
112
|
+
beds_min: Optional[int] = None,
|
|
113
|
+
beds_max: Optional[int] = None,
|
|
114
|
+
baths_min: Optional[float] = None,
|
|
115
|
+
baths_max: Optional[float] = None,
|
|
116
|
+
home_types: Optional[List[str]] = None
|
|
117
|
+
)
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Example usage in Claude:
|
|
121
|
+
```
|
|
122
|
+
Please search for properties in Seattle with prices between $500,000 and $800,000.
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Get Property Details
|
|
126
|
+
|
|
127
|
+
Get detailed information about a specific property:
|
|
128
|
+
|
|
129
|
+
```python
|
|
130
|
+
get_property_details(
|
|
131
|
+
property_id: str = None,
|
|
132
|
+
address: str = None
|
|
133
|
+
)
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Example usage in Claude:
|
|
137
|
+
```
|
|
138
|
+
Can you get the details for the property with ID 12345?
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Get Zestimate
|
|
142
|
+
|
|
143
|
+
Get Zillow's estimated value for a property:
|
|
144
|
+
|
|
145
|
+
```python
|
|
146
|
+
get_zestimate(
|
|
147
|
+
property_id: str = None,
|
|
148
|
+
address: str = None
|
|
149
|
+
)
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Example usage in Claude:
|
|
153
|
+
```
|
|
154
|
+
What's the Zestimate for 123 Main St, Seattle, WA?
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Get Market Trends
|
|
158
|
+
|
|
159
|
+
Get real estate market trends for a specific location:
|
|
160
|
+
|
|
161
|
+
```python
|
|
162
|
+
get_market_trends(
|
|
163
|
+
location: str,
|
|
164
|
+
metrics: List[str] = ["median_list_price", "median_sale_price", "median_days_on_market"],
|
|
165
|
+
time_period: str = "1year"
|
|
166
|
+
)
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Example usage in Claude:
|
|
170
|
+
```
|
|
171
|
+
What are the current real estate trends in Boston over the past year?
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Calculate Mortgage
|
|
175
|
+
|
|
176
|
+
Calculate mortgage payments and related costs:
|
|
177
|
+
|
|
178
|
+
```python
|
|
179
|
+
calculate_mortgage(
|
|
180
|
+
home_price: int,
|
|
181
|
+
down_payment: int = None,
|
|
182
|
+
down_payment_percent: float = None,
|
|
183
|
+
loan_term: int = 30,
|
|
184
|
+
interest_rate: float = 6.5,
|
|
185
|
+
annual_property_tax: int = None,
|
|
186
|
+
annual_homeowners_insurance: int = None,
|
|
187
|
+
monthly_hoa: int = 0,
|
|
188
|
+
include_pmi: bool = True
|
|
189
|
+
)
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Example usage in Claude:
|
|
193
|
+
```
|
|
194
|
+
Calculate the monthly mortgage payment for a $600,000 house with 20% down and a 6% interest rate.
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Check Health
|
|
198
|
+
|
|
199
|
+
Verify the Zillow API connection and get server status:
|
|
200
|
+
|
|
201
|
+
```python
|
|
202
|
+
check_health()
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Example usage in Claude:
|
|
206
|
+
```
|
|
207
|
+
Please check if the Zillow API is currently responsive.
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Get Server Tools
|
|
211
|
+
|
|
212
|
+
Get a list of all available tools on this server:
|
|
213
|
+
|
|
214
|
+
```python
|
|
215
|
+
get_server_tools()
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Example usage in Claude:
|
|
219
|
+
```
|
|
220
|
+
What tools are available in the Zillow MCP server?
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## Available Resources
|
|
224
|
+
|
|
225
|
+
### Property Resource
|
|
226
|
+
|
|
227
|
+
Get property information as a formatted text resource:
|
|
228
|
+
|
|
229
|
+
```
|
|
230
|
+
zillow://property/{property_id}
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Market Trends Resource
|
|
234
|
+
|
|
235
|
+
Get market trends information as a formatted text resource:
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
zillow://market-trends/{location}
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## Error Handling
|
|
242
|
+
|
|
243
|
+
The server implements robust error handling with:
|
|
244
|
+
|
|
245
|
+
- Automatic retries with exponential backoff
|
|
246
|
+
- Detailed error logging
|
|
247
|
+
- Rate limit handling
|
|
248
|
+
- Connection timeouts
|
|
249
|
+
- Graceful degradation
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
## Technical Architecture
|
|
253
|
+
|
|
254
|
+
This MCP server is built using:
|
|
255
|
+
|
|
256
|
+
- **FastMCP**: A Pythonic framework for building Model Context Protocol servers
|
|
257
|
+
- **Requests**: For making HTTP requests to the Zillow Bridge API with connection pooling and retries
|
|
258
|
+
- **Backoff**: For implementing exponential backoff retry logic
|
|
259
|
+
- **python-dotenv**: For managing environment variables
|
|
260
|
+
|
|
261
|
+
The server provides both tools (interactive functions) and resources (static data) that Claude can access to provide real estate information to users.
|
|
262
|
+
|
|
263
|
+
## Limitations and Considerations
|
|
264
|
+
|
|
265
|
+
- Zillow's API has usage limits (typically 1,000 requests per day per dataset)
|
|
266
|
+
- Zillow's terms of service prohibit storing data locally; all requests must be dynamic
|
|
267
|
+
- You must properly attribute data to Zillow in the user interface
|
|
268
|
+
- The Bridge API format may change; refer to Zillow's documentation for updates
|
|
269
|
+
|
|
270
|
+
## Contributing
|
|
271
|
+
|
|
272
|
+
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
273
|
+
|
|
274
|
+
1. Fork the repository
|
|
275
|
+
2. Create a feature branch: `git checkout -b feature-name`
|
|
276
|
+
3. Commit your changes: `git commit -m 'Add some feature'`
|
|
277
|
+
4. Push to the branch: `git push origin feature-name`
|
|
278
|
+
5. Submit a pull request
|
|
279
|
+
|
|
280
|
+
## License
|
|
281
|
+
|
|
282
|
+
This project is licensed under the MIT License - see the LICENSE file for details.
|
|
283
|
+
|
|
284
|
+
## Acknowledgments
|
|
285
|
+
|
|
286
|
+
- [FastMCP](https://github.com/jlowin/fastmcp) for the Pythonic MCP implementation
|
|
287
|
+
- [Zillow](https://www.zillow.com) for providing real estate data APIs
|
|
288
|
+
- [Model Context Protocol](https://modelcontextprotocol.io) for the standard protocol specification
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: iflow-mcp_sap156-zillow-mcp-server
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Zillow MCP Server for real estate data access via the Model Context Protocol
|
|
5
|
+
Author-email: Sai Abhinav Parvathaneni <neni.abhinav@gmail.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/sap156/zillow-mcp-server
|
|
8
|
+
Project-URL: Repository, https://github.com/sap156/zillow-mcp-server
|
|
9
|
+
Project-URL: Issues, https://github.com/sap156/zillow-mcp-server/issues
|
|
10
|
+
Keywords: zillow,mcp,model-context-protocol,real-estate,claude,api
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
|
+
Requires-Python: >=3.8
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
Requires-Dist: fastmcp>=2.0.0
|
|
24
|
+
Requires-Dist: requests>=2.31.0
|
|
25
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
26
|
+
Requires-Dist: backoff>=2.2.1
|
|
27
|
+
Requires-Dist: urllib3>=2.0.0
|
|
28
|
+
Provides-Extra: dev
|
|
29
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
30
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
31
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
32
|
+
|
|
33
|
+
# Zillow MCP Server
|
|
34
|
+
|
|
35
|
+
A Model Context Protocol (MCP) server that provides real-time access to Zillow real estate data, built with Python and FastMCP.
|
|
36
|
+
|
|
37
|
+
## Features
|
|
38
|
+
|
|
39
|
+
- 🏠 **Property Search**: Search for properties by location, price range, and property features
|
|
40
|
+
- 💰 **Property Details**: Get detailed information about specific properties
|
|
41
|
+
- 📊 **Zestimates**: Access Zillow's proprietary home valuation data
|
|
42
|
+
- 📈 **Market Trends**: View real estate market trends for any location
|
|
43
|
+
- 🧮 **Mortgage Calculator**: Calculate mortgage payments based on various inputs
|
|
44
|
+
- 🔍 **Health Check**: Verify API connectivity and monitor performance
|
|
45
|
+
|
|
46
|
+
## Installation
|
|
47
|
+
|
|
48
|
+
### Prerequisites
|
|
49
|
+
|
|
50
|
+
- Python 3.8 or higher
|
|
51
|
+
- A Zillow Bridge API key (request access at api@bridgeinteractive.com)
|
|
52
|
+
|
|
53
|
+
### Setup
|
|
54
|
+
|
|
55
|
+
1. Clone this repository:
|
|
56
|
+
```
|
|
57
|
+
git clone https://github.com/yourusername/zillow-mcp-server.git
|
|
58
|
+
cd zillow-mcp-server
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
2. Install the dependencies:
|
|
62
|
+
```
|
|
63
|
+
pip install -r requirements.txt
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
3. Create a `.env` file with your Zillow API key:
|
|
67
|
+
```
|
|
68
|
+
ZILLOW_API_KEY=your_zillow_api_key_here
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Running the Server
|
|
72
|
+
|
|
73
|
+
Run the server with options:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# Standard stdio mode (for Claude Desktop)
|
|
77
|
+
python zillow_mcp_server.py
|
|
78
|
+
|
|
79
|
+
# HTTP server mode (for remote access)
|
|
80
|
+
python zillow_mcp_server.py --http --port 8000
|
|
81
|
+
|
|
82
|
+
# Debug mode for more verbose logging
|
|
83
|
+
python zillow_mcp_server.py --debug
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Docker Deployment
|
|
87
|
+
|
|
88
|
+
You can also run the server using Docker:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# Build the Docker image
|
|
92
|
+
docker build -t zillow-mcp-server .
|
|
93
|
+
|
|
94
|
+
# Run with environment variables
|
|
95
|
+
docker run -p 8000:8000 -e ZILLOW_API_KEY=your_key_here zillow-mcp-server
|
|
96
|
+
|
|
97
|
+
# Or using an env file
|
|
98
|
+
docker run -p 8000:8000 --env-file .env zillow-mcp-server
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Usage with Claude Desktop
|
|
102
|
+
|
|
103
|
+
Add the Zillow MCP server to your Claude Desktop configuration file:
|
|
104
|
+
|
|
105
|
+
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
106
|
+
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
107
|
+
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"mcpServers": {
|
|
111
|
+
"zillow": {
|
|
112
|
+
"command": "python",
|
|
113
|
+
"args": ["/path/to/zillow_mcp_server.py"]
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
For remote HTTP server:
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"mcpServers": {
|
|
124
|
+
"zillow-remote": {
|
|
125
|
+
"command": "npx",
|
|
126
|
+
"args": ["mcp-remote", "https://your-mcp-server-url.com/sse"]
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Available Tools
|
|
133
|
+
|
|
134
|
+
### Search Properties
|
|
135
|
+
|
|
136
|
+
Search for properties based on various criteria:
|
|
137
|
+
|
|
138
|
+
```python
|
|
139
|
+
search_properties(
|
|
140
|
+
location: str,
|
|
141
|
+
type: str = "forSale",
|
|
142
|
+
min_price: Optional[int] = None,
|
|
143
|
+
max_price: Optional[int] = None,
|
|
144
|
+
beds_min: Optional[int] = None,
|
|
145
|
+
beds_max: Optional[int] = None,
|
|
146
|
+
baths_min: Optional[float] = None,
|
|
147
|
+
baths_max: Optional[float] = None,
|
|
148
|
+
home_types: Optional[List[str]] = None
|
|
149
|
+
)
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Example usage in Claude:
|
|
153
|
+
```
|
|
154
|
+
Please search for properties in Seattle with prices between $500,000 and $800,000.
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Get Property Details
|
|
158
|
+
|
|
159
|
+
Get detailed information about a specific property:
|
|
160
|
+
|
|
161
|
+
```python
|
|
162
|
+
get_property_details(
|
|
163
|
+
property_id: str = None,
|
|
164
|
+
address: str = None
|
|
165
|
+
)
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Example usage in Claude:
|
|
169
|
+
```
|
|
170
|
+
Can you get the details for the property with ID 12345?
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Get Zestimate
|
|
174
|
+
|
|
175
|
+
Get Zillow's estimated value for a property:
|
|
176
|
+
|
|
177
|
+
```python
|
|
178
|
+
get_zestimate(
|
|
179
|
+
property_id: str = None,
|
|
180
|
+
address: str = None
|
|
181
|
+
)
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Example usage in Claude:
|
|
185
|
+
```
|
|
186
|
+
What's the Zestimate for 123 Main St, Seattle, WA?
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Get Market Trends
|
|
190
|
+
|
|
191
|
+
Get real estate market trends for a specific location:
|
|
192
|
+
|
|
193
|
+
```python
|
|
194
|
+
get_market_trends(
|
|
195
|
+
location: str,
|
|
196
|
+
metrics: List[str] = ["median_list_price", "median_sale_price", "median_days_on_market"],
|
|
197
|
+
time_period: str = "1year"
|
|
198
|
+
)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Example usage in Claude:
|
|
202
|
+
```
|
|
203
|
+
What are the current real estate trends in Boston over the past year?
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Calculate Mortgage
|
|
207
|
+
|
|
208
|
+
Calculate mortgage payments and related costs:
|
|
209
|
+
|
|
210
|
+
```python
|
|
211
|
+
calculate_mortgage(
|
|
212
|
+
home_price: int,
|
|
213
|
+
down_payment: int = None,
|
|
214
|
+
down_payment_percent: float = None,
|
|
215
|
+
loan_term: int = 30,
|
|
216
|
+
interest_rate: float = 6.5,
|
|
217
|
+
annual_property_tax: int = None,
|
|
218
|
+
annual_homeowners_insurance: int = None,
|
|
219
|
+
monthly_hoa: int = 0,
|
|
220
|
+
include_pmi: bool = True
|
|
221
|
+
)
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Example usage in Claude:
|
|
225
|
+
```
|
|
226
|
+
Calculate the monthly mortgage payment for a $600,000 house with 20% down and a 6% interest rate.
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Check Health
|
|
230
|
+
|
|
231
|
+
Verify the Zillow API connection and get server status:
|
|
232
|
+
|
|
233
|
+
```python
|
|
234
|
+
check_health()
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Example usage in Claude:
|
|
238
|
+
```
|
|
239
|
+
Please check if the Zillow API is currently responsive.
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Get Server Tools
|
|
243
|
+
|
|
244
|
+
Get a list of all available tools on this server:
|
|
245
|
+
|
|
246
|
+
```python
|
|
247
|
+
get_server_tools()
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
Example usage in Claude:
|
|
251
|
+
```
|
|
252
|
+
What tools are available in the Zillow MCP server?
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
## Available Resources
|
|
256
|
+
|
|
257
|
+
### Property Resource
|
|
258
|
+
|
|
259
|
+
Get property information as a formatted text resource:
|
|
260
|
+
|
|
261
|
+
```
|
|
262
|
+
zillow://property/{property_id}
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Market Trends Resource
|
|
266
|
+
|
|
267
|
+
Get market trends information as a formatted text resource:
|
|
268
|
+
|
|
269
|
+
```
|
|
270
|
+
zillow://market-trends/{location}
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## Error Handling
|
|
274
|
+
|
|
275
|
+
The server implements robust error handling with:
|
|
276
|
+
|
|
277
|
+
- Automatic retries with exponential backoff
|
|
278
|
+
- Detailed error logging
|
|
279
|
+
- Rate limit handling
|
|
280
|
+
- Connection timeouts
|
|
281
|
+
- Graceful degradation
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
## Technical Architecture
|
|
285
|
+
|
|
286
|
+
This MCP server is built using:
|
|
287
|
+
|
|
288
|
+
- **FastMCP**: A Pythonic framework for building Model Context Protocol servers
|
|
289
|
+
- **Requests**: For making HTTP requests to the Zillow Bridge API with connection pooling and retries
|
|
290
|
+
- **Backoff**: For implementing exponential backoff retry logic
|
|
291
|
+
- **python-dotenv**: For managing environment variables
|
|
292
|
+
|
|
293
|
+
The server provides both tools (interactive functions) and resources (static data) that Claude can access to provide real estate information to users.
|
|
294
|
+
|
|
295
|
+
## Limitations and Considerations
|
|
296
|
+
|
|
297
|
+
- Zillow's API has usage limits (typically 1,000 requests per day per dataset)
|
|
298
|
+
- Zillow's terms of service prohibit storing data locally; all requests must be dynamic
|
|
299
|
+
- You must properly attribute data to Zillow in the user interface
|
|
300
|
+
- The Bridge API format may change; refer to Zillow's documentation for updates
|
|
301
|
+
|
|
302
|
+
## Contributing
|
|
303
|
+
|
|
304
|
+
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
305
|
+
|
|
306
|
+
1. Fork the repository
|
|
307
|
+
2. Create a feature branch: `git checkout -b feature-name`
|
|
308
|
+
3. Commit your changes: `git commit -m 'Add some feature'`
|
|
309
|
+
4. Push to the branch: `git push origin feature-name`
|
|
310
|
+
5. Submit a pull request
|
|
311
|
+
|
|
312
|
+
## License
|
|
313
|
+
|
|
314
|
+
This project is licensed under the MIT License - see the LICENSE file for details.
|
|
315
|
+
|
|
316
|
+
## Acknowledgments
|
|
317
|
+
|
|
318
|
+
- [FastMCP](https://github.com/jlowin/fastmcp) for the Pythonic MCP implementation
|
|
319
|
+
- [Zillow](https://www.zillow.com) for providing real estate data APIs
|
|
320
|
+
- [Model Context Protocol](https://modelcontextprotocol.io) for the standard protocol specification
|
iflow_mcp_sap156_zillow_mcp_server-1.0.0/iflow_mcp_sap156_zillow_mcp_server.egg-info/SOURCES.txt
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
pyproject.toml
|
|
3
|
+
iflow_mcp_sap156_zillow_mcp_server.egg-info/PKG-INFO
|
|
4
|
+
iflow_mcp_sap156_zillow_mcp_server.egg-info/SOURCES.txt
|
|
5
|
+
iflow_mcp_sap156_zillow_mcp_server.egg-info/dependency_links.txt
|
|
6
|
+
iflow_mcp_sap156_zillow_mcp_server.egg-info/entry_points.txt
|
|
7
|
+
iflow_mcp_sap156_zillow_mcp_server.egg-info/requires.txt
|
|
8
|
+
iflow_mcp_sap156_zillow_mcp_server.egg-info/top_level.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
iflow_mcp_sap156_zillow_mcp_server-1.0.0/iflow_mcp_sap156_zillow_mcp_server.egg-info/top_level.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
dist
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "iflow-mcp_sap156-zillow-mcp-server"
|
|
7
|
+
version = "1.0.0"
|
|
8
|
+
description = "Zillow MCP Server for real estate data access via the Model Context Protocol"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = {text = "MIT"}
|
|
11
|
+
requires-python = ">=3.8"
|
|
12
|
+
authors = [
|
|
13
|
+
{name = "Sai Abhinav Parvathaneni", email = "neni.abhinav@gmail.com"},
|
|
14
|
+
]
|
|
15
|
+
keywords = ["zillow", "mcp", "model-context-protocol", "real-estate", "claude", "api"]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Development Status :: 4 - Beta",
|
|
18
|
+
"Intended Audience :: Developers",
|
|
19
|
+
"License :: OSI Approved :: MIT License",
|
|
20
|
+
"Programming Language :: Python :: 3",
|
|
21
|
+
"Programming Language :: Python :: 3.8",
|
|
22
|
+
"Programming Language :: Python :: 3.9",
|
|
23
|
+
"Programming Language :: Python :: 3.10",
|
|
24
|
+
"Programming Language :: Python :: 3.11",
|
|
25
|
+
"Programming Language :: Python :: 3.12",
|
|
26
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
27
|
+
]
|
|
28
|
+
dependencies = [
|
|
29
|
+
"fastmcp>=2.0.0",
|
|
30
|
+
"requests>=2.31.0",
|
|
31
|
+
"python-dotenv>=1.0.0",
|
|
32
|
+
"backoff>=2.2.1",
|
|
33
|
+
"urllib3>=2.0.0",
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
[project.optional-dependencies]
|
|
37
|
+
dev = [
|
|
38
|
+
"pytest>=7.0.0",
|
|
39
|
+
"black>=23.0.0",
|
|
40
|
+
"mypy>=1.0.0",
|
|
41
|
+
]
|
|
42
|
+
|
|
43
|
+
[project.scripts]
|
|
44
|
+
zillow-mcp-server = "zillow_mcp_server:main"
|
|
45
|
+
|
|
46
|
+
[project.urls]
|
|
47
|
+
Homepage = "https://github.com/sap156/zillow-mcp-server"
|
|
48
|
+
Repository = "https://github.com/sap156/zillow-mcp-server"
|
|
49
|
+
Issues = "https://github.com/sap156/zillow-mcp-server/issues"
|
|
50
|
+
|
|
51
|
+
[tool.setuptools.packages.find]
|
|
52
|
+
where = ["."]
|
|
53
|
+
include = ["*"]
|
|
54
|
+
|
|
55
|
+
[tool.setuptools.package-data]
|
|
56
|
+
"*" = ["README.md", "LICENSE"]
|