Evlek — Northern Cyprus Property MCP Server
Live Northern Cyprus (KKTC/TRNC) property listings and asking-price data. Read-only, 12 tools.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (2)
- LOWen payment_plan
- LOWen fetch
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": {
"mcp-server": {
"url": "https://evlek.app/api/mcp"
}
}
}Puntos de conexión remotos
https://evlek.app/api/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (12)
🟢search_listings(query, city, type, district, propertyType, ...)
Search live active sale and long-term-rent listings on Evlek. Results are newest-first by default; `limit` caps returned rows and `totalMatched` reports the full match count. Returns advertised asking-price and listing facts only; not valuation, verification of property-specific claims, forecast, ranking, or recommendation.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Optional free-text query (parsed like the `search` tool); merges with explicit filters below — an explicit filter wins on conflict"
},
"city": {
"type": "string",
"description": "Slug, Turkish name, or exonym (Kyrenia/Nicosia/Famagusta/Morphou)."
},
"type": {
"type": "string",
"enum": [
"sale",
"rent"
],
"description": "Listing type"
},
"district": {
"type": "string",
"description": "District name (e.g. Alsancak), matched accent/case-insensitively against the active-listing district list"
},
"propertyType": {
"type": "string",
"enum": [
"apartment",
"residence",
"villa",
"twin",
"detached",
"bungalow",
"penthouse",
"studio",
"duplex",
"shop",
"office",
"warehouse",
"whole_building",
"hotel",
"residential_land",
"commercial_land",
"farmland",
"house",
"land",
"commercial"
],
"description": "Raw property type (apartment, villa, …) or K75 group slug: house (villa+detached+bungalow), land, commercial"
},
"seaView": {
"type": "boolean",
"description": "Only listings flagged sea_view"
},
"pool": {
"type": "boolean",
"description": "Only listings with a pool"
},
"furnished": {
"type": "boolean",
"description": "Only furnished listings"
},
"parking": {
"type": "boolean",
"description": "Only listings with parking"
},
"garden": {
"type": "boolean",
"description": "Only listings with a garden"
},
"elevator": {
"type": "boolean",
"description": "Only listings with an elevator"
},
"bedrooms": {
"type": "number",
"minimum": 0,
"maximum": 10,
"description": "Bedroom count (integer 0-10)"
},
"minPrice": {
"type": "number",
"description": "Min price in GBP"
},
"maxPrice": {
"type": "number",
"description": "Max price in GBP"
},
"sortBy": {
"type": "string",
"enum": [
"newest",
"price_asc",
"price_desc",
"area_desc",
"price_per_sqm_asc"
],
"description": "Sort order (default: newest)"
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 10,
"description": "Result count (integer 1-10, default 5)"
},
"offset": {
"type": "number",
"minimum": 0,
"description": "Rows to skip (pagination, default 0)"
}
}
}Esquema de salida
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"totalMatched": {
"type": "number"
},
"offset": {
"type": "number"
},
"ranking": {
"type": [
"object",
"null"
],
"properties": {
"scope": {
"type": "string",
"enum": [
"complete",
"partial"
]
},
"pooled": {
"type": "number"
},
"of": {
"type": "number"
}
},
"required": [
"scope",
"pooled",
"of"
]
},
"sortApplied": {
"type": "string",
"enum": [
"newest",
"price_asc",
"price_desc",
"area_desc",
"price_per_sqm_asc"
]
},
"listings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"listingNumber": {
"type": [
"number",
"null"
]
},
"title": {
"type": "string"
},
"city": {
"type": "string"
},
"district": {
"type": "string"
},
"price": {
"type": "number"
},
"priceGbp": {
"type": "number"
},
"currency": {
"type": "string"
},
"bedrooms": {
"type": [
"number",
"null"
]
},
"areaSqm": {
"type": [
"number",
"null"
]
},
"type": {
"type": "string"
},
"propertyType": {
"type": [
"string",
"null"
]
},
"coverImageUrl": {
"type": [
"string",
"null"
]
},
"locationPrecision": {
"type": "string",
"enum": [
"exact",
"district",
"city"
]
},
"monthlyRentGbp": {
"type": [
"number",
"null"
]
},
"url": {
"type": "string"
}
},
"required": [
"id",
"title",
"city",
"district",
"price",
"priceGbp",
"currency",
"type",
"url"
]
}
},
"appliedFilters": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"district": {
"type": "string"
},
"type": {
"type": "string"
},
"propertyType": {
"type": "string"
},
"bedrooms": {
"type": "number"
},
"minPrice": {
"type": "number"
},
"maxPrice": {
"type": "number"
},
"seaView": {
"type": "boolean"
},
"pool": {
"type": "boolean"
},
"furnished": {
"type": "boolean"
},
"parking": {
"type": "boolean"
},
"garden": {
"type": "boolean"
},
"elevator": {
"type": "boolean"
}
},
"additionalProperties": false
},
"fxRates": {
"type": [
"object",
"null"
],
"properties": {
"base": {
"type": "string",
"enum": [
"GBP"
]
},
"rates": {
"type": "object",
"properties": {
"EUR": {
"type": "number"
},
"USD": {
"type": "number"
},
"TRY": {
"type": "number"
}
},
"required": [
"EUR",
"USD",
"TRY"
]
},
"source": {
"type": "string",
"enum": [
"database",
"fallback"
]
},
"updatedAt": {
"type": [
"string",
"null"
]
},
"isFallback": {
"type": "boolean"
}
},
"required": [
"base",
"rates",
"source",
"updatedAt",
"isFallback"
]
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"dataSource": {
"type": "string"
},
"factType": {
"type": "string"
},
"isEstimate": {
"type": "boolean"
}
},
"required": [
"count",
"totalMatched",
"offset",
"sortApplied",
"listings",
"appliedFilters"
]
}🟢get_price_index(city, type)
Returns source-dated aggregates of live active Evlek sale or long-term-rent asking prices. Descriptive listing facts only: not completed transactions, a valuation, a forecast, or an investment recommendation.
Esquema de entrada
{
"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": {
"type": "string",
"enum": [
"sale",
"rent"
],
"description": "Sale or rent (default: sale)"
}
}
}Esquema de salida
{
"type": "object",
"properties": {
"type": {
"type": "string"
},
"dataAsOf": {
"type": [
"string",
"null"
]
},
"totalListings": {
"type": [
"number",
"null"
]
},
"cities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"count": {
"type": "number"
},
"status": {
"type": "string",
"enum": [
"proven",
"preliminary",
"collecting"
]
},
"lowSample": {
"type": "boolean"
},
"withheldReason": {
"type": [
"string",
"null"
],
"enum": [
"insufficient_sample",
"no_value",
null
]
},
"medianPricePerSqm": {
"type": [
"number",
"null"
]
},
"medianPrice": {
"type": [
"number",
"null"
]
},
"p25Price": {
"type": [
"number",
"null"
]
},
"p75Price": {
"type": [
"number",
"null"
]
},
"provenance": {
"type": "object",
"properties": {
"publishers": {
"type": [
"number",
"null"
]
},
"agencies": {
"type": [
"number",
"null"
]
},
"maxAgencyShare": {
"type": [
"number",
"null"
]
},
"singleSource": {
"type": "boolean"
}
},
"required": [
"publishers",
"agencies",
"maxAgencyShare",
"singleSource"
]
},
"districts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"district": {
"type": "string"
},
"count": {
"type": "number"
},
"status": {
"type": "string"
},
"lowSample": {
"type": "boolean"
},
"withheldReason": {
"type": [
"string",
"null"
]
},
"medianPricePerSqm": {
"type": [
"number",
"null"
]
},
"medianPrice": {
"type": [
"number",
"null"
]
},
"provenance": {
"type": "object",
"properties": {
"publishers": {
"type": [
"number",
"null"
]
},
"agencies": {
"type": [
"number",
"null"
]
},
"maxAgencyShare": {
"type": [
"number",
"null"
]
},
"singleSource": {
"type": "boolean"
}
},
"required": [
"publishers",
"agencies",
"maxAgencyShare",
"singleSource"
]
},
"nRaw": {
"type": "number"
},
"nUnique": {
"type": "number"
},
"nDuplicates": {
"type": "number"
},
"nIqrExcluded": {
"type": "number"
}
},
"required": [
"district",
"count",
"lowSample",
"medianPrice"
]
}
},
"nRaw": {
"type": "number"
},
"nUnique": {
"type": "number"
},
"nDuplicates": {
"type": "number"
},
"nIqrExcluded": {
"type": "number"
}
},
"required": [
"city",
"count",
"status",
"lowSample",
"withheldReason",
"medianPrice",
"districts"
]
}
},
"dataSource": {
"type": "string",
"enum": [
"live_active_listings",
"daily_snapshot"
]
},
"metricType": {
"type": "string"
},
"isEstimate": {
"type": "boolean"
},
"indexEligibleListings": {
"type": [
"number",
"null"
]
},
"excludedNotEligible": {
"type": [
"number",
"null"
]
},
"excludedDuplicates": {
"type": [
"number",
"null"
]
},
"excludedOutliers": {
"type": [
"number",
"null"
]
}
},
"required": [
"type",
"dataAsOf",
"cities"
]
}🟢compare_cities(cities, type)
Compare source-dated live active-listing asking-price aggregates across 2-4 Northern Cyprus cities. Descriptive listing facts only; not transaction prices, valuation, forecast, ranking, or investment advice.
Esquema de entrada
{
"type": "object",
"properties": {
"cities": {
"type": "array",
"items": {
"type": "string",
"description": "Slug, Turkish name, or exonym (Kyrenia/Nicosia/Famagusta/Morphou)."
},
"description": "Cities to compare (2-4)"
},
"type": {
"type": "string",
"enum": [
"sale",
"rent"
],
"description": "Sale or rent (default: sale)"
}
},
"required": [
"cities"
]
}Esquema de salida
{
"type": "object",
"properties": {
"type": {
"type": "string"
},
"dataAsOf": {
"type": [
"string",
"null"
]
},
"cities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"city": {
"type": "string"
},
"activeCount": {
"type": "number"
},
"hasData": {
"type": "boolean"
},
"lowSample": {
"type": "boolean"
},
"withheldReason": {
"type": [
"string",
"null"
]
},
"medianPricePerSqm": {
"type": [
"number",
"null"
]
},
"medianPrice": {
"type": [
"number",
"null"
]
},
"p25Price": {
"type": [
"number",
"null"
]
},
"p75Price": {
"type": [
"number",
"null"
]
},
"topDistrict": {
"type": [
"string",
"null"
]
},
"topDistrictMedianPrice": {
"type": [
"number",
"null"
]
},
"provenance": {
"type": "object",
"properties": {
"publishers": {
"type": [
"number",
"null"
]
},
"agencies": {
"type": [
"number",
"null"
]
},
"maxAgencyShare": {
"type": [
"number",
"null"
]
},
"singleSource": {
"type": "boolean"
}
},
"required": [
"publishers",
"agencies",
"maxAgencyShare",
"singleSource"
]
}
},
"required": [
"slug",
"city",
"activeCount",
"hasData"
]
}
},
"dataSource": {
"type": "string"
},
"metricType": {
"type": "string"
},
"isEstimate": {
"type": "boolean"
}
},
"required": [
"type",
"dataAsOf",
"cities"
]
}🟢compare_properties(listingIds)
Compare descriptive facts from 2-4 active Evlek sale or long-term-rent listings of the same type. Shows advertised asking price, size and £/m² differences without making a value, suitability, appraisal, or investment judgment. The legacy `listing_ids` parameter name is still accepted as an alias of `listingIds`.
Esquema de entrada
{
"type": "object",
"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)"
}
},
"required": [
"listingIds"
]
}Esquema de salida
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"missing": {
"type": "number"
},
"listings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"number": {
"type": "string"
},
"title": {
"type": "string"
},
"city": {
"type": "string"
},
"district": {
"type": "string"
},
"price": {
"type": "number"
},
"priceGbp": {
"type": "number"
},
"currency": {
"type": "string"
},
"bedrooms": {
"type": [
"number",
"null"
]
},
"bathrooms": {
"type": [
"number",
"null"
]
},
"area": {
"type": [
"number",
"null"
]
},
"pricePerSqm": {
"type": [
"number",
"null"
]
},
"monthlyRentGbp": {
"type": [
"number",
"null"
]
},
"type": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"id",
"title",
"price",
"priceGbp",
"type",
"url"
]
}
},
"dataSource": {
"type": "string"
},
"metricType": {
"type": "string"
},
"isEstimate": {
"type": "boolean"
}
},
"required": [
"count",
"listings"
]
}🟢get_district_profile(city, district)
Returns source-dated active sale/long-term-rent listing counts and asking-price aggregates for one district. Any rent-to-price percentage is a derived asking-price ratio, not observed income, net yield, valuation, forecast, ranking, or recommendation.
Esquema de entrada
{
"type": "object",
"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"
}
},
"required": [
"city",
"district"
]
}Esquema de salida
{
"type": "object",
"properties": {
"city": {
"type": "string"
},
"district": {
"type": "string"
},
"cleanSampleTotal": {
"type": "number",
"description": "sale.count + rent.count — clean sample size (IQR outliers excluded), not raw active listings"
},
"dataAsOf": {
"type": [
"string",
"null"
]
},
"sale": {
"type": [
"object",
"null"
],
"properties": {
"count": {
"type": "number"
},
"status": {
"type": "string",
"enum": [
"proven",
"preliminary",
"collecting"
]
},
"maturity": {
"type": "string",
"enum": [
"olgun",
"öncü",
"biriktiriyor"
]
},
"median": {
"type": [
"number",
"null"
]
},
"medianPerSqm": {
"type": [
"number",
"null"
]
},
"p25": {
"type": [
"number",
"null"
]
},
"p75": {
"type": [
"number",
"null"
]
},
"withheldReason": {
"type": [
"string",
"null"
],
"enum": [
"insufficient_sample",
"no_value",
null
]
},
"provenance": {
"type": "object",
"properties": {
"publishers": {
"type": [
"number",
"null"
]
},
"agencies": {
"type": [
"number",
"null"
]
},
"maxAgencyShare": {
"type": [
"number",
"null"
]
},
"singleSource": {
"type": "boolean"
}
},
"required": [
"publishers",
"agencies",
"maxAgencyShare",
"singleSource"
]
}
}
},
"rent": {
"type": [
"object",
"null"
],
"properties": {
"count": {
"type": "number"
},
"status": {
"type": "string",
"enum": [
"proven",
"preliminary",
"collecting"
]
},
"maturity": {
"type": "string",
"enum": [
"olgun",
"öncü",
"biriktiriyor"
]
},
"median": {
"type": [
"number",
"null"
]
},
"medianPerSqm": {
"type": [
"number",
"null"
]
},
"p25": {
"type": [
"number",
"null"
]
},
"p75": {
"type": [
"number",
"null"
]
},
"withheldReason": {
"type": [
"string",
"null"
],
"enum": [
"insufficient_sample",
"no_value",
null
]
},
"provenance": {
"type": "object",
"properties": {
"publishers": {
"type": [
"number",
"null"
]
},
"agencies": {
"type": [
"number",
"null"
]
},
"maxAgencyShare": {
"type": [
"number",
"null"
]
},
"singleSource": {
"type": "boolean"
}
},
"required": [
"publishers",
"agencies",
"maxAgencyShare",
"singleSource"
]
}
}
},
"askingRentToAskingPricePct": {
"type": [
"number",
"null"
]
},
"ratioMetricType": {
"type": "string"
},
"isObservedIncome": {
"type": "boolean"
},
"personaContexts": {
"type": "array",
"items": {
"type": "string"
}
},
"dataSource": {
"type": "string"
},
"metricType": {
"type": "string"
},
"truncated": {
"type": "boolean"
}
},
"required": [
"city",
"district",
"cleanSampleTotal"
]
}🟢convert_currency(price, currency)
Converts an entered property asking-price amount across GBP/EUR/USD/TRY when complete, valid, fresh, date-stamped stored FX rates are available; otherwise it fails closed without amounts. Currency conversion only: no payment plan, deposit schedule, installment schedule, acquisition-cost estimate, or advice.
Esquema de entrada
{
"type": "object",
"properties": {
"price": {
"type": "number",
"minimum": 1000,
"maximum": 100000000,
"description": "Entered property asking-price amount; not a deposit or installment."
},
"currency": {
"type": "string",
"enum": [
"GBP",
"EUR",
"USD",
"TRY"
],
"description": "Currency of the price (default GBP)."
}
},
"required": [
"price"
]
}Esquema de salida
{
"type": "object",
"properties": {
"inputCurrency": {
"type": "string"
},
"priceGBP": {
"type": "number"
},
"amounts": {
"type": "object",
"properties": {
"GBP": {
"type": "number"
},
"EUR": {
"type": "number"
},
"USD": {
"type": "number"
},
"TRY": {
"type": "number"
}
},
"required": [
"GBP",
"EUR",
"USD",
"TRY"
]
},
"fx": {
"type": "object",
"properties": {
"base": {
"type": "string",
"enum": [
"GBP"
]
},
"source": {
"type": "string",
"enum": [
"stored_current_rates"
]
},
"asOf": {
"type": "string"
},
"rates": {
"type": "object",
"properties": {
"GBP": {
"type": "number"
},
"EUR": {
"type": "number"
},
"USD": {
"type": "number"
},
"TRY": {
"type": "number"
}
},
"required": [
"GBP",
"EUR",
"USD",
"TRY"
]
}
},
"required": [
"base",
"source",
"asOf",
"rates"
]
},
"dataSource": {
"type": "string"
},
"usesStoredRate": {
"type": "boolean"
}
},
"required": [
"inputCurrency",
"priceGBP",
"amounts"
]
}🟢payment_plan(price, currency)
Currently returns currency conversion only. A real installment/payment-schedule tool is planned under this name; until then it does not produce a payment plan, deposit schedule, or acquisition-cost estimate.
Esquema de entrada
{
"type": "object",
"properties": {
"price": {
"type": "number",
"minimum": 1000,
"maximum": 100000000,
"description": "Entered property asking-price amount; not a deposit or installment."
},
"currency": {
"type": "string",
"enum": [
"GBP",
"EUR",
"USD",
"TRY"
],
"description": "Currency of the price (default GBP)."
}
},
"required": [
"price"
]
}Esquema de salida
{
"type": "object",
"properties": {
"inputCurrency": {
"type": "string"
},
"priceGBP": {
"type": "number"
},
"amounts": {
"type": "object",
"properties": {
"GBP": {
"type": "number"
},
"EUR": {
"type": "number"
},
"USD": {
"type": "number"
},
"TRY": {
"type": "number"
}
},
"required": [
"GBP",
"EUR",
"USD",
"TRY"
]
},
"fx": {
"type": "object",
"properties": {
"base": {
"type": "string",
"enum": [
"GBP"
]
},
"source": {
"type": "string",
"enum": [
"stored_current_rates"
]
},
"asOf": {
"type": "string"
},
"rates": {
"type": "object",
"properties": {
"GBP": {
"type": "number"
},
"EUR": {
"type": "number"
},
"USD": {
"type": "number"
},
"TRY": {
"type": "number"
}
},
"required": [
"GBP",
"EUR",
"USD",
"TRY"
]
}
},
"required": [
"base",
"source",
"asOf",
"rates"
]
},
"dataSource": {
"type": "string"
},
"usesStoredRate": {
"type": "boolean"
}
},
"required": [
"inputCurrency",
"priceGBP",
"amounts"
]
}🟢get_listing_detail(propertyId)
Return a 360° profile of one active Evlek listing by UUID or listing number: title, description, price, location, size, amenities, features, cover image, per-photo captions/tags, and AI virtual-staging before/after pairs (always AI-disclosed). Contact details omitted. Use when: a UUID or listing number is already known. Don't use for: discovery — use search_listings first. The legacy `property_id` parameter name is still accepted as an alias of `propertyId`.
Esquema de entrada
{
"type": "object",
"properties": {
"propertyId": {
"type": "string",
"description": "Evlek listing UUID or listing number (e.g. \"EVL-123456\", \"123456\")"
}
},
"required": [
"propertyId"
]
}Esquema de salida
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"id": {
"type": "string"
},
"listingNumber": {
"type": [
"number",
"null"
]
},
"title": {
"type": "string"
},
"type": {
"type": "string"
},
"price": {
"type": "number"
},
"currency": {
"type": "string"
},
"city": {
"type": "string"
},
"district": {
"type": [
"string",
"null"
]
},
"bedrooms": {
"type": [
"number",
"null"
]
},
"bathrooms": {
"type": [
"number",
"null"
]
},
"areaSqm": {
"type": [
"number",
"null"
]
},
"priceGbp": {
"type": [
"number",
"null"
]
},
"pricePerSqmGBP": {
"type": [
"number",
"null"
]
},
"monthlyRentGbp": {
"type": [
"number",
"null"
]
},
"locationPrecision": {
"type": "string",
"enum": [
"exact",
"district",
"city"
]
},
"listedAt": {
"type": [
"string",
"null"
]
},
"furnished": {
"type": [
"boolean",
"null"
]
},
"amenities": {
"type": "array",
"items": {
"type": "string"
}
},
"features": {
"type": "array",
"items": {
"type": "string"
}
},
"photoCount": {
"type": "number"
},
"photosShown": {
"type": "number"
},
"photosTruncated": {
"type": "number"
},
"coverImageUrl": {
"type": [
"string",
"null"
]
},
"photos": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"caption": {
"type": [
"string",
"null"
]
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"virtualStaging": {
"type": "object",
"properties": {
"available": {
"type": "boolean"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"beforeUrl": {
"type": "string"
},
"afterUrl": {
"type": "string"
},
"style": {
"type": "string"
},
"roomType": {
"type": "string"
},
"provenance": {
"type": "object",
"properties": {
"version": {
"type": "number"
},
"outputId": {
"type": "string"
},
"kind": {
"type": "string"
},
"provider": {
"type": "string"
},
"model": {
"type": "string"
},
"modelVersion": {
"type": "string"
},
"generatedAt": {
"type": "string"
},
"humanReview": {
"type": "string"
},
"digitalSourceType": {
"type": "string"
},
"visibleDisclosureApplied": {
"type": "boolean"
},
"originalRetained": {
"type": "boolean"
},
"outputSha256": {
"type": "string"
}
}
}
}
}
},
"disclosure": {
"type": "string"
}
}
},
"url": {
"type": "string"
},
"dataSource": {
"type": "string"
},
"factType": {
"type": "string"
},
"isEstimate": {
"type": "boolean"
},
"fxRates": {
"type": [
"object",
"null"
],
"properties": {
"base": {
"type": "string",
"enum": [
"GBP"
]
},
"rates": {
"type": "object",
"properties": {
"EUR": {
"type": "number"
},
"USD": {
"type": "number"
},
"TRY": {
"type": "number"
}
},
"required": [
"EUR",
"USD",
"TRY"
]
},
"source": {
"type": "string",
"enum": [
"database",
"fallback"
]
},
"updatedAt": {
"type": [
"string",
"null"
]
},
"isFallback": {
"type": "boolean"
}
},
"required": [
"base",
"rates",
"source",
"updatedAt",
"isFallback"
]
}
},
"required": [
"found"
]
}🟢search(query)
Search live Northern Cyprus (KKTC/TRNC) property listings on Evlek with a free-text query. Returns matching listings as id/title/url for the fetch tool. Same data as search_listings — this fixed form exists for the ChatGPT/OpenAI connector contract. Use when: the caller only has a free-text query. Don't use for: structured filters — use search_listings.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Free-text property search query"
}
},
"required": [
"query"
]
}Esquema de salida
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string"
}
}
}
},
"listings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"listingNumber": {
"type": [
"number",
"null"
]
},
"title": {
"type": "string"
},
"city": {
"type": "string"
},
"district": {
"type": "string"
},
"price": {
"type": "number"
},
"priceGbp": {
"type": "number"
},
"currency": {
"type": "string"
},
"bedrooms": {
"type": [
"number",
"null"
]
},
"areaSqm": {
"type": [
"number",
"null"
]
},
"type": {
"type": "string"
},
"propertyType": {
"type": [
"string",
"null"
]
},
"coverImageUrl": {
"type": [
"string",
"null"
]
},
"locationPrecision": {
"type": "string",
"enum": [
"exact",
"district",
"city"
]
},
"monthlyRentGbp": {
"type": [
"number",
"null"
]
},
"url": {
"type": "string"
}
},
"required": [
"id",
"title",
"city",
"district",
"price",
"priceGbp",
"currency",
"type",
"url"
]
}
},
"appliedFilters": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"district": {
"type": "string"
},
"type": {
"type": "string"
},
"propertyType": {
"type": "string"
},
"bedrooms": {
"type": "number"
},
"minPrice": {
"type": "number"
},
"maxPrice": {
"type": "number"
},
"seaView": {
"type": "boolean"
},
"pool": {
"type": "boolean"
},
"furnished": {
"type": "boolean"
},
"parking": {
"type": "boolean"
},
"garden": {
"type": "boolean"
},
"elevator": {
"type": "boolean"
}
},
"additionalProperties": false
},
"fxRates": {
"type": [
"object",
"null"
],
"properties": {
"base": {
"type": "string",
"enum": [
"GBP"
]
},
"rates": {
"type": "object",
"properties": {
"EUR": {
"type": "number"
},
"USD": {
"type": "number"
},
"TRY": {
"type": "number"
}
},
"required": [
"EUR",
"USD",
"TRY"
]
},
"source": {
"type": "string",
"enum": [
"database",
"fallback"
]
},
"updatedAt": {
"type": [
"string",
"null"
]
},
"isFallback": {
"type": "boolean"
}
},
"required": [
"base",
"rates",
"source",
"updatedAt",
"isFallback"
]
},
"unresolved": {
"type": "array",
"items": {
"type": "string"
}
},
"outOfScope": {
"type": "boolean"
},
"criteria": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"applied",
"unresolved",
"not_supported"
]
},
"note": {
"type": "string"
}
},
"required": [
"key",
"value",
"state"
]
}
},
"nearbyAlternatives": {
"type": [
"object",
"null"
],
"properties": {
"relaxed": {
"type": "string",
"enum": [
"district",
"maxPrice"
]
},
"listings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"listingNumber": {
"type": [
"number",
"null"
]
},
"title": {
"type": "string"
},
"city": {
"type": "string"
},
"district": {
"type": "string"
},
"price": {
"type": "number"
},
"priceGbp": {
"type": "number"
},
"currency": {
"type": "string"
},
"bedrooms": {
"type": [
"number",
"null"
]
},
"areaSqm": {
"type": [
"number",
"null"
]
},
"type": {
"type": "string"
},
"propertyType": {
"type": [
"string",
"null"
]
},
"coverImageUrl": {
"type": [
"string",
"null"
]
},
"locationPrecision": {
"type": "string",
"enum": [
"exact",
"district",
"city"
]
},
"monthlyRentGbp": {
"type": [
"number",
"null"
]
},
"url": {
"type": "string"
}
},
"required": [
"id",
"title",
"city",
"district",
"price",
"priceGbp",
"currency",
"type",
"url"
]
}
}
},
"required": [
"relaxed",
"listings"
]
}
},
"required": [
"results"
]
}🟢fetch(id)
Fetch the full detail of one Evlek listing by id (from search): title, description, GBP-normalized price, location, size, amenities. Same data as get_listing_detail — this fixed id-only form exists for the ChatGPT/OpenAI connector contract. Use when: an id from search is known. Don't use for: discovery — use search first.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Evlek listing id (UUID) from search"
}
},
"required": [
"id"
]
}Esquema de salida
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"text": {
"type": "string"
},
"url": {
"type": "string"
},
"metadata": {
"type": "object",
"properties": {
"city": {
"type": [
"string",
"null"
]
},
"district": {
"type": [
"string",
"null"
]
},
"type": {
"type": [
"string",
"null"
]
},
"bedrooms": {
"type": [
"number",
"null"
]
},
"areaSqm": {
"type": [
"number",
"null"
]
},
"priceGBP": {
"type": [
"number",
"null"
]
},
"pricePerSqmGBP": {
"type": [
"number",
"null"
]
},
"monthlyRentGbp": {
"type": [
"number",
"null"
]
},
"currency": {
"type": [
"string",
"null"
]
},
"listedAt": {
"type": [
"string",
"null"
]
},
"locationPrecision": {
"type": [
"string",
"null"
]
}
},
"required": [
"city",
"district",
"type",
"bedrooms",
"areaSqm",
"priceGBP",
"pricePerSqmGBP",
"monthlyRentGbp",
"currency",
"listedAt",
"locationPrecision"
]
},
"coverImageUrl": {
"type": [
"string",
"null"
]
},
"photos": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"caption": {
"type": [
"string",
"null"
]
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"required": [
"id",
"title",
"text",
"url"
]
}🟢list_locations(city)
Return canonical KKTC city slugs plus districts represented by active Evlek sale or long-term-rent listings. Live inventory-location facts only; holiday-home inventory remains unavailable.
Esquema de entrada
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "Optional — limit districts to a single city. Slug, Turkish name, or exonym (Kyrenia/Nicosia/Famagusta/Morphou)."
}
}
}Esquema de salida
{
"type": "object",
"properties": {
"cities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"display": {
"type": "string"
},
"districtCount": {
"type": "number"
},
"districts": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"dataSource": {
"type": "string"
},
"isEstimate": {
"type": "boolean"
},
"truncated": {
"type": "boolean"
}
},
"required": [
"cities"
]
}🟢get_listing_by_number(listingNumber)
Look up a single Evlek listing by its public listing number (e.g. "EVL-123456", "123456", or a bare number) and return its full detail — same shape as get_listing_detail. Use when: a listing number is known. Don't use for: UUID lookups — use get_listing_detail. The legacy `listing_number` parameter name is still accepted as an alias of `listingNumber`.
Esquema de entrada
{
"type": "object",
"properties": {
"listingNumber": {
"type": [
"string",
"number"
],
"description": "Evlek listing number, e.g. \"EVL-123456\", \"123456\", or the bare number 123456."
}
},
"required": [
"listingNumber"
]
}Esquema de salida
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"id": {
"type": "string"
},
"listingNumber": {
"type": [
"number",
"null"
]
},
"title": {
"type": "string"
},
"type": {
"type": "string"
},
"price": {
"type": "number"
},
"currency": {
"type": "string"
},
"city": {
"type": "string"
},
"district": {
"type": [
"string",
"null"
]
},
"bedrooms": {
"type": [
"number",
"null"
]
},
"bathrooms": {
"type": [
"number",
"null"
]
},
"areaSqm": {
"type": [
"number",
"null"
]
},
"priceGbp": {
"type": [
"number",
"null"
]
},
"pricePerSqmGBP": {
"type": [
"number",
"null"
]
},
"monthlyRentGbp": {
"type": [
"number",
"null"
]
},
"locationPrecision": {
"type": "string",
"enum": [
"exact",
"district",
"city"
]
},
"listedAt": {
"type": [
"string",
"null"
]
},
"furnished": {
"type": [
"boolean",
"null"
]
},
"amenities": {
"type": "array",
"items": {
"type": "string"
}
},
"features": {
"type": "array",
"items": {
"type": "string"
}
},
"photoCount": {
"type": "number"
},
"photosShown": {
"type": "number"
},
"photosTruncated": {
"type": "number"
},
"coverImageUrl": {
"type": [
"string",
"null"
]
},
"photos": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"caption": {
"type": [
"string",
"null"
]
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"virtualStaging": {
"type": "object",
"properties": {
"available": {
"type": "boolean"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"beforeUrl": {
"type": "string"
},
"afterUrl": {
"type": "string"
},
"style": {
"type": "string"
},
"roomType": {
"type": "string"
},
"provenance": {
"type": "object",
"properties": {
"version": {
"type": "number"
},
"outputId": {
"type": "string"
},
"kind": {
"type": "string"
},
"provider": {
"type": "string"
},
"model": {
"type": "string"
},
"modelVersion": {
"type": "string"
},
"generatedAt": {
"type": "string"
},
"humanReview": {
"type": "string"
},
"digitalSourceType": {
"type": "string"
},
"visibleDisclosureApplied": {
"type": "boolean"
},
"originalRetained": {
"type": "boolean"
},
"outputSha256": {
"type": "string"
}
}
}
}
}
},
"disclosure": {
"type": "string"
}
}
},
"url": {
"type": "string"
},
"dataSource": {
"type": "string"
},
"factType": {
"type": "string"
},
"isEstimate": {
"type": "boolean"
},
"fxRates": {
"type": [
"object",
"null"
],
"properties": {
"base": {
"type": "string",
"enum": [
"GBP"
]
},
"rates": {
"type": "object",
"properties": {
"EUR": {
"type": "number"
},
"USD": {
"type": "number"
},
"TRY": {
"type": "number"
}
},
"required": [
"EUR",
"USD",
"TRY"
]
},
"source": {
"type": "string",
"enum": [
"database",
"fallback"
]
},
"updatedAt": {
"type": [
"string",
"null"
]
},
"isFallback": {
"type": "boolean"
}
},
"required": [
"base",
"rates",
"source",
"updatedAt",
"isFallback"
]
}
},
"required": [
"found"
]
}Comunidad
Evidencia