Live U.S. property data: 147M homes, ZIP market stats, daily listing changes, address lookup.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Get counts of how much moved in the market recently, broken down by change type, without returning individual properties. Cheap — use this before get_recent_changes to size a question, or to answer 'how active is the market right now?'
How many days of changes to summarize
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http straply https://mcp.straply.com/mcp
Get counts of how much moved in the market recently, broken down by change type, without returning individual properties. Cheap — use this before get_recent_changes to size a question, or to answer 'how active is the market right now?'
| Argument | Type | Description |
|---|---|---|
| days | integer | How many days of changes to summarize |
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"default": 1,
"maximum": 30,
"minimum": 1,
"description": "How many days of changes to summarize"
}
}
}Get aggregated market statistics for a ZIP code: total properties, active listings count, median list price, median price per square foot, median days on market, and breakdowns by listing status and property type. Use this for market-level questions like 'how's the market in 90210?'
| Argument | Type | Description |
|---|---|---|
| zip_code* | string | Five-digit ZIP code |
{
"type": "object",
"required": [
"zip_code"
],
"properties": {
"zip_code": {
"type": "string",
"description": "Five-digit ZIP code"
}
}
}Get a single property by its Straply ID (an opaque string like 'stp_x7Kd9Qm2Rb', as returned by search_properties). Returns the full property record including address, price, beds/baths, square footage, year built, lot size, property type, listing status, price history (all listing/sale/price-change events), and tax history.
| Argument | Type | Description |
|---|---|---|
| property_id* | string | Straply property ID (e.g. 'stp_x7Kd9Qm2Rb') |
{
"type": "object",
"required": [
"property_id"
],
"properties": {
"property_id": {
"type": "string",
"description": "Straply property ID (e.g. 'stp_x7Kd9Qm2Rb')"
}
}
}Get recent market changes: new listings, price cuts, price increases, homes that just sold, went pending, fell through, came back on the market, or were delisted. Filter by state, ZIP, or change type. Each event carries the Straply property ID, so follow up with get_property for full details and history. Use this for questions like 'what just sold in Austin?', 'any price cuts in 90210 this week?', or 'show me new listings in Texas'.
| Argument | Type | Description |
|---|---|---|
| days | integer | How many days of changes to include (1 = the most recent day) |
| limit | integer | Max events to return (default 50) |
| state | string | Two-letter state code (e.g. 'CA') |
| offset | integer | Pagination offset |
| zipCode | string | Five-digit ZIP code |
| changeType | string | Filter to one kind of change. Omit for all market events. Comma-separate for several (e.g. 'price_cut,just_sold'). |
| includeAll | boolean | Include non-market data churn (mostly reference-price movement on off-market homes). Off by default — it is ~76% of raw changes and is rarely what a question is about. |
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"default": 1,
"maximum": 30,
"minimum": 1,
"description": "How many days of changes to include (1 = the most recent day)"
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 500,
"minimum": 1,
"description": "Max events to return (default 50)"
},
"state": {
"type": "string",
"description": "Two-letter state code (e.g. 'CA')"
},
"offset": {
"type": "integer",
"default": 0,
"description": "Pagination offset"
},
"zipCode": {
"type": "string",
"description": "Five-digit ZIP code"
},
"changeType": {
"enum": [
"new_listing",
"price_cut",
"price_increase",
"just_sold",
"went_pending",
"fell_through",
"came_on_market",
"back_on_market",
"delisted"
],
"type": "string",
"description": "Filter to one kind of change. Omit for all market events. Comma-separate for several (e.g. 'price_cut,just_sold')."
},
"includeAll": {
"type": "boolean",
"default": false,
"description": "Include non-market data churn (mostly reference-price movement on off-market homes). Off by default — it is ~76% of raw changes and is rarely what a question is about."
}
}
}Find a property by street address and ZIP code. Use this when you know the address but not the Straply ID. Returns the full property record.
| Argument | Type | Description |
|---|---|---|
| city | string | City name (optional, improves matching) |
| state | string | Two-letter state code (optional) |
| street* | string | Street address (e.g. '1005 Benedict Canyon Dr') |
| zipCode* | string | Five-digit ZIP code |
{
"type": "object",
"required": [
"street",
"zipCode"
],
"properties": {
"city": {
"type": "string",
"description": "City name (optional, improves matching)"
},
"state": {
"type": "string",
"description": "Two-letter state code (optional)"
},
"street": {
"type": "string",
"description": "Street address (e.g. '1005 Benedict Canyon Dr')"
},
"zipCode": {
"type": "string",
"description": "Five-digit ZIP code"
}
}
}Search for real estate properties by ZIP code, city, state, status, property type, price range, bedrooms, bathrooms, and more. Returns up to 25 properties per call with address, price, beds, baths, square footage, year built, listing status, and price history.
| Argument | Type | Description |
|---|---|---|
| city | string | City name |
| sort | string | Sort field |
| limit | integer | Results per page (1-100, default 25) |
| order | string | Sort direction |
| state | string | Two-letter state code (e.g. 'CA') |
| offset | integer | Pagination offset |
| status | string | Listing status filter |
| maxBeds | integer | Maximum bedrooms |
| minBeds | integer | Minimum bedrooms |
| zipCode | string | Five-digit ZIP code (e.g. '90210') |
| maxPrice |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 13, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.
| integer |
| Maximum price filter |
| minPrice | integer | Minimum price filter |
| propertyType | string | Property type filter |
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "City name"
},
"sort": {
"enum": [
"listPrice",
"livingArea",
"yearBuilt",
"daysOnMarket",
"lastUpdated"
],
"type": "string",
"description": "Sort field"
},
"limit": {
"type": "integer",
"description": "Results per page (1-100, default 25)"
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction"
},
"state": {
"type": "string",
"description": "Two-letter state code (e.g. 'CA')"
},
"offset": {
"type": "integer",
"description": "Pagination offset"
},
"status": {
"enum": [
"active",
"pending",
"contingent",
"sold",
"off_market",
"coming_soon"
],
"type": "string",
"description": "Listing status filter"
},
"maxBeds": {
"type": "integer",
"description": "Maximum bedrooms"
},
"minBeds": {
"type": "integer",
"description": "Minimum bedrooms"
},
"zipCode": {
"type": "string",
"description": "Five-digit ZIP code (e.g. '90210')"
},
"maxPrice": {
"type": "integer",
"description": "Maximum price filter"
},
"minPrice": {
"type": "integer",
"description": "Minimum price filter"
},
"propertyType": {
"enum": [
"single_family",
"condo",
"townhouse",
"multi_family",
"manufactured",
"land",
"apartment",
"coop"
],
"type": "string",
"description": "Property type filter"
}
}
}