Skip to main content
Glama

Evlek — Northern Cyprus Property MCP Server

Search Evlek property listings

search
Read-onlyIdempotent

Use only for research and citation lookups (deep research). To show listings to the user, use search_listings instead. Search live Northern Cyprus (KKTC/TRNC) property listings on Evlek with a free-text query in Turkish, English, Russian, German or Arabic. Returns matching listings as id/title/url for the fetch tool, newest first (sale and rent as two groups when the query names neither). The answer language follows the language of the query. Same data as search_listings, in the standard search/fetch form used by research and citation clients. Use when: the caller only has a free-text query ("2+1 apartment in Kyrenia under 150000 pounds", "EVL-100464"). Don't use for: structured filters, paging or another answer language: use search_listings.

Input Schema

NameRequiredDescriptionDefault
queryYesFree-text property search query

Output Schema

NameRequiredDescriptionDefault
codeNoPresent on a soft result (INVALID_LOCATION, OUT_OF_SCOPE, FX_UNAVAILABLE, ...).
queryNoThe query as read (cleaned, bounded).
shownNoListings in this response.
splitNo
totalNoPublic listings matching the filters, summed over the groups.
groupsNoOne group per transaction: two (sale, rent) when no transaction was given.
issuesNo
localeNo
lookupNoPresent for an explicit listing number ("EVL-100464").
assumedNoWhat had to be assumed to make a constraint a filter (a currency, a band, a period).
fxRatesNo
messageNoThe reason, in the answer language, when there is nothing to list (content[0].text stays the connector JSON).
resultsYes
criteriaNoEverything the sentence was understood as, with the words each came from.
listingsNo
warningsNo
dataSourceNo
priceRangeNo
unresolvedNoWords that did NOT become a filter, with the reason.
placesReadAsNo
totalMatchedNoThe same number as `total` (the v2 name).
contentLocaleNoThe language the listing pages (links, descriptions) resolved to: `locale` when every shown listing has a page in it, the fallback (Turkish) when none does, null when they differ (each card has its own).
appliedFiltersNoWhat the database was really asked, in the query parameter names (place names as resolved). Only the filters that were applied are present.
clarificationsNoQuestions to ask the user instead of guessing.
localeFallbackNoTrue when a listing link or description is in another language because it has no translation in `locale`.
unappliedFiltersNoConstraints that were NOT applied (an amenity that cannot be filtered on, text the parser could not read). The listings shown may not honour them.
impliedTransactionNoPresent when no transaction was sent and the search was limited to one because of the filters.
nearbyAlternativesNoOnly when nothing matched: ONE relaxation (district dropped, else budget + 15 %), at most 5 listings.
transactionAssumptionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedOutput schema / properties / listings / items / properties / areaLabel
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / areaText
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / areaLabel
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / areaText
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  2. Changed2 schema fields changed
    • addedOutput schema / properties / listings / items / properties / areaBasis
      Added value: +{
      +  "enum": [
      +    "net",
      +    "gross",
      +    null
      +  ]
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / areaBasis
      Added value: +{
      +  "enum": [
      +    "net",
      +    "gross",
      +    null
      +  ]
      +}
  3. Changed1 schema field changed
    • addedOutput schema / properties / priceRange
      Added value: +{
      +  "properties": {
      +    "currency": {
      +      "type": "string"
      +    },
      +    "max": {
      +      "type": "number"
      +    },
      +    "min": {
      +      "type": "number"
      +    },
      +    "period": {
      +      "type": "string"
      +    },
      +    "scope": {
      +      "type": "string"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  4. Changed2 schema fields changed
    • addedOutput schema / properties / listings / items / properties / matchedFeatures
      Added value: +{
      +  "description": "The requested amenities this listing has, in request order (canonical keys); empty when none were requested.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / matchedFeatures
      Added value: +{
      +  "description": "The requested amenities this listing has, in request order (canonical keys); empty when none were requested.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  5. Changed136 schema fields changed
    • addedOutput schema / properties / appliedFilters / description
      Added value: +"What the database was really asked, in the query parameter names (place names as resolved). Only the filters that were applied are present."
    • addedOutput schema / properties / appliedFilters / properties / areaMax
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / appliedFilters / properties / areaMin
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / appliedFilters / properties / availableNow
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / appliedFilters / properties / bathroomsMin
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / appliedFilters / properties / bbox
      Added value: +{
      +  "properties": {
      +    "east": {
      +      "type": "number"
      +    },
      +    "north": {
      +      "type": "number"
      +    },
      +    "south": {
      +      "type": "number"
      +    },
      +    "west": {
      +      "type": "number"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / appliedFilters / properties / bedrooms / properties
      Added value: +{
      +  "exact": {
      +    "type": "number"
      +  },
      +  "max": {
      +    "type": "number"
      +  },
      +  "min": {
      +    "type": "number"
      +  }
      +}
    • changedOutput schema / properties / appliedFilters / properties / bedrooms / type
      Previous value: -"number"New value: +"object"
    • addedOutput schema / properties / appliedFilters / properties / billsIncluded
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / appliedFilters / properties / city / items
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / properties / appliedFilters / properties / city / type
      Previous value: -"string"New value: +"array"
    • addedOutput schema / properties / appliedFilters / properties / contractType
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / appliedFilters / properties / currency
      Added value: +{
      +  "enum": [
      +    "GBP",
      +    "EUR",
      +    "USD",
      +    "TRY"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / appliedFilters / properties / district / items
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / properties / appliedFilters / properties / district / type
      Previous value: -"string"New value: +"array"
    • removedOutput schema / properties / appliedFilters / properties / elevator
      Removed value: -{
      -  "type": "boolean"
      -}
    • addedOutput schema / properties / appliedFilters / properties / features
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / appliedFilters / properties / garden
      Removed value: -{
      -  "type": "boolean"
      -}
    • addedOutput schema / properties / appliedFilters / properties / landAreaMax
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / appliedFilters / properties / landAreaMin
      Added value: +{
      +  "type": "number"
      +}
    • removedOutput schema / properties / appliedFilters / properties / maxPrice
      Removed value: -{
      -  "type": "number"
      -}
    • removedOutput schema / properties / appliedFilters / properties / minPrice
      Removed value: -{
      -  "type": "number"
      -}
    • addedOutput schema / properties / appliedFilters / properties / nearUniversity
      Added value: +{
      +  "properties": {
      +    "code": {
      +      "type": "string"
      +    },
      +    "maxMeters": {
      +      "type": "number"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / appliedFilters / properties / noDeposit
      Added value: +{
      +  "type": "boolean"
      +}
    • removedOutput schema / properties / appliedFilters / properties / parking
      Removed value: -{
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / appliedFilters / properties / pool
      Removed value: -{
      -  "type": "boolean"
      -}
    • addedOutput schema / properties / appliedFilters / properties / priceMax
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / appliedFilters / properties / priceMin
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / appliedFilters / properties / propertyType / items
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / properties / appliedFilters / properties / propertyType / type
      Previous value: -"string"New value: +"array"
    • removedOutput schema / properties / appliedFilters / properties / seaView
      Removed value: -{
      -  "type": "boolean"
      -}
    • addedOutput schema / properties / appliedFilters / properties / sort
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / appliedFilters / properties / transaction
      Added value: +{
      +  "enum": [
      +    "sale",
      +    "rent"
      +  ],
      +  "type": "string"
      +}
    • removedOutput schema / properties / appliedFilters / properties / type
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / assumed
      Added value: +{
      +  "description": "What had to be assumed to make a constraint a filter (a currency, a band, a period).",
      +  "items": {
      +    "properties": {
      +      "assumed": {
      +        "additionalProperties": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "kind": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "assumed"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / clarifications
      Added value: +{
      +  "description": "Questions to ask the user instead of guessing.",
      +  "items": {
      +    "properties": {
      +      "code": {
      +        "type": "string"
      +      },
      +      "options": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "question": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "code",
      +      "question"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / code
      Added value: +{
      +  "description": "Present on a soft result (INVALID_LOCATION, OUT_OF_SCOPE, FX_UNAVAILABLE, ...).",
      +  "type": "string"
      +}
    • addedOutput schema / properties / contentLocale
      Added value: +{
      +  "description": "The language the listing pages (links, descriptions) resolved to: `locale` when every shown listing has a page in it, the fallback (Turkish) when none does, null when they differ (each card has its own).",
      +  "enum": [
      +    "tr",
      +    "en",
      +    "ru",
      +    "de",
      +    "ar",
      +    null
      +  ],
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / criteria / description
      Added value: +"Everything the sentence was understood as, with the words each came from."
    • addedOutput schema / properties / criteria / items / properties / assumed
      Added value: +{
      +  "additionalProperties": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • removedOutput schema / properties / criteria / items / properties / key
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / criteria / items / properties / kind
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / criteria / items / properties / note
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / criteria / items / properties / state
      Removed value: -{
      -  "enum": [
      -    "applied",
      -    "unresolved",
      -    "not_supported"
      -  ],
      -  "type": "string"
      -}
    • addedOutput schema / properties / criteria / items / properties / text
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / criteria / items / properties / value / type
      Removed value: -"string"
    • changedOutput schema / properties / criteria / items / required
      Previous value: -[
      -  "key",
      -  "value",
      -  "state"
      -]New value: +[
      +  "kind",
      +  "text"
      +]
    • addedOutput schema / properties / dataSource
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / fxRates / properties / isFallback / enum
      Added value: +[
      +  false
      +]
    • changedOutput schema / properties / fxRates / properties / source / enum
      Previous value: -[
      -  "database",
      -  "fallback"
      -]New value: +[
      +  "database"
      +]
    • addedOutput schema / properties / groups
      Added value: +{
      +  "description": "One group per transaction: two (sale, rent) when no transaction was given.",
      +  "items": {
      +    "properties": {
      +      "nextCursor": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "pageable": {
      +        "type": "boolean"
      +      },
      +      "shown": {
      +        "type": "number"
      +      },
      +      "total": {
      +        "type": "number"
      +      },
      +      "transaction": {
      +        "enum": [
      +          "sale",
      +          "rent"
      +        ],
      +        "type": "string"
      +      },
      +      "transactionImplied": {
      +        "description": "True when the transaction was implied by the filters (a rental-only fact), not sent: the cursor then carries it.",
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "transaction",
      +      "total",
      +      "shown",
      +      "nextCursor",
      +      "pageable"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / impliedTransaction
      Added value: +{
      +  "description": "Present when no transaction was sent and the search was limited to one because of the filters.",
      +  "properties": {
      +    "because": {
      +      "type": "string"
      +    },
      +    "value": {
      +      "enum": [
      +        "sale",
      +        "rent"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "value",
      +    "because"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / issues
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "allowedValues": {
      +        "items": {
      +          "type": [
      +            "string",
      +            "number"
      +          ]
      +        },
      +        "type": "array"
      +      },
      +      "code": {
      +        "type": "string"
      +      },
      +      "field": {
      +        "type": "string"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "suggestion": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "code",
      +      "field",
      +      "message"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / listings / items / properties / areaSuspect
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / listings / items / properties / bathrooms
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / listings / items / properties / city / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / listings / items / properties / cityLabel
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / contentLocale
      Added value: +{
      +  "enum": [
      +    "tr",
      +    "en",
      +    "ru",
      +    "de",
      +    "ar"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / listings / items / properties / currency / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / listings / items / properties / dataQuality
      Added value: +{
      +  "properties": {
      +    "areaSuspect": {
      +      "type": "boolean"
      +    },
      +    "flags": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "priceOutlier": {
      +      "type": "boolean"
      +    },
      +    "titleRoomMismatch": {
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "flags",
      +    "priceOutlier",
      +    "areaSuspect",
      +    "titleRoomMismatch"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / listings / items / properties / district / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / listings / items / properties / featureCount
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / listings / items / properties / features
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "key": {
      +        "type": "string"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "source": {
      +        "enum": [
      +          "column",
      +          "label"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "key",
      +      "label",
      +      "source"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / listings / items / properties / furnished
      Added value: +{
      +  "enum": [
      +    "yes",
      +    "no",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / listings / items / properties / isStudio
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / listings / items / properties / listedAt
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / listingRef
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / localeFallback
      Added value: +{
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / listings / items / properties / locationPrecision / enum
      Previous value: -[
      -  "exact",
      -  "district",
      -  "city"
      -]New value: +[
      +  "approximate_grid",
      +  "district",
      +  "city",
      +  "unmapped",
      +  null
      +]
    • changedOutput schema / properties / listings / items / properties / locationPrecision / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / listings / items / properties / notes
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / listings / items / properties / officeName
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / photoCount
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / listings / items / properties / plotM2
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / listings / items / properties / priceGbp / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • addedOutput schema / properties / listings / items / properties / pricePerSqmGbp
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / propertyTypeLabel
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / rentPeriod
      Added value: +{
      +  "enum": [
      +    "month",
      +    null
      +  ],
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / roomLabel
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / titleSource
      Added value: +{
      +  "enum": [
      +    "listing",
      +    "generated"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / listings / items / properties / transaction
      Added value: +{
      +  "enum": [
      +    "sale",
      +    "rent"
      +  ],
      +  "type": "string"
      +}
    • removedOutput schema / properties / listings / items / properties / type
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / listings / items / properties / updatedAt
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / listings / items / required
      Previous value: -[
      -  "id",
      -  "title",
      -  "city",
      -  "district",
      -  "price",
      -  "priceGbp",
      -  "currency",
      -  "type",
      -  "url"
      -]New value: +[
      +  "id",
      +  "listingNumber",
      +  "listingRef",
      +  "transaction",
      +  "title",
      +  "url",
      +  "contentLocale",
      +  "localeFallback",
      +  "price",
      +  "currency",
      +  "priceGbp",
      +  "city",
      +  "district",
      +  "propertyType",
      +  "bedrooms",
      +  "areaSqm",
      +  "features",
      +  "dataQuality"
      +]
    • addedOutput schema / properties / locale
      Added value: +{
      +  "enum": [
      +    "tr",
      +    "en",
      +    "ru",
      +    "de",
      +    "ar"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / localeFallback
      Added value: +{
      +  "description": "True when a listing link or description is in another language because it has no translation in `locale`.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / lookup
      Added value: +{
      +  "description": "Present for an explicit listing number (\"EVL-100464\").",
      +  "properties": {
      +    "found": {
      +      "type": "boolean"
      +    },
      +    "listingNumber": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / message
      Added value: +{
      +  "description": "The reason, in the answer language, when there is nothing to list (content[0].text stays the connector JSON).",
      +  "type": "string"
      +}
    • addedOutput schema / properties / nearbyAlternatives / description
      Added value: +"Only when nothing matched: ONE relaxation (district dropped, else budget + 15 %), at most 5 listings."
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / areaSuspect
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / bathrooms
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / city / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / cityLabel
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / contentLocale
      Added value: +{
      +  "enum": [
      +    "tr",
      +    "en",
      +    "ru",
      +    "de",
      +    "ar"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / currency / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / dataQuality
      Added value: +{
      +  "properties": {
      +    "areaSuspect": {
      +      "type": "boolean"
      +    },
      +    "flags": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "priceOutlier": {
      +      "type": "boolean"
      +    },
      +    "titleRoomMismatch": {
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "flags",
      +    "priceOutlier",
      +    "areaSuspect",
      +    "titleRoomMismatch"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / district / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / featureCount
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / features
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "key": {
      +        "type": "string"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "source": {
      +        "enum": [
      +          "column",
      +          "label"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "key",
      +      "label",
      +      "source"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / furnished
      Added value: +{
      +  "enum": [
      +    "yes",
      +    "no",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / isStudio
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / listedAt
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / listingRef
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / localeFallback
      Added value: +{
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / locationPrecision / enum
      Previous value: -[
      -  "exact",
      -  "district",
      -  "city"
      -]New value: +[
      +  "approximate_grid",
      +  "district",
      +  "city",
      +  "unmapped",
      +  null
      +]
    • changedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / locationPrecision / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / notes
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / officeName
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / photoCount
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / plotM2
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / priceGbp / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / pricePerSqmGbp
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / propertyTypeLabel
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / rentPeriod
      Added value: +{
      +  "enum": [
      +    "month",
      +    null
      +  ],
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / roomLabel
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / titleSource
      Added value: +{
      +  "enum": [
      +    "listing",
      +    "generated"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / transaction
      Added value: +{
      +  "enum": [
      +    "sale",
      +    "rent"
      +  ],
      +  "type": "string"
      +}
    • removedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / type
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties / updatedAt
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / nearbyAlternatives / properties / listings / items / required
      Previous value: -[
      -  "id",
      -  "title",
      -  "city",
      -  "district",
      -  "price",
      -  "priceGbp",
      -  "currency",
      -  "type",
      -  "url"
      -]New value: +[
      +  "id",
      +  "listingNumber",
      +  "listingRef",
      +  "transaction",
      +  "title",
      +  "url",
      +  "contentLocale",
      +  "localeFallback",
      +  "price",
      +  "currency",
      +  "priceGbp",
      +  "city",
      +  "district",
      +  "propertyType",
      +  "bedrooms",
      +  "areaSqm",
      +  "features",
      +  "dataQuality"
      +]
    • addedOutput schema / properties / nearbyAlternatives / properties / priceMax
      Added value: +{
      +  "type": "number"
      +}
    • removedOutput schema / properties / outOfScope
      Removed value: -{
      -  "type": "boolean"
      -}
    • addedOutput schema / properties / placesReadAs
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "as": {
      +        "type": "string"
      +      },
      +      "input": {
      +        "type": "string"
      +      },
      +      "match": {
      +        "enum": [
      +          "alias",
      +          "fuzzy"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / query
      Added value: +{
      +  "description": "The query as read (cleaned, bounded).",
      +  "type": "string"
      +}
    • addedOutput schema / properties / results / items / required
      Added value: +[
      +  "id",
      +  "title",
      +  "url"
      +]
    • addedOutput schema / properties / shown
      Added value: +{
      +  "description": "Listings in this response.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / split
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / total
      Added value: +{
      +  "description": "Public listings matching the filters, summed over the groups.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / totalMatched
      Added value: +{
      +  "description": "The same number as `total` (the v2 name).",
      +  "type": "number"
      +}
    • addedOutput schema / properties / transactionAssumption
      Added value: +{
      +  "properties": {
      +    "reason": {
      +      "type": "string"
      +    },
      +    "value": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / unappliedFilters
      Added value: +{
      +  "description": "Constraints that were NOT applied (an amenity that cannot be filtered on, text the parser could not read). The listings shown may not honour them.",
      +  "items": {
      +    "properties": {
      +      "field": {
      +        "type": "string"
      +      },
      +      "input": {
      +        "type": "string"
      +      },
      +      "reason": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "field",
      +      "input",
      +      "reason"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / unresolved / description
      Added value: +"Words that did NOT become a filter, with the reason."
    • addedOutput schema / properties / unresolved / items / properties
      Added value: +{
      +  "reason": {
      +    "type": "string"
      +  },
      +  "text": {
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / properties / unresolved / items / required
      Added value: +[
      +  "text",
      +  "reason"
      +]
    • changedOutput schema / properties / unresolved / items / type
      Previous value: -"string"New value: +"object"
    • addedOutput schema / properties / warnings
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "code": {
      +        "type": "string"
      +      },
      +      "field": {
      +        "type": "string"
      +      },
      +      "message": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "code",
      +      "message"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  6. Changed7 schema fields changed
    • addedOutput schema / properties / appliedFilters / additionalProperties
      Added value: +false
    • addedOutput schema / properties / appliedFilters / properties
      Added value: +{
      +  "bedrooms": {
      +    "type": "number"
      +  },
      +  "city": {
      +    "type": "string"
      +  },
      +  "district": {
      +    "type": "string"
      +  },
      +  "elevator": {
      +    "type": "boolean"
      +  },
      +  "furnished": {
      +    "type": "boolean"
      +  },
      +  "garden": {
      +    "type": "boolean"
      +  },
      +  "maxPrice": {
      +    "type": "number"
      +  },
      +  "minPrice": {
      +    "type": "number"
      +  },
      +  "parking": {
      +    "type": "boolean"
      +  },
      +  "pool": {
      +    "type": "boolean"
      +  },
      +  "propertyType": {
      +    "type": "string"
      +  },
      +  "seaView": {
      +    "type": "boolean"
      +  },
      +  "type": {
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / properties / fxRates / properties
      Added value: +{
      +  "base": {
      +    "enum": [
      +      "GBP"
      +    ],
      +    "type": "string"
      +  },
      +  "isFallback": {
      +    "type": "boolean"
      +  },
      +  "rates": {
      +    "properties": {
      +      "EUR": {
      +        "type": "number"
      +      },
      +      "TRY": {
      +        "type": "number"
      +      },
      +      "USD": {
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "EUR",
      +      "USD",
      +      "TRY"
      +    ],
      +    "type": "object"
      +  },
      +  "source": {
      +    "enum": [
      +      "database",
      +      "fallback"
      +    ],
      +    "type": "string"
      +  },
      +  "updatedAt": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  }
      +}
    • addedOutput schema / properties / fxRates / required
      Added value: +[
      +  "base",
      +  "rates",
      +  "source",
      +  "updatedAt",
      +  "isFallback"
      +]
    • addedOutput schema / properties / listings / items / required
      Added value: +[
      +  "id",
      +  "title",
      +  "city",
      +  "district",
      +  "price",
      +  "priceGbp",
      +  "currency",
      +  "type",
      +  "url"
      +]
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / properties
      Added value: +{
      +  "areaSqm": {
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  },
      +  "bedrooms": {
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  },
      +  "city": {
      +    "type": "string"
      +  },
      +  "coverImageUrl": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "currency": {
      +    "type": "string"
      +  },
      +  "district": {
      +    "type": "string"
      +  },
      +  "id": {
      +    "type": "string"
      +  },
      +  "listingNumber": {
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  },
      +  "locationPrecision": {
      +    "enum": [
      +      "exact",
      +      "district",
      +      "city"
      +    ],
      +    "type": "string"
      +  },
      +  "monthlyRentGbp": {
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  },
      +  "price": {
      +    "type": "number"
      +  },
      +  "priceGbp": {
      +    "type": "number"
      +  },
      +  "propertyType": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "title": {
      +    "type": "string"
      +  },
      +  "type": {
      +    "type": "string"
      +  },
      +  "url": {
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / properties / nearbyAlternatives / properties / listings / items / required
      Added value: +[
      +  "id",
      +  "title",
      +  "city",
      +  "district",
      +  "price",
      +  "priceGbp",
      +  "currency",
      +  "type",
      +  "url"
      +]
  7. Changed5 schema fields changed
    • addedOutput schema / properties / criteria
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "key": {
      +        "type": "string"
      +      },
      +      "note": {
      +        "type": "string"
      +      },
      +      "state": {
      +        "enum": [
      +          "applied",
      +          "unresolved",
      +          "not_supported"
      +        ],
      +        "type": "string"
      +      },
      +      "value": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "key",
      +      "value",
      +      "state"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / listings / items / properties / locationPrecision
      Added value: +{
      +  "enum": [
      +    "exact",
      +    "district",
      +    "city"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / listings / items / properties / monthlyRentGbp
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / propertyType
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / nearbyAlternatives
      Added value: +{
      +  "properties": {
      +    "listings": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "relaxed": {
      +      "enum": [
      +        "district",
      +        "maxPrice"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "relaxed",
      +    "listings"
      +  ],
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  8. Changed3 schema fields changed
    • addedOutput schema / properties / outOfScope
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / unresolved
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / required
      Added value: +[
      +  "results"
      +]
  9. Changed1 schema field changed
    • addedOutput schema / properties / fxRates
      Added value: +{
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  10. Changed2 schema fields changed
    • addedOutput schema / properties / appliedFilters
      Added value: +{
      +  "type": "object"
      +}
    • addedOutput schema / properties / listings
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "areaSqm": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "bedrooms": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "city": {
      +        "type": "string"
      +      },
      +      "coverImageUrl": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "currency": {
      +        "type": "string"
      +      },
      +      "district": {
      +        "type": "string"
      +      },
      +      "id": {
      +        "type": "string"
      +      },
      +      "listingNumber": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "price": {
      +        "type": "number"
      +      },
      +      "priceGbp": {
      +        "type": "number"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "type": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  11. Added

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description's added value is its disclosure of supported languages, answer-language behavior, ordering (newest first), sale/rent grouping, and return shape (id/title/url for the fetch tool). That is substantive beyond the annotations, though permission or rate-limit behavior and empty-result handling are not mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The critical routing instruction is front-loaded and every sentence carries information, but the alternative tool (search_listings) is named three times and the free-text point is restated, so the description is denser and more repetitive than it needs to be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter search tool with full schema coverage, annotations, and an output schema, the description covers routing, languages, ordering, grouping and return shape. Nothing an agent needs in order to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns an extra point by clarifying that the query is free-text, valid in five languages, and can be either natural language or an ID like 'EVL-100464', which meaningfully widens the agent's understanding of the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (search live KKTC/TRNC property listings on Evlek) and explicitly distinguishes itself from the sibling search_listings by framing itself as the research/citation form. An agent can tell the two apart without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit 'Use when' conditions with concrete query examples and an explicit 'Don't use for' clause naming structured filters, paging and answer-language control as reasons to pick search_listings. Both the positive and negative routing are spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.