Unlisted Property Search
Search and explore residential properties that aren't for sale (yet)
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"unlisted": {
"url": "https://api.unlistedhomes.com/mcp"
}
}
}Puntos de conexión remotos
https://api.unlistedhomes.com/mcpstreamable-httphttps://api.unlistedhomes.com/mcpsseQué puede hacer
Inventario de herramientas
Herramientas (3)
🟢property_details_tool(id)
Fetch full details for a single Unlisted property by its ID. When telling the user what you're doing, say "area" not "boundary", and "home" or "property profile" not "listing". Don't mention internal IDs or parameter names.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Property ID"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "Property identifier"
},
"url": {
"type": "string",
"description": "URL to view this property on Unlisted",
"format": "uri"
},
"thumbnail_url": {
"type": "string",
"description": "Thumbnail image URL",
"format": "uri"
},
"photo_uuids": {
"type": "array",
"description": "Photo UUIDs — use with CloudFront to build sized URLs (-thumbnail, -medium, -large)",
"items": {
"type": "string"
}
},
"cover_photo_uuid": {
"anyOf": [
{
"type": "null"
},
{
"type": "string"
}
],
"description": "Curated cover photo UUID — preferred over photo_uuids[0] for display"
},
"agent_cover_photo_uuid": {
"anyOf": [
{
"type": "null"
},
{
"type": "string"
}
],
"description": "Agent-selected cover photo UUID — preferred over cover_photo_uuid when present"
},
"address_line_1": {
"type": "string",
"description": "Street address"
},
"city": {
"type": "string",
"description": "City name"
},
"state": {
"type": "string",
"description": "State abbreviation",
"min_length": 2,
"max_length": 2
},
"zip": {
"type": "string",
"description": "ZIP code"
},
"longitude": {
"type": "number",
"description": "Location longitude",
"minimum": -180,
"maximum": 180
},
"latitude": {
"type": "number",
"description": "Location latitude",
"minimum": -90,
"maximum": 90
},
"google_street_pose": {
"anyOf": [
{
"type": "null"
},
{
"type": "object",
"description": "Cached Street View pose for optimal framing",
"properties": {
"street_lat": {
"type": "number"
},
"street_lng": {
"type": "number"
},
"heading": {
"type": "number"
},
"pitch": {
"type": "number"
},
"fov": {
"type": "number"
},
"zoom": {
"type": "number"
},
"pano": {
"type": "string"
}
}
}
]
},
"stories": {
"type": "number",
"description": "Number of stories/floors"
},
"bathrooms": {
"type": "number",
"description": "Number of bathrooms"
},
"bedrooms": {
"type": "number",
"description": "Number of bedrooms"
},
"build_year": {
"type": "number",
"description": "Build year"
},
"building_area": {
"type": "number",
"description": "Building area (ft²)"
},
"last_sale_date": {
"type": "string",
"description": "Last sale date",
"format": "date"
},
"last_sale_amount": {
"type": "number",
"description": "Last sale price"
},
"market_value": {
"type": "number",
"description": "Market value"
},
"estimated_value_one": {
"type": "number",
"description": "Estimated value"
},
"owner_expected_value": {
"type": "number",
"description": "Owner estimated value"
},
"owner_given_bathrooms": {
"type": "number",
"description": "Owner given number of bathrooms"
},
"owner_given_bedrooms": {
"type": "number",
"description": "Owner given number of bedrooms"
},
"owner_given_area": {
"type": "number",
"description": "Owner given building area (ft²)"
},
"owner_headline": {
"type": "string",
"description": "Owner headline"
},
"owner_blurb": {
"type": "string",
"description": "Owner description"
},
"unlisted_sorting_score": {
"type": "number",
"description": "Sorting score"
},
"unlisted_selling_soon_score": {
"type": "number",
"description": "Selling-soon score"
},
"views_count": {
"type": "number",
"description": "Number of views"
},
"likes_count": {
"type": "number",
"description": "Number of likes"
},
"waitlisters_count": {
"type": "number",
"description": "Number of waitlisters"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢property_search_tool(beds, baths, stories, perks, price_min, ...)
Search for properties on Unlisted that meet certain criteria. boundary_id should always be used unless doing a nation-wide search, and is obtained by using the autocomplete_tool. Returns up to 100 matches; use max_results only when the user asks for a specific count. When telling the user what you're doing, say "area" not "boundary", and "home" or "property profile" not "listing". Don't mention internal IDs or parameter names.
Esquema de entrada
{
"type": "object",
"properties": {
"beds": {
"description": "Minimum number of bedrooms",
"anyOf": [
{
"type": "null"
},
{
"type": "number",
"minimum": 1
}
]
},
"baths": {
"description": "Minimum number of bathrooms",
"anyOf": [
{
"type": "null"
},
{
"type": "number",
"minimum": 1
}
]
},
"stories": {
"description": "Number of stories/floors",
"anyOf": [
{
"type": "null"
},
{
"type": "number",
"minimum": 1
}
]
},
"perks": {
"description": "Features and perks",
"anyOf": [
{
"type": "null"
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"accessible",
"arbor_pergola",
"arena",
"attic",
"balcony",
"barn",
"bath_house",
"boat_access",
"boat_house",
"boat_lift",
"bonus_room",
"breakfast_nook",
"breezeway",
"cabin",
"canopy",
"cellar",
"central_vacuum",
"community_rec_room",
"courtyard",
"deck",
"elevator",
"escalator",
"exercise_room",
"family_room",
"finished_basement",
"fire_sprinklers",
"fireplace",
"first_floor_bedroom",
"first_floor_laundry",
"game_room",
"garage",
"gazebo",
"golf_course_green",
"granary",
"great_room",
"green_house",
"guest_house",
"hobby_room",
"intercom",
"kennel",
"laundry_room",
"lean_to",
"loading_platform",
"media_room",
"milk_house",
"mobile_home_hookup",
"mud_room",
"office",
"outdoor_kitchen",
"overhead_door",
"patio",
"pergola",
"pole_structure",
"pond",
"pool",
"pool_house",
"porch",
"poultry_house",
"practice_green",
"quonset",
"rooftop_garden",
"rv_parking",
"safe_room",
"sauna",
"security_alarm",
"shed",
"silo",
"sitting_room",
"sound_system",
"sports_court",
"sprinklers",
"stable",
"storage_building",
"storm_shelter",
"storm_shutter",
"study",
"study_room",
"sunroom",
"tax_ex_disabled",
"tax_ex_senior",
"tax_ex_veteran",
"tax_ex_widow",
"tennis_court",
"universal_access",
"utility_building",
"utility_room",
"water_feature",
"wet_bar",
"wine_cellar"
]
}
}
]
},
"price_min": {
"description": "Minimum price ($)",
"anyOf": [
{
"type": "null"
},
{
"type": "number",
"minimum": 0
}
]
},
"price_max": {
"description": "Maximum price ($)",
"anyOf": [
{
"type": "null"
},
{
"type": "number",
"minimum": 0
}
]
},
"build_min": {
"description": "Minimum build year",
"anyOf": [
{
"type": "null"
},
{
"type": "number",
"minimum": 0
}
]
},
"build_max": {
"description": "Maximum build year",
"anyOf": [
{
"type": "null"
},
{
"type": "number",
"minimum": 0
}
]
},
"area_min": {
"description": "Minimum building area (ft²)",
"anyOf": [
{
"type": "null"
},
{
"type": "number",
"minimum": 0
}
]
},
"area_max": {
"description": "Maximum building area (ft²)",
"anyOf": [
{
"type": "null"
},
{
"type": "number",
"minimum": 0
}
]
},
"lot_area_min": {
"description": "Minimum lot area (acres)",
"anyOf": [
{
"type": "null"
},
{
"type": "number",
"minimum": 0
}
]
},
"lot_area_max": {
"description": "Maximum lot area (acres)",
"anyOf": [
{
"type": "null"
},
{
"type": "number",
"minimum": 0
}
]
},
"min_last_sale_date": {
"description": "Minimum last sale date",
"anyOf": [
{
"type": "null"
},
{
"type": "string",
"format": "date"
}
]
},
"max_last_sale_date": {
"description": "Maximum last sale date",
"anyOf": [
{
"type": "null"
},
{
"type": "string",
"format": "date"
}
]
},
"include_null_last_sale": {
"description": "Include properties with no recorded sale date?",
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
}
]
},
"sort_type": {
"description": "Sort order for results. Use default unless the user specifies otherwise. default: ranked by Unlisted's overall relevance/quality score, heavily weighted by selling_soon_score (best match first); owner_updated_at: properties most recently updated by their owner first (active/engaged sellers); selling_soon_score: properties with the highest likelihood of going to market soon, first; likes: most-liked properties first; last_sale_date: most recently sold properties first (properties with no sale date are excluded).",
"anyOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"default",
"owner_updated_at",
"selling_soon_score",
"likes",
"last_sale_date"
]
}
]
},
"boundary_id": {
"description": "Filter results to properties within a named geographic area (city, county, neighborhood, school district, etc.). Obtained from the autocomplete_tool.",
"anyOf": [
{
"type": "null"
},
{
"type": "number"
}
]
},
"geometry": {
"description": "GeoJSON Polygon to spatially filter properties. This is handy for when a boundary id is not found, or for other special cases where the user describes an area that is not well-known, or does not have a proper name.Coordinates are [longitude, latitude] pairs; first and last point must match to close the ring. Can be combined with boundary_id — results must satisfy both constraints. Example: {\"type\":\"Polygon\",\"coordinates\":[[[-87.635560,41.885830],[-87.628755,41.885842],[-87.628685,41.879399],[-87.635509,41.879389],[-87.635560,41.885830]]]}",
"anyOf": [
{
"type": "null"
},
{
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"coordinates": {
"type": "array",
"description": "Array of linear rings; first ring is the outer boundary",
"items": {
"type": "array",
"minItems": 4,
"items": {
"type": "array",
"description": "[longitude, latitude]",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
}
}
}
}
}
]
},
"style": {
"description": "Architectural style(s) to filter by",
"anyOf": [
{
"type": "null"
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"art_deco",
"bungalow",
"cape_cod",
"colonial",
"contemporary",
"craftsman",
"creole",
"dutch_colonial",
"federal",
"french_provincial",
"georgian",
"gothic_revival",
"greek_revival",
"international",
"italianate",
"monterey",
"national",
"neoclassical",
"mcm_prairie",
"pueblo",
"queen_anne",
"ranch",
"regency",
"saltbox",
"second_empire",
"shed",
"shingle",
"shotgun",
"spanish_eclectic",
"split_level",
"stick",
"tudor",
"victorian",
"other"
]
}
}
]
},
"max_results": {
"description": "Cap the total number of results shown to the user. Only use when the user explicitly asks for a specific count, e.g. 'show me the top 5' or 'give me 20 homes'. Must be 100 or fewer. Leave blank for normal searches.",
"anyOf": [
{
"type": "null"
},
{
"type": "integer",
"minimum": 1,
"maximum": 100
}
]
},
"property_use_standardized": {
"description": "Filter by property use type. Each item can be a category name (selects all codes in the group) or an individual ATTOM numeric code to cherry-pick. If omitted, all standard residential types are included. Categories and their codes — single_family [181,363,364,380,383,385,440,467,468]: SFR, cluster homes, rural residences, homesteads, ADU; condos_and_townhouses [366,376,377,379,382,386,390,416,421,452]: condos, PUDs, patio homes, row houses, townhouses, garden homes, zero lot line; coops [367,461]: cooperatives; manufactured [371,373]: mobile/manufactured/modular homes; multi_24 [369,372,378,388,469,470]: 2-4 unit multifamily (duplexes, triplexes, quads, generic multifamily); multi_5 [360,374,381]: apartments and large multifamily/income properties; misc [375,384]: seasonal/cabin/vacation + miscellaneous residential; vacant_land [398,401,453,462]: residential vacant land and uninhabitable/destroyed structures; other [171,254,306,368,370,387,402,447]: mixed-use, historical, dormitories, fraternity/sorority houses, timeshares, under construction, tiny houses, unknown.",
"anyOf": [
{
"type": "null"
},
{
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"enum": [
"single_family",
"condos_and_townhouses",
"coops",
"manufactured",
"misc",
"multi_24",
"multi_5",
"other",
"vacant_land"
]
},
{
"type": "integer"
}
]
}
}
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"type": "object",
"properties": {
"search_url": {
"type": "string",
"description": "URL to view these results on Unlisted Discover",
"format": "uri"
},
"total_count": {
"type": "number",
"description": "Total number of properties matching the search"
},
"max_results": {
"anyOf": [
{
"type": "null"
},
{
"type": "number"
}
],
"description": "Cap applied to results, if the user asked for a specific count"
},
"properties": {
"type": "array",
"items": {
"properties": {
"id": {
"type": "number",
"description": "Property identifier"
},
"url": {
"type": "string",
"description": "URL to view this property on Unlisted",
"format": "uri"
},
"thumbnail_url": {
"type": "string",
"description": "Thumbnail image URL",
"format": "uri"
},
"photo_uuids": {
"type": "array",
"description": "Photo UUIDs — use with CloudFront to build sized URLs (-thumbnail, -medium, -large)",
"items": {
"type": "string"
}
},
"cover_photo_uuid": {
"anyOf": [
{
"type": "null"
},
{
"type": "string"
}
],
"description": "Curated cover photo UUID — preferred over photo_uuids[0] for display"
},
"agent_cover_photo_uuid": {
"anyOf": [
{
"type": "null"
},
{
"type": "string"
}
],
"description": "Agent-selected cover photo UUID — preferred over cover_photo_uuid when present"
},
"address_line_1": {
"type": "string",
"description": "Street address"
},
"city": {
"type": "string",
"description": "City name"
},
"state": {
"type": "string",
"description": "State abbreviation",
"min_length": 2,
"max_length": 2
},
"zip": {
"type": "string",
"description": "ZIP code"
},
"longitude": {
"type": "number",
"description": "Location longitude",
"minimum": -180,
"maximum": 180
},
"latitude": {
"type": "number",
"description": "Location latitude",
"minimum": -90,
"maximum": 90
},
"google_street_pose": {
"anyOf": [
{
"type": "null"
},
{
"type": "object",
"description": "Cached Street View pose for optimal framing",
"properties": {
"street_lat": {
"type": "number"
},
"street_lng": {
"type": "number"
},
"heading": {
"type": "number"
},
"pitch": {
"type": "number"
},
"fov": {
"type": "number"
},
"zoom": {
"type": "number"
},
"pano": {
"type": "string"
}
}
}
]
},
"stories": {
"type": "number",
"description": "Number of stories/floors"
},
"bathrooms": {
"type": "number",
"description": "Number of bathrooms"
},
"bedrooms": {
"type": "number",
"description": "Number of bedrooms"
},
"build_year": {
"type": "number",
"description": "Build year"
},
"building_area": {
"type": "number",
"description": "Building area (ft²)"
},
"last_sale_date": {
"type": "string",
"description": "Last sale date",
"format": "date"
},
"last_sale_amount": {
"type": "number",
"description": "Last sale price"
},
"market_value": {
"type": "number",
"description": "Market value"
},
"estimated_value_one": {
"type": "number",
"description": "Estimated value"
},
"owner_expected_value": {
"type": "number",
"description": "Owner estimated value"
},
"owner_given_bathrooms": {
"type": "number",
"description": "Owner given number of bathrooms"
},
"owner_given_bedrooms": {
"type": "number",
"description": "Owner given number of bedrooms"
},
"owner_given_area": {
"type": "number",
"description": "Owner given building area (ft²)"
},
"owner_headline": {
"type": "string",
"description": "Owner headline"
},
"owner_blurb": {
"type": "string",
"description": "Owner description"
},
"unlisted_sorting_score": {
"type": "number",
"description": "Sorting score"
},
"unlisted_selling_soon_score": {
"type": "number",
"description": "Selling-soon score"
},
"views_count": {
"type": "number",
"description": "Number of views"
},
"likes_count": {
"type": "number",
"description": "Number of likes"
},
"waitlisters_count": {
"type": "number",
"description": "Number of waitlisters"
}
},
"required": [
"id"
]
}
},
"alternative_search": {
"anyOf": [
{
"type": "null"
},
{
"type": "object",
"description": "Present when fewer than 3 properties matched the original criteria. Contains relaxed results with a description of what was loosened. These results should usually be shown to the user when it occurs.",
"properties": {
"description": {
"type": "string",
"description": "Human-readable description of which filter(s) were relaxed (e.g. 'Removed price range filter')"
},
"total_count": {
"type": "number",
"description": "Total number of properties matching the relaxed criteria"
},
"properties": {
"type": "array",
"items": {
"properties": {
"id": {
"type": "number",
"description": "Property identifier"
},
"url": {
"type": "string",
"description": "URL to view this property on Unlisted",
"format": "uri"
},
"thumbnail_url": {
"type": "string",
"description": "Thumbnail image URL",
"format": "uri"
},
"photo_uuids": {
"type": "array",
"description": "Photo UUIDs — use with CloudFront to build sized URLs (-thumbnail, -medium, -large)",
"items": {
"type": "string"
}
},
"cover_photo_uuid": {
"anyOf": [
{
"type": "null"
},
{
"type": "string"
}
],
"description": "Curated cover photo UUID — preferred over photo_uuids[0] for display"
},
"agent_cover_photo_uuid": {
"anyOf": [
{
"type": "null"
},
{
"type": "string"
}
],
"description": "Agent-selected cover photo UUID — preferred over cover_photo_uuid when present"
},
"address_line_1": {
"type": "string",
"description": "Street address"
},
"city": {
"type": "string",
"description": "City name"
},
"state": {
"type": "string",
"description": "State abbreviation",
"min_length": 2,
"max_length": 2
},
"zip": {
"type": "string",
"description": "ZIP code"
},
"longitude": {
"type": "number",
"description": "Location longitude",
"minimum": -180,
"maximum": 180
},
"latitude": {
"type": "number",
"description": "Location latitude",
"minimum": -90,
"maximum": 90
},
"google_street_pose": {
"anyOf": [
{
"type": "null"
},
{
"type": "object",
"description": "Cached Street View pose for optimal framing",
"properties": {
"street_lat": {
"type": "number"
},
"street_lng": {
"type": "number"
},
"heading": {
"type": "number"
},
"pitch": {
"type": "number"
},
"fov": {
"type": "number"
},
"zoom": {
"type": "number"
},
"pano": {
"type": "string"
}
}
}
]
},
"stories": {
"type": "number",
"description": "Number of stories/floors"
},
"bathrooms": {
"type": "number",
"description": "Number of bathrooms"
},
"bedrooms": {
"type": "number",
"description": "Number of bedrooms"
},
"build_year": {
"type": "number",
"description": "Build year"
},
"building_area": {
"type": "number",
"description": "Building area (ft²)"
},
"last_sale_date": {
"type": "string",
"description": "Last sale date",
"format": "date"
},
"last_sale_amount": {
"type": "number",
"description": "Last sale price"
},
"market_value": {
"type": "number",
"description": "Market value"
},
"estimated_value_one": {
"type": "number",
"description": "Estimated value"
},
"owner_expected_value": {
"type": "number",
"description": "Owner estimated value"
},
"owner_given_bathrooms": {
"type": "number",
"description": "Owner given number of bathrooms"
},
"owner_given_bedrooms": {
"type": "number",
"description": "Owner given number of bedrooms"
},
"owner_given_area": {
"type": "number",
"description": "Owner given building area (ft²)"
},
"owner_headline": {
"type": "string",
"description": "Owner headline"
},
"owner_blurb": {
"type": "string",
"description": "Owner description"
},
"unlisted_sorting_score": {
"type": "number",
"description": "Sorting score"
},
"unlisted_selling_soon_score": {
"type": "number",
"description": "Selling-soon score"
},
"views_count": {
"type": "number",
"description": "Number of views"
},
"likes_count": {
"type": "number",
"description": "Number of likes"
},
"waitlisters_count": {
"type": "number",
"description": "Number of waitlisters"
}
},
"required": [
"id"
]
},
"description": "Properties from the relaxed search"
}
}
}
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢autocomplete_tool(query)
Autocomplete a search term to find geographic areas (cities, counties, neighborhoods, school districts, states, etc.) and properties by address. Use this to look up boundary IDs for the boundary_id parameter in PropertySearch, OR Use this to look up property IDs for the id parameter in property details tool. If a search does not yield the expected results attempt to simplify and/or shorten the query, removing potentially problematic or unneeded words/symbols. When telling the user what you're doing, say "area" not "boundary", and "home" or "property profile" not "listing". Don't mention internal IDs or parameter names.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Place name, city, neighborhood, county, state, or street address to search for"
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"type": "object",
"properties": {
"boundaries": {
"type": "array",
"description": "Matching geographic areas (cities, neighborhoods, counties, school districts, etc.). Use the id as boundary_id in PropertySearch.",
"items": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "Boundary ID — pass this as boundary_id to PropertySearch"
},
"name": {
"type": "string",
"description": "Boundary display name (e.g. 'Lincoln Park, IL')"
},
"type": {
"type": "string",
"description": "Boundary type: city, county, neighborhood, school_district, state, town, township, etc."
},
"state": {
"type": "string",
"description": "State abbreviation"
}
},
"required": [
"id",
"name",
"type"
]
}
},
"properties": {
"type": "array",
"description": "Matching properties by address. Preferred primary method for finding exact addresses.",
"items": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "Property ID"
},
"address_line_1": {
"type": "string",
"description": "Street address"
},
"city": {
"type": "string",
"description": "City"
},
"state": {
"type": "string",
"description": "State abbreviation"
},
"zip": {
"type": "string",
"description": "ZIP code"
}
},
"required": [
"id"
]
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia