Evlek — Northern Cyprus Property MCP Server
Live Northern Cyprus (KKTC/TRNC) property listings and asking-price data. Read-only, 12 tools.
사용해야 할까요
품질 및 안전성
발견 사항 (2)
- LOWpayment_plan에서
- LOWfetch에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"mcp-server": {
"url": "https://evlek.app/api/mcp"
}
}
}원격 엔드포인트
https://evlek.app/api/mcpstreamable-http할 수 있는 일
도구 목록
도구 (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.
입력 스키마
{
"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)"
}
}
}출력 스키마
{
"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.
입력 스키마
{
"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)"
}
}
}출력 스키마
{
"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.
입력 스키마
{
"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"
]
}출력 스키마
{
"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`.
입력 스키마
{
"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"
]
}출력 스키마
{
"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.
입력 스키마
{
"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"
]
}출력 스키마
{
"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.
입력 스키마
{
"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"
]
}출력 스키마
{
"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.
입력 스키마
{
"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"
]
}출력 스키마
{
"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`.
입력 스키마
{
"type": "object",
"properties": {
"propertyId": {
"type": "string",
"description": "Evlek listing UUID or listing number (e.g. \"EVL-123456\", \"123456\")"
}
},
"required": [
"propertyId"
]
}출력 스키마
{
"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.
입력 스키마
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Free-text property search query"
}
},
"required": [
"query"
]
}출력 스키마
{
"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.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Evlek listing id (UUID) from search"
}
},
"required": [
"id"
]
}출력 스키마
{
"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.
입력 스키마
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "Optional — limit districts to a single city. Slug, Turkish name, or exonym (Kyrenia/Nicosia/Famagusta/Morphou)."
}
}
}출력 스키마
{
"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`.
입력 스키마
{
"type": "object",
"properties": {
"listingNumber": {
"type": [
"string",
"number"
],
"description": "Evlek listing number, e.g. \"EVL-123456\", \"123456\", or the bare number 123456."
}
},
"required": [
"listingNumber"
]
}출력 스키마
{
"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"
]
}커뮤니티
증거