US real estate market data for AI agents: prices, yields, forecasts and scores for 894 markets.
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.
Compare two US markets side by side, with a winner marked on price, yield and appreciation. Requires API key (Investor plan) — https://www.lotlytics.us/pricing ; key at https://www.lotlytics.us/settings/api-keys Example: city_a='Austin', state_a='TX', city_b='Nashville', state_b='TN'
First city or metro, e.g. 'Austin'.
Second city or metro, e.g. 'Nashville'.
State of the FIRST city, e.g. 'TX'.
State of the SECOND city, e.g. 'TN'.
Compare two US markets side by side, with a winner marked on price, yield and appreciation. Requires API key (Investor plan) — https://www.lotlytics.us/pricing ; key at https://www.lotlytics.us/settings/api-keys Example: city_a='Austin', state_a='TX', city_b='Nashville', state_b='TN'
| Argument | Type | Description |
|---|---|---|
| city_a* | string | First city or metro, e.g. 'Austin'. |
| city_b* | string | Second city or metro, e.g. 'Nashville'. |
| state_a* | string | State of the FIRST city, e.g. 'TX'. |
| state_b* | string | State of the SECOND city, e.g. 'TN'. |
{
"type": "object",
"title": "compare_marketsArguments",
"required": [
"city_a",
"state_a",
"city_b",
"state_b"
],
"properties": {
"city_a": {
"type": "string",
"title": "City A",
"description": "First city or metro, e.g. 'Austin'."
},
"city_b": {
"type": "string",
"title": "City B",
"description": "Second city or metro, e.g. 'Nashville'."
},
"state_a": {
"type": "string",
"title": "State A",
"description": "State of the FIRST city, e.g. 'TX'."
},
"state_b": {
"type": "string",
"title": "State B",
"description": "State of the SECOND city, e.g. 'TN'."
}
}
}Investment health score (1-10) for a US market, with a label (Strong Buy / Favorable / Neutral / Caution / Avoid) and the signals behind it. Example: city='Tampa', state='FL'
| Argument | Type | Description |
|---|---|---|
| city* | string | City or metro, e.g. 'Tampa'. Case-insensitive. |
| state* | string | US state, 2-letter or full, e.g. 'FL'. Required — city names repeat. |
{
"type": "object",
"title": "get_market_healthArguments",
"required": [
"city",
"state"
],
"properties": {
"city": {
"type": "string",
"title": "City",
"description": "City or metro, e.g. 'Tampa'. Case-insensitive."
},
"state": {
"type": "string",
"title": "State",
"description": "US state, 2-letter or full, e.g. 'FL'. Required — city names repeat."
}
}
}Full market report for one US city or metro. Example: city='Austin', state='TX' returns Austin's median price, appreciation, rental yield, momentum and migration.
| Argument | Type | Description |
|---|---|---|
| city* | string | City or metro, e.g. 'Austin'. Case-insensitive. |
| state* | string | US state, 2-letter or full, e.g. 'TX'. Required — city names repeat. |
{
"type": "object",
"title": "get_market_summaryArguments",
"required": [
"city",
"state"
],
"properties": {
"city": {
"type": "string",
"title": "City",
"description": "City or metro, e.g. 'Austin'. Case-insensitive."
},
"state": {
"type": "string",
"title": "State",
"description": "US state, 2-letter or full, e.g. 'TX'. Required — city names repeat."
}
}
}List the US markets this server can report on, optionally filtered to one state. Example: state='TX'
| Argument | Type | Description |
|---|---|---|
| state | string | Optional state filter, e.g. 'TX'. Omit for every available market. |
{
"type": "object",
"title": "list_marketsArguments",
"properties": {
"state": {
"type": "string",
"title": "State",
"default": "",
"description": "Optional state filter, e.g. 'TX'. Omit for every available market."
}
}
}Rank US markets by investment criteria; no filters returns the top-ranked markets nationally. Requires API key (Investor plan) — https://www.lotlytics.us/pricing ; key at https://www.lotlytics.us/settings/api-keys Example: state='TX', max_price=300000, min_rental_yield=6
| Argument | Type | Description |
|---|---|---|
| limit | integer | Markets to return, 1-25 (clamped). Default 10. |
| state | string | Optional state filter, e.g. 'TX'. Omit = national, which samples only the first 20 markets. |
| max_price | number | Max median price in dollars, e.g. 300000. 0 = no cap. |
| min_appreciation | number | Min YoY appreciation %, e.g. 3. Negatives allowed; -999 = no floor. |
| min_rental_yield | number | Min gross rental yield %, e.g. 6. 0 = no floor. |
| max_price_to_income | number | Max price-to-income ratio, e.g. 4.5. 999 = no cap. |
{
"type": "object",
"title": "search_marketsArguments",
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 10,
"description": "Markets to return, 1-25 (clamped). Default 10."
},
"state": {
"type": "string",
"title": "State",
"default": "",
"description": "Optional state filter, e.g. 'TX'. Omit = national, which samples only the first 20 markets."
},
"max_price": {
"type": "number",
"title": "Max Price",
"default": 0,
"description": "Max median price in dollars, e.g. 300000. 0 = no cap."
},
"min_appreciation": {
"type": "number",
"title": "Min Appreciation",
"default": -999,
"description": "Min YoY appreciation %, e.g. 3. Negatives allowed; -999 = no floor."
},
"min_rental_yield": {
"type": "number",
"title": "Min Rental Yield",
"default": 0,
"description": "Min gross rental yield %, e.g. 6. 0 = no floor."
},
"max_price_to_income": {
"type": "number",
"title": "Max Price To Income",
"default": 999,
"description": "Max price-to-income ratio, e.g. 4.5. 999 = no cap."
}
}
}