Evlek — Northern Cyprus Property MCP Server
What this MCP does
Searches and compares live Northern Cyprus property listings, asking-price aggregates, location profiles, listing details, and currency conversions.
Tools
Input schema
{'type': 'object', 'required': ['cities'], 'properties': {'type': {'enum': ['sale', 'rent'], 'type': 'string', 'description': 'Sale or rent (default: sale)'}, 'cities': {'type': 'array', 'items': {'type': 'string', 'description': 'Slug, Turkish name, or exonym (Kyrenia/Nicosia/Famagusta/Morphou).'}, 'description': 'Cities to compare (2-4)'}}}
Output schema
{'type': 'object', 'required': ['type', 'dataAsOf', 'cities'], 'properties': {'type': {'type': 'string'}, 'cities': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'city', 'activeCount', 'hasData'], 'properties': {'city': {'type': 'string'}, 'slug': {'type': 'string'}, 'hasData': {'type': 'boolean'}, 'p25Price': {'type': ['number', 'null']}, 'p75Price': {'type': ['number', 'null']}, 'lowSample': {'type': 'boolean'}, 'provenance': {'type': 'object', 'required': ['publishers', 'agencies', 'maxAgencyShare', 'singleSource'], 'properties': {'agencies': {'type': ['number', 'null']}, 'publishers': {'type': ['number', 'null']}, 'singleSource': {'type': 'boolean'}, 'maxAgencyShare': {'type': ['number', 'null']}}}, 'activeCount': {'type': 'number'}, 'medianPrice': {'type': ['number', 'null']}, 'topDistrict': {'type': ['string', 'null']}, 'withheldReason': {'type': ['string', 'null']}, 'medianPricePerSqm': {'type': ['number', 'null']}, 'topDistrictMedianPrice': {'type': ['number', 'null']}}}}, 'dataAsOf': {'type': ['string', 'null']}, 'dataSource': {'type': 'string'}, 'isEstimate': {'type': 'boolean'}, 'metricType': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['listingIds'], 'properties': {'listingIds': {'type': 'array', 'items': {'type': 'string', 'description': 'Evlek listing UUID or listing number (e.g. "EVL-123456", "123456")'}, 'description': 'Evlek listing UUIDs or listing numbers (2-4)'}}}
Output schema
{'type': 'object', 'required': ['count', 'listings'], 'properties': {'count': {'type': 'number'}, 'missing': {'type': 'number'}, 'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'price', 'priceGbp', 'type', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'area': {'type': ['number', 'null']}, 'city': {'type': 'string'}, 'type': {'type': 'string'}, 'price': {'type': 'number'}, 'title': {'type': 'string'}, 'number': {'type': 'string'}, 'bedrooms': {'type': ['number', 'null']}, 'currency': {'type': 'string'}, 'district': {'type': 'string'}, 'priceGbp': {'type': 'number'}, 'bathrooms': {'type': ['number', 'null']}, 'pricePerSqm': {'type': ['number', 'null']}, 'monthlyRentGbp': {'type': ['number', 'null']}}}}, 'dataSource': {'type': 'string'}, 'isEstimate': {'type': 'boolean'}, 'metricType': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['price'], 'properties': {'price': {'type': 'number', 'maximum': 100000000, 'minimum': 1000, 'description': 'Entered property asking-price amount; not a deposit or installment.'}, 'currency': {'enum': ['GBP', 'EUR', 'USD', 'TRY'], 'type': 'string', 'description': 'Currency of the price (default GBP).'}}}
Output schema
{'type': 'object', 'required': ['inputCurrency', 'priceGBP', 'amounts'], 'properties': {'fx': {'type': 'object', 'required': ['base', 'source', 'asOf', 'rates'], 'properties': {'asOf': {'type': 'string'}, 'base': {'enum': ['GBP'], 'type': 'string'}, 'rates': {'type': 'object', 'required': ['GBP', 'EUR', 'USD', 'TRY'], 'properties': {'EUR': {'type': 'number'}, 'GBP': {'type': 'number'}, 'TRY': {'type': 'number'}, 'USD': {'type': 'number'}}}, 'source': {'enum': ['stored_current_rates'], 'type': 'string'}}}, 'amounts': {'type': 'object', 'required': ['GBP', 'EUR', 'USD', 'TRY'], 'properties': {'EUR': {'type': 'number'}, 'GBP': {'type': 'number'}, 'TRY': {'type': 'number'}, 'USD': {'type': 'number'}}}, 'priceGBP': {'type': 'number'}, 'dataSource': {'type': 'string'}, 'inputCurrency': {'type': 'string'}, 'usesStoredRate': {'type': 'boolean'}}}
Input schema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Evlek listing id (UUID) from search'}}}
Output schema
{'type': 'object', 'required': ['id', 'title', 'text', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'text': {'type': 'string'}, 'title': {'type': 'string'}, 'photos': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'caption': {'type': ['string', 'null']}}}}, 'metadata': {'type': 'object', 'required': ['city', 'district', 'type', 'bedrooms', 'areaSqm', 'priceGBP', 'pricePerSqmGBP', 'monthlyRentGbp', 'currency', 'listedAt', 'locationPrecision'], 'properties': {'city': {'type': ['string', 'null']}, 'type': {'type': ['string', 'null']}, 'areaSqm': {'type': ['number', 'null']}, 'bedrooms': {'type': ['number', 'null']}, 'currency': {'type': ['string', 'null']}, 'district': {'type': ['string', 'null']}, 'listedAt': {'type': ['string', 'null']}, 'priceGBP': {'type': ['number', 'null']}, 'monthlyRentGbp': {'type': ['number', 'null']}, 'pricePerSqmGBP': {'type': ['number', 'null']}, 'locationPrecision': {'type': ['string', 'null']}}}, 'coverImageUrl': {'type': ['string', 'null']}}}
Input schema
{'type': 'object', 'required': ['city', 'district'], 'properties': {'city': {'type': 'string', 'description': 'City containing the district. Slug, Turkish name, or exonym (Kyrenia/Nicosia/Famagusta/Morphou).'}, 'district': {'type': 'string', 'description': 'District name (2-60 chars), matched accent/case-insensitively against the active-listing district list'}}}
Output schema
{'type': 'object', 'required': ['city', 'district', 'cleanSampleTotal'], 'properties': {'city': {'type': 'string'}, 'rent': {'type': ['object', 'null'], 'properties': {'p25': {'type': ['number', 'null']}, 'p75': {'type': ['number', 'null']}, 'count': {'type': 'number'}, 'median': {'type': ['number', 'null']}, 'status': {'enum': ['proven', 'preliminary', 'collecting'], 'type': 'string'}, 'maturity': {'enum': ['olgun', 'öncü', 'biriktiriyor'], 'type': 'string'}, 'provenance': {'type': 'object', 'required': ['publishers', 'agencies', 'maxAgencyShare', 'singleSource'], 'properties': {'agencies': {'type': ['number', 'null']}, 'publishers': {'type': ['number', 'null']}, 'singleSource': {'type': 'boolean'}, 'maxAgencyShare': {'type': ['number', 'null']}}}, 'medianPerSqm': {'type': ['number', 'null']}, 'withheldReason': {'enum': ['insufficient_sample', 'no_value', None], 'type': ['string', 'null']}}}, 'sale': {'type': ['object', 'null'], 'properties': {'p25': {'type': ['number', 'null']}, 'p75': {'type': ['number', 'null']}, 'count': {'type': 'number'}, 'median': {'type': ['number', 'null']}, 'status': {'enum': ['proven', 'preliminary', 'collecting'], 'type': 'string'}, 'maturity': {'enum': ['olgun', 'öncü', 'biriktiriyor'], 'type': 'string'}, 'provenance': {'type': 'object', 'required': ['publishers', 'agencies', 'maxAgencyShare', 'singleSource'], 'properties': {'agencies': {'type': ['number', 'null']}, 'publishers': {'type': ['number', 'null']}, 'singleSource': {'type': 'boolean'}, 'maxAgencyShare': {'type': ['number', 'null']}}}, 'medianPerSqm': {'type': ['number', 'null']}, 'withheldReason': {'enum': ['insufficient_sample', 'no_value', None], 'type': ['string', 'null']}}}, 'dataAsOf': {'type': ['string', 'null']}, 'district': {'type': 'string'}, 'truncated': {'type': 'boolean'}, 'dataSource': {'type': 'string'}, 'metricType': {'type': 'string'}, 'personaContexts': {'type': 'array', 'items': {'type': 'string'}}, 'ratioMetricType': {'type': 'string'}, 'cleanSampleTotal': {'type': 'number', 'description': 'sale.count + rent.count — clean sample size (IQR outliers excluded), not raw active listings'}, 'isObservedIncome': {'type': 'boolean'}, 'askingRentToAskingPricePct': {'type': ['number', 'null']}}}
Input schema
{'type': 'object', 'required': ['listingNumber'], 'properties': {'listingNumber': {'type': ['string', 'number'], 'description': 'Evlek listing number, e.g. "EVL-123456", "123456", or the bare number 123456.'}}}
Output schema
{'type': 'object', 'required': ['found'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'city': {'type': 'string'}, 'type': {'type': 'string'}, 'found': {'type': 'boolean'}, 'price': {'type': 'number'}, 'title': {'type': 'string'}, 'photos': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'caption': {'type': ['string', 'null']}}}}, 'areaSqm': {'type': ['number', 'null']}, 'fxRates': {'type': ['object', 'null'], 'required': ['base', 'rates', 'source', 'updatedAt', 'isFallback'], 'properties': {'base': {'enum': ['GBP'], 'type': 'string'}, 'rates': {'type': 'object', 'required': ['EUR', 'USD', 'TRY'], 'properties': {'EUR': {'type': 'number'}, 'TRY': {'type': 'number'}, 'USD': {'type': 'number'}}}, 'source': {'enum': ['database', 'fallback'], 'type': 'string'}, 'updatedAt': {'type': ['string', 'null']}, 'isFallback': {'type': 'boolean'}}}, 'bedrooms': {'type': ['number', 'null']}, 'currency': {'type': 'string'}, 'district': {'type': ['string', 'null']}, 'factType': {'type': 'string'}, 'features': {'type': 'array', 'items': {'type': 'string'}}, 'listedAt': {'type': ['string', 'null']}, 'priceGbp': {'type': ['number', 'null']}, 'amenities': {'type': 'array', 'items': {'type': 'string'}}, 'bathrooms': {'type': ['number', 'null']}, 'furnished': {'type': ['boolean', 'null']}, 'dataSource': {'type': 'string'}, 'isEstimate': {'type': 'boolean'}, 'photoCount': {'type': 'number'}, 'photosShown': {'type': 'number'}, 'coverImageUrl': {'type': ['string', 'null']}, 'listingNumber': {'type': ['number', 'null']}, 'monthlyRentGbp': {'type': ['number', 'null']}, 'pricePerSqmGBP': {'type': ['number', 'null']}, 'virtualStaging': {'type': 'object', 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'properties': {'style': {'type': 'string'}, 'afterUrl': {'type': 'string'}, 'roomType': {'type': 'string'}, 'beforeUrl': {'type': 'string'}, 'provenance': {'type': 'object', 'properties': {'kind': {'type': 'string'}, 'model': {'type': 'string'}, 'version': {'type': 'number'}, 'outputId': {'type': 'string'}, 'provider': {'type': 'string'}, 'generatedAt': {'type': 'string'}, 'humanReview': {'type': 'string'}, 'modelVersion': {'type': 'string'}, 'outputSha256': {'type': 'string'}, 'originalRetained': {'type': 'boolean'}, 'digitalSourceType': {'type': 'string'}, 'visibleDisclosureApplied': {'type': 'boolean'}}}}}}, 'available': {'type': 'boolean'}, 'disclosure': {'type': 'string'}}}, 'photosTruncated': {'type': 'number'}, 'locationPrecision': {'enum': ['exact', 'district', 'city'], 'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['propertyId'], 'properties': {'propertyId': {'type': 'string', 'description': 'Evlek listing UUID or listing number (e.g. "EVL-123456", "123456")'}}}
Output schema
{'type': 'object', 'required': ['found'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'city': {'type': 'string'}, 'type': {'type': 'string'}, 'found': {'type': 'boolean'}, 'price': {'type': 'number'}, 'title': {'type': 'string'}, 'photos': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'caption': {'type': ['string', 'null']}}}}, 'areaSqm': {'type': ['number', 'null']}, 'fxRates': {'type': ['object', 'null'], 'required': ['base', 'rates', 'source', 'updatedAt', 'isFallback'], 'properties': {'base': {'enum': ['GBP'], 'type': 'string'}, 'rates': {'type': 'object', 'required': ['EUR', 'USD', 'TRY'], 'properties': {'EUR': {'type': 'number'}, 'TRY': {'type': 'number'}, 'USD': {'type': 'number'}}}, 'source': {'enum': ['database', 'fallback'], 'type': 'string'}, 'updatedAt': {'type': ['string', 'null']}, 'isFallback': {'type': 'boolean'}}}, 'bedrooms': {'type': ['number', 'null']}, 'currency': {'type': 'string'}, 'district': {'type': ['string', 'null']}, 'factType': {'type': 'string'}, 'features': {'type': 'array', 'items': {'type': 'string'}}, 'listedAt': {'type': ['string', 'null']}, 'priceGbp': {'type': ['number', 'null']}, 'amenities': {'type': 'array', 'items': {'type': 'string'}}, 'bathrooms': {'type': ['number', 'null']}, 'furnished': {'type': ['boolean', 'null']}, 'dataSource': {'type': 'string'}, 'isEstimate': {'type': 'boolean'}, 'photoCount': {'type': 'number'}, 'photosShown': {'type': 'number'}, 'coverImageUrl': {'type': ['string', 'null']}, 'listingNumber': {'type': ['number', 'null']}, 'monthlyRentGbp': {'type': ['number', 'null']}, 'pricePerSqmGBP': {'type': ['number', 'null']}, 'virtualStaging': {'type': 'object', 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'properties': {'style': {'type': 'string'}, 'afterUrl': {'type': 'string'}, 'roomType': {'type': 'string'}, 'beforeUrl': {'type': 'string'}, 'provenance': {'type': 'object', 'properties': {'kind': {'type': 'string'}, 'model': {'type': 'string'}, 'version': {'type': 'number'}, 'outputId': {'type': 'string'}, 'provider': {'type': 'string'}, 'generatedAt': {'type': 'string'}, 'humanReview': {'type': 'string'}, 'modelVersion': {'type': 'string'}, 'outputSha256': {'type': 'string'}, 'originalRetained': {'type': 'boolean'}, 'digitalSourceType': {'type': 'string'}, 'visibleDisclosureApplied': {'type': 'boolean'}}}}}}, 'available': {'type': 'boolean'}, 'disclosure': {'type': 'string'}}}, 'photosTruncated': {'type': 'number'}, 'locationPrecision': {'enum': ['exact', 'district', 'city'], 'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {'city': {'type': 'string', 'description': 'Filter to a single city (omit for all cities). Slug, Turkish name, or exonym (Kyrenia/Nicosia/Famagusta/Morphou).'}, 'type': {'enum': ['sale', 'rent'], 'type': 'string', 'description': 'Sale or rent (default: sale)'}}}
Output schema
{'type': 'object', 'required': ['type', 'dataAsOf', 'cities'], 'properties': {'type': {'type': 'string'}, 'cities': {'type': 'array', 'items': {'type': 'object', 'required': ['city', 'count', 'status', 'lowSample', 'withheldReason', 'medianPrice', 'districts'], 'properties': {'city': {'type': 'string'}, 'nRaw': {'type': 'number'}, 'count': {'type': 'number'}, 'status': {'enum': ['proven', 'preliminary', 'collecting'], 'type': 'string'}, 'nUnique': {'type': 'number'}, 'p25Price': {'type': ['number', 'null']}, 'p75Price': {'type': ['number', 'null']}, 'districts': {'type': 'array', 'items': {'type': 'object', 'required': ['district', 'count', 'lowSample', 'medianPrice'], 'properties': {'nRaw': {'type': 'number'}, 'count': {'type': 'number'}, 'status': {'type': 'string'}, 'nUnique': {'type': 'number'}, 'district': {'type': 'string'}, 'lowSample': {'type': 'boolean'}, 'provenance': {'type': 'object', 'required': ['publishers', 'agencies', 'maxAgencyShare', 'singleSource'], 'properties': {'agencies': {'type': ['number', 'null']}, 'publishers': {'type': ['number', 'null']}, 'singleSource': {'type': 'boolean'}, 'maxAgencyShare': {'type': ['number', 'null']}}}, 'medianPrice': {'type': ['number', 'null']}, 'nDuplicates': {'type': 'number'}, 'nIqrExcluded': {'type': 'number'}, 'withheldReason': {'type': ['string', 'null']}, 'medianPricePerSqm': {'type': ['number', 'null']}}}}, 'lowSample': {'type': 'boolean'}, 'provenance': {'type': 'object', 'required': ['publishers', 'agencies', 'maxAgencyShare', 'singleSource'], 'properties': {'agencies': {'type': ['number', 'null']}, 'publishers': {'type': ['number', 'null']}, 'singleSource': {'type': 'boolean'}, 'maxAgencyShare': {'type': ['number', 'null']}}}, 'medianPrice': {'type': ['number', 'null']}, 'nDuplicates': {'type': 'number'}, 'nIqrExcluded': {'type': 'number'}, 'withheldReason': {'enum': ['insufficient_sample', 'no_value', None], 'type': ['string', 'null']}, 'medianPricePerSqm': {'type': ['number', 'null']}}}}, 'dataAsOf': {'type': ['string', 'null']}, 'dataSource': {'enum': ['live_active_listings', 'daily_snapshot'], 'type': 'string'}, 'isEstimate': {'type': 'boolean'}, 'metricType': {'type': 'string'}, 'totalListings': {'type': ['number', 'null']}, 'excludedOutliers': {'type': ['number', 'null']}, 'excludedDuplicates': {'type': ['number', 'null']}, 'excludedNotEligible': {'type': ['number', 'null']}, 'indexEligibleListings': {'type': ['number', 'null']}}}
Input schema
{'type': 'object', 'properties': {'city': {'type': 'string', 'description': 'Optional — limit districts to a single city. Slug, Turkish name, or exonym (Kyrenia/Nicosia/Famagusta/Morphou).'}}}
Output schema
{'type': 'object', 'required': ['cities'], 'properties': {'cities': {'type': 'array', 'items': {'type': 'object', 'properties': {'slug': {'type': 'string'}, 'display': {'type': 'string'}, 'districts': {'type': 'array', 'items': {'type': 'string'}}, 'districtCount': {'type': 'number'}}}}, 'truncated': {'type': 'boolean'}, 'dataSource': {'type': 'string'}, 'isEstimate': {'type': 'boolean'}}}
Input schema
{'type': 'object', 'required': ['price'], 'properties': {'price': {'type': 'number', 'maximum': 100000000, 'minimum': 1000, 'description': 'Entered property asking-price amount; not a deposit or installment.'}, 'currency': {'enum': ['GBP', 'EUR', 'USD', 'TRY'], 'type': 'string', 'description': 'Currency of the price (default GBP).'}}}
Output schema
{'type': 'object', 'required': ['inputCurrency', 'priceGBP', 'amounts'], 'properties': {'fx': {'type': 'object', 'required': ['base', 'source', 'asOf', 'rates'], 'properties': {'asOf': {'type': 'string'}, 'base': {'enum': ['GBP'], 'type': 'string'}, 'rates': {'type': 'object', 'required': ['GBP', 'EUR', 'USD', 'TRY'], 'properties': {'EUR': {'type': 'number'}, 'GBP': {'type': 'number'}, 'TRY': {'type': 'number'}, 'USD': {'type': 'number'}}}, 'source': {'enum': ['stored_current_rates'], 'type': 'string'}}}, 'amounts': {'type': 'object', 'required': ['GBP', 'EUR', 'USD', 'TRY'], 'properties': {'EUR': {'type': 'number'}, 'GBP': {'type': 'number'}, 'TRY': {'type': 'number'}, 'USD': {'type': 'number'}}}, 'priceGBP': {'type': 'number'}, 'dataSource': {'type': 'string'}, 'inputCurrency': {'type': 'string'}, 'usesStoredRate': {'type': 'boolean'}}}
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Free-text property search query'}}}
Output schema
{'type': 'object', 'required': ['results'], 'properties': {'fxRates': {'type': ['object', 'null'], 'required': ['base', 'rates', 'source', 'updatedAt', 'isFallback'], 'properties': {'base': {'enum': ['GBP'], 'type': 'string'}, 'rates': {'type': 'object', 'required': ['EUR', 'USD', 'TRY'], 'properties': {'EUR': {'type': 'number'}, 'TRY': {'type': 'number'}, 'USD': {'type': 'number'}}}, 'source': {'enum': ['database', 'fallback'], 'type': 'string'}, 'updatedAt': {'type': ['string', 'null']}, 'isFallback': {'type': 'boolean'}}}, 'results': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'title': {'type': 'string'}}}}, 'criteria': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'value', 'state'], 'properties': {'key': {'type': 'string'}, 'note': {'type': 'string'}, 'state': {'enum': ['applied', 'unresolved', 'not_supported'], 'type': 'string'}, 'value': {'type': 'string'}}}}, 'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'city', 'district', 'price', 'priceGbp', 'currency', 'type', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'city': {'type': 'string'}, 'type': {'type': 'string'}, 'price': {'type': 'number'}, 'title': {'type': 'string'}, 'areaSqm': {'type': ['number', 'null']}, 'bedrooms': {'type': ['number', 'null']}, 'currency': {'type': 'string'}, 'district': {'type': 'string'}, 'priceGbp': {'type': 'number'}, 'propertyType': {'type': ['string', 'null']}, 'coverImageUrl': {'type': ['string', 'null']}, 'listingNumber': {'type': ['number', 'null']}, 'monthlyRentGbp': {'type': ['number', 'null']}, 'locationPrecision': {'enum': ['exact', 'district', 'city'], 'type': 'string'}}}}, 'outOfScope': {'type': 'boolean'}, 'unresolved': {'type': 'array', 'items': {'type': 'string'}}, 'appliedFilters': {'type': 'object', 'properties': {'city': {'type': 'string'}, 'pool': {'type': 'boolean'}, 'type': {'type': 'string'}, 'garden': {'type': 'boolean'}, 'parking': {'type': 'boolean'}, 'seaView': {'type': 'boolean'}, 'bedrooms': {'type': 'number'}, 'district': {'type': 'string'}, 'elevator': {'type': 'boolean'}, 'maxPrice': {'type': 'number'}, 'minPrice': {'type': 'number'}, 'furnished': {'type': 'boolean'}, 'propertyType': {'type': 'string'}}, 'additionalProperties': False}, 'nearbyAlternatives': {'type': ['object', 'null'], 'required': ['relaxed', 'listings'], 'properties': {'relaxed': {'enum': ['district', 'maxPrice'], 'type': 'string'}, 'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'city', 'district', 'price', 'priceGbp', 'currency', 'type', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'city': {'type': 'string'}, 'type': {'type': 'string'}, 'price': {'type': 'number'}, 'title': {'type': 'string'}, 'areaSqm': {'type': ['number', 'null']}, 'bedrooms': {'type': ['number', 'null']}, 'currency': {'type': 'string'}, 'district': {'type': 'string'}, 'priceGbp': {'type': 'number'}, 'propertyType': {'type': ['string', 'null']}, 'coverImageUrl': {'type': ['string', 'null']}, 'listingNumber': {'type': ['number', 'null']}, 'monthlyRentGbp': {'type': ['number', 'null']}, 'locationPrecision': {'enum': ['exact', 'district', 'city'], 'type': 'string'}}}}}}}}
Input schema
{'type': 'object', 'properties': {'city': {'type': 'string', 'description': 'Slug, Turkish name, or exonym (Kyrenia/Nicosia/Famagusta/Morphou).'}, 'pool': {'type': 'boolean', 'description': 'Only listings with a pool'}, 'type': {'enum': ['sale', 'rent'], 'type': 'string', 'description': 'Listing type'}, 'limit': {'type': 'number', 'maximum': 10, 'minimum': 1, 'description': 'Result count (integer 1-10, default 5)'}, 'query': {'type': 'string', 'description': 'Optional free-text query (parsed like the `search` tool); merges with explicit filters below — an explicit filter wins on conflict'}, 'garden': {'type': 'boolean', 'description': 'Only listings with a garden'}, 'offset': {'type': 'number', 'minimum': 0, 'description': 'Rows to skip (pagination, default 0)'}, 'sortBy': {'enum': ['newest', 'price_asc', 'price_desc', 'area_desc', 'price_per_sqm_asc'], 'type': 'string', 'description': 'Sort order (default: newest)'}, 'parking': {'type': 'boolean', 'description': 'Only listings with parking'}, 'seaView': {'type': 'boolean', 'description': 'Only listings flagged sea_view'}, 'bedrooms': {'type': 'number', 'maximum': 10, 'minimum': 0, 'description': 'Bedroom count (integer 0-10)'}, 'district': {'type': 'string', 'description': 'District name (e.g. Alsancak), matched accent/case-insensitively against the active-listing district list'}, 'elevator': {'type': 'boolean', 'description': 'Only listings with an elevator'}, 'maxPrice': {'type': 'number', 'description': 'Max price in GBP'}, 'minPrice': {'type': 'number', 'description': 'Min price in GBP'}, 'furnished': {'type': 'boolean', 'description': 'Only furnished listings'}, 'propertyType': {'enum': ['apartment', 'residence', 'villa', 'twin', 'detached', 'bungalow', 'penthouse', 'studio', 'duplex', 'shop', 'office', 'warehouse', 'whole_building', 'hotel', 'residential_land', 'commercial_land', 'farmland', 'house', 'land', 'commercial'], 'type': 'string', 'description': 'Raw property type (apartment, villa, …) or K75 group slug: house (villa+detached+bungalow), land, commercial'}}}
Output schema
{'type': 'object', 'required': ['count', 'totalMatched', 'offset', 'sortApplied', 'listings', 'appliedFilters'], 'properties': {'count': {'type': 'number'}, 'notes': {'type': 'array', 'items': {'type': 'string'}}, 'offset': {'type': 'number'}, 'fxRates': {'type': ['object', 'null'], 'required': ['base', 'rates', 'source', 'updatedAt', 'isFallback'], 'properties': {'base': {'enum': ['GBP'], 'type': 'string'}, 'rates': {'type': 'object', 'required': ['EUR', 'USD', 'TRY'], 'properties': {'EUR': {'type': 'number'}, 'TRY': {'type': 'number'}, 'USD': {'type': 'number'}}}, 'source': {'enum': ['database', 'fallback'], 'type': 'string'}, 'updatedAt': {'type': ['string', 'null']}, 'isFallback': {'type': 'boolean'}}}, 'ranking': {'type': ['object', 'null'], 'required': ['scope', 'pooled', 'of'], 'properties': {'of': {'type': 'number'}, 'scope': {'enum': ['complete', 'partial'], 'type': 'string'}, 'pooled': {'type': 'number'}}}, 'factType': {'type': 'string'}, 'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'city', 'district', 'price', 'priceGbp', 'currency', 'type', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'city': {'type': 'string'}, 'type': {'type': 'string'}, 'price': {'type': 'number'}, 'title': {'type': 'string'}, 'areaSqm': {'type': ['number', 'null']}, 'bedrooms': {'type': ['number', 'null']}, 'currency': {'type': 'string'}, 'district': {'type': 'string'}, 'priceGbp': {'type': 'number'}, 'propertyType': {'type': ['string', 'null']}, 'coverImageUrl': {'type': ['string', 'null']}, 'listingNumber': {'type': ['number', 'null']}, 'monthlyRentGbp': {'type': ['number', 'null']}, 'locationPrecision': {'enum': ['exact', 'district', 'city'], 'type': 'string'}}}}, 'dataSource': {'type': 'string'}, 'isEstimate': {'type': 'boolean'}, 'sortApplied': {'enum': ['newest', 'price_asc', 'price_desc', 'area_desc', 'price_per_sqm_asc'], 'type': 'string'}, 'totalMatched': {'type': 'number'}, 'appliedFilters': {'type': 'object', 'properties': {'city': {'type': 'string'}, 'pool': {'type': 'boolean'}, 'type': {'type': 'string'}, 'garden': {'type': 'boolean'}, 'parking': {'type': 'boolean'}, 'seaView': {'type': 'boolean'}, 'bedrooms': {'type': 'number'}, 'district': {'type': 'string'}, 'elevator': {'type': 'boolean'}, 'maxPrice': {'type': 'number'}, 'minPrice': {'type': 'number'}, 'furnished': {'type': 'boolean'}, 'propertyType': {'type': 'string'}}, 'additionalProperties': False}}}
Recent tool changes
Similar MCP servers
Microburbs Australian Property Data
Provides Australian property, suburb, valuation, sales, rental, zoning, school, risk, geospatial, and census statistics.
DFX Real Estate Intelligence
Provides US commercial real estate, parcel, debt maturity, bank CRE exposure, private capital, investor, ownership, occupancy, an…
Housing Intel
Analyzes housing markets, affordability, mortgage rates, rental yields, property data, employment, metro demand, and investment s…
Dubai Land
Provides Dubai Land Department data on properties, transactions, rents, valuations, projects, developers, brokers, and districts.
Homecastr Remote MCP
Provides U.S. property value forecasts across addresses, parcels, units, ZIP codes, census geographies, and states, along with ho…
Attom
Provides US property search, characteristics, valuations, rental estimates, sales histories, tax assessments, school searches, an…
Worldcastr Remote MCP
Provides probabilistic property and market forecasts at address, parcel, unit, tract, ZIP, county, state, and other geographic le…
Census
Provides U.S. Census housing and demographic data including home values, rents, population, homeownership, vacancies, building pe…