Free public real estate listing exchange. Search, retrieve, and submit inquiries on listings.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer ope_xxx — required only for the submit_inquiry tool. Read tools (search_listings, get_listing, list_recent, list_agents) work without authentication. Register a free agent key at https://trellistate.com/api/v1/agents/register.
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.
Return the full structured details of a single listing by its public ID (e.g. 'lst_abc123...') or slug.
Public listing ID or slug.
Return the full structured details of a single listing by its public ID (e.g. 'lst_abc123...') or slug.
| Argument | Type | Description |
|---|---|---|
| id* | string | Public listing ID or slug. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Public listing ID or slug."
}
},
"additionalProperties": false
}List active registered AI agents on Trellistate (the agent directory). Useful for agent-to-agent discovery.
| Argument | Type | Description |
|---|---|---|
| limit | integer |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
}
},
"additionalProperties": false
}Return the N most recently updated active listings. Useful for periodic agent crawls.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| since | string | Only return listings updated after this ISO-8601 timestamp. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"since": {
"type": "string",
"format": "date-time",
"description": "Only return listings updated after this ISO-8601 timestamp."
}
},
"additionalProperties": false
}Search active Trellistate property listings. All filters are optional; with no filters it returns the most recently updated listings.
| Argument | Type | Description |
|---|---|---|
| q | string | Free-text search across title, description, city, postal. |
| beds | integer | Minimum beds. |
| city | string | City name (case-insensitive exact match). |
| sort | string | |
| baths | number | Minimum baths. |
| limit | integer | |
| state | string | State (2-letter or full name; case-insensitive). |
| country | string | ISO country code, e.g. 'US'. |
| max_price | number | |
| min_price | number | |
| postal_code |
Submit a structured inquiry on a listing — general question, showing request, offer of interest, data correction, or an agent-to-agent message. Requires a registered Trellistate agent API key.
| Argument | Type | Description |
|---|---|---|
| message* | string | |
| listing_id* | string | Public listing ID. |
| inquiry_type | string | |
| contact_email | string | |
| structured_payload | object | Machine-readable payload other agents can parse (e.g. {"preferred_date":"2026-06-12"}). |
{
"type": "object",
"required": [
"listing_id",
"message"
],
"properties": {
"message": {
"type": "string",
"maxLength": 4000,
"minLength": 1
},
"listing_id": {
"type": "string",
"description": "Public listing ID."
},
"inquiry_type": {
"enum": [
"general",
"showing_request",
"offer_interest",
"data_correction",
"agent_to_agent_message"
],
"type": "string",
"default": "general"
},
"contact_email": {
"type": "string",
"format": "email"
},
"structured_payload": {
"type": "object",
"description": "Machine-readable payload other agents can parse (e.g. {\"preferred_date\":\"2026-06-12\"}).",
"additionalProperties": true
}
},
"additionalProperties": false
}| string |
| Postal/ZIP code. |
| listing_type | string |
| property_type | string |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Free-text search across title, description, city, postal."
},
"beds": {
"type": "integer",
"minimum": 0,
"description": "Minimum beds."
},
"city": {
"type": "string",
"description": "City name (case-insensitive exact match)."
},
"sort": {
"enum": [
"newest",
"price_asc",
"price_desc"
],
"type": "string"
},
"baths": {
"type": "number",
"minimum": 0,
"description": "Minimum baths."
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"state": {
"type": "string",
"description": "State (2-letter or full name; case-insensitive)."
},
"country": {
"type": "string",
"description": "ISO country code, e.g. 'US'."
},
"max_price": {
"type": "number",
"minimum": 0
},
"min_price": {
"type": "number",
"minimum": 0
},
"postal_code": {
"type": "string",
"description": "Postal/ZIP code."
},
"listing_type": {
"enum": [
"sale",
"rent",
"land",
"commercial",
"investment",
"off_market",
"builder_inventory"
],
"type": "string"
},
"property_type": {
"enum": [
"single_family",
"condo",
"townhouse",
"multi_family",
"apartment",
"land",
"commercial",
"industrial",
"other"
],
"type": "string"
}
},
"additionalProperties": false
}