Skip to main content
Glama

Evlek — Northern Cyprus Property MCP Server

Fetch full Evlek listing detail

fetch
Read-onlyIdempotent

Fetch the full detail of one Evlek listing: title, price, location, rooms, areas, amenities, data-quality notes and the canonical link. The id is the listing id (UUID) from a search result, a listing number such as EVL-100464, or an evlek.app listing link; the answer language follows the link (English otherwise). A listing that is not available (it does not exist, is not public, or was removed) always gets the same answer. Same data as get_listing, in the standard search/fetch form used by research and citation clients. Use when: an id from search is known. Don't use for: discovery (use search first) or another answer language (use get_listing).

Input Schema

NameRequiredDescriptionDefault
idYesEvlek listing id (UUID) from search, a listing number such as EVL-100464, or an evlek.app listing link

Output Schema

NameRequiredDescriptionDefault
idNo
urlNo
codeNoNOT_FOUND (found is false) or SEARCH_BACKEND_UNAVAILABLE (retryable).
textNo
foundNo
titleNo
localeNo
listingNoThe listing card (same shape as search_listings).
metadataNoListing facts (price, rooms, area, features, data quality); no contact data.
photoUrlsNo
requestedNoThe id as the caller sent it (cleaned, at most 200 characters).
retryableNo
photoCountNo
contentLocaleNo
coverImageUrlNo
localeFallbackNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedOutput schema / properties / listing / properties / areaLabel
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / listing / properties / areaText
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / metadata / properties / area / properties / basis / description
      Previous value: -"'gross' when closedM2 is a gross figure (not the indoor area; no price per m² is derived from it), 'net' otherwise, null when unknown."New value: +"'gross' when closedM2 is a gross figure (not the indoor area; no price per m² is derived from it); 'net' only when the publisher stated the area is net (Evlek does not measure it); null when the basis is not stated, or there is no built area."
    • addedOutput schema / properties / metadata / properties / area / properties / label
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / metadata / properties / area / properties / text
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  2. Changed3 schema fields changed
    • addedOutput schema / properties / listing / properties / areaBasis
      Added value: +{
      +  "enum": [
      +    "net",
      +    "gross",
      +    null
      +  ]
      +}
    • addedOutput schema / properties / metadata / properties / area / properties / basis
      Added value: +{
      +  "description": "'gross' when closedM2 is a gross figure (not the indoor area; no price per m² is derived from it), 'net' otherwise, null when unknown.",
      +  "enum": [
      +    "net",
      +    "gross",
      +    null
      +  ],
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / metadata / properties / price / properties / perSqmGbp / description
      Added value: +"GBP per m², by the listing page's own rule: null whenever the built area is flagged suspect, withheld, or gross (areaBasis 'gross'), and on land below 150 m²."
  3. Changed1 schema field changed
    • addedOutput schema / properties / listing / 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"
      +}
  4. Changed33 schema fields changed
    • changedInput schema / properties / id / description
      Previous value: -"Evlek listing id (UUID) from search"New value: +"Evlek listing id (UUID) from search, a listing number such as EVL-100464, or an evlek.app listing link"
    • addedOutput schema / properties / code
      Added value: +{
      +  "description": "NOT_FOUND (found is false) or SEARCH_BACKEND_UNAVAILABLE (retryable).",
      +  "type": "string"
      +}
    • addedOutput schema / properties / contentLocale
      Added value: +{
      +  "enum": [
      +    "tr",
      +    "en",
      +    "ru",
      +    "de",
      +    "ar"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / found
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / listing
      Added value: +{
      +  "description": "The listing card (same shape as search_listings).",
      +  "properties": {
      +    "areaSqm": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "areaSuspect": {
      +      "type": "boolean"
      +    },
      +    "bathrooms": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "bedrooms": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "city": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "cityLabel": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "contentLocale": {
      +      "enum": [
      +        "tr",
      +        "en",
      +        "ru",
      +        "de",
      +        "ar"
      +      ],
      +      "type": "string"
      +    },
      +    "coverImageUrl": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "currency": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "dataQuality": {
      +      "properties": {
      +        "areaSuspect": {
      +          "type": "boolean"
      +        },
      +        "flags": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "priceOutlier": {
      +          "type": "boolean"
      +        },
      +        "titleRoomMismatch": {
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "flags",
      +        "priceOutlier",
      +        "areaSuspect",
      +        "titleRoomMismatch"
      +      ],
      +      "type": "object"
      +    },
      +    "district": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "featureCount": {
      +      "type": "number"
      +    },
      +    "features": {
      +      "items": {
      +        "properties": {
      +          "key": {
      +            "type": "string"
      +          },
      +          "label": {
      +            "type": "string"
      +          },
      +          "source": {
      +            "enum": [
      +              "column",
      +              "label"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "key",
      +          "label",
      +          "source"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "furnished": {
      +      "enum": [
      +        "yes",
      +        "no",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    },
      +    "id": {
      +      "type": "string"
      +    },
      +    "isStudio": {
      +      "type": "boolean"
      +    },
      +    "listedAt": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "listingNumber": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "listingRef": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "localeFallback": {
      +      "type": "boolean"
      +    },
      +    "locationPrecision": {
      +      "enum": [
      +        "approximate_grid",
      +        "district",
      +        "city",
      +        "unmapped",
      +        null
      +      ],
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "monthlyRentGbp": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "notes": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "officeName": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "photoCount": {
      +      "type": "number"
      +    },
      +    "plotM2": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "price": {
      +      "type": "number"
      +    },
      +    "priceGbp": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "pricePerSqmGbp": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "propertyType": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "propertyTypeLabel": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "rentPeriod": {
      +      "enum": [
      +        "month",
      +        null
      +      ],
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "roomLabel": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "title": {
      +      "type": "string"
      +    },
      +    "titleSource": {
      +      "enum": [
      +        "listing",
      +        "generated"
      +      ],
      +      "type": "string"
      +    },
      +    "transaction": {
      +      "enum": [
      +        "sale",
      +        "rent"
      +      ],
      +      "type": "string"
      +    },
      +    "updatedAt": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "url": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "listingNumber",
      +    "listingRef",
      +    "transaction",
      +    "title",
      +    "url",
      +    "contentLocale",
      +    "localeFallback",
      +    "price",
      +    "currency",
      +    "priceGbp",
      +    "city",
      +    "district",
      +    "propertyType",
      +    "bedrooms",
      +    "areaSqm",
      +    "features",
      +    "dataQuality"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / locale
      Added value: +{
      +  "enum": [
      +    "tr",
      +    "en",
      +    "ru",
      +    "de",
      +    "ar"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / localeFallback
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / metadata / description
      Added value: +"Listing facts (price, rooms, area, features, data quality); no contact data."
    • addedOutput schema / properties / metadata / properties / area
      Added value: +{
      +  "properties": {
      +    "closedM2": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "plotM2": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "reasons": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "suspect": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • removedOutput schema / properties / metadata / properties / areaSqm
      Removed value: -{
      -  "type": [
      -    "number",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / metadata / properties / bedrooms
      Removed value: -{
      -  "type": [
      -    "number",
      -    "null"
      -  ]
      -}
    • addedOutput schema / properties / metadata / properties / code
      Added value: +{
      +  "description": "NOT_FOUND or SEARCH_BACKEND_UNAVAILABLE, when there is no listing to describe.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / metadata / properties / contentLocale
      Added value: +{
      +  "enum": [
      +    "tr",
      +    "en",
      +    "ru",
      +    "de",
      +    "ar"
      +  ],
      +  "type": "string"
      +}
    • removedOutput schema / properties / metadata / properties / currency
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • addedOutput schema / properties / metadata / properties / dataQuality
      Added value: +{
      +  "properties": {
      +    "areaSuspect": {
      +      "type": "boolean"
      +    },
      +    "flags": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "priceOutlier": {
      +      "type": "boolean"
      +    },
      +    "titleRoomMismatch": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / metadata / properties / features
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "key": {
      +        "type": "string"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "source": {
      +        "enum": [
      +          "column",
      +          "label"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / metadata / properties / listingRef
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / metadata / properties / localeFallback
      Added value: +{
      +  "type": "boolean"
      +}
    • removedOutput schema / properties / metadata / properties / monthlyRentGbp
      Removed value: -{
      -  "type": [
      -    "number",
      -    "null"
      -  ]
      -}
    • addedOutput schema / properties / metadata / properties / price
      Added value: +{
      +  "properties": {
      +    "amount": {
      +      "type": "number"
      +    },
      +    "currency": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "gbp": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "perSqmGbp": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "rentPeriod": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
    • removedOutput schema / properties / metadata / properties / priceGBP
      Removed value: -{
      -  "type": [
      -    "number",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / metadata / properties / pricePerSqmGBP
      Removed value: -{
      -  "type": [
      -    "number",
      -    "null"
      -  ]
      -}
    • addedOutput schema / properties / metadata / properties / propertyType
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / metadata / properties / rooms
      Added value: +{
      +  "properties": {
      +    "bedrooms": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "isStudio": {
      +      "type": "boolean"
      +    },
      +    "label": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "livingRooms": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / metadata / properties / transaction
      Added value: +{
      +  "enum": [
      +    "sale",
      +    "rent"
      +  ],
      +  "type": "string"
      +}
    • removedOutput schema / properties / metadata / properties / type
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / metadata / required
      Removed value: -[
      -  "city",
      -  "district",
      -  "type",
      -  "bedrooms",
      -  "areaSqm",
      -  "priceGBP",
      -  "pricePerSqmGBP",
      -  "monthlyRentGbp",
      -  "currency",
      -  "listedAt",
      -  "locationPrecision"
      -]
    • addedOutput schema / properties / photoCount
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / photoUrls
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / photos
      Removed value: -{
      -  "items": {
      -    "properties": {
      -      "caption": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "tags": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "url": {
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • addedOutput schema / properties / requested
      Added value: +{
      +  "description": "The id as the caller sent it (cleaned, at most 200 characters).",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / retryable
      Added value: +{
      +  "type": "boolean"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "id",
      -  "title",
      -  "text",
      -  "url"
      -]
  5. Changed2 schema fields changed
    • addedOutput schema / properties / metadata / properties
      Added value: +{
      +  "areaSqm": {
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  },
      +  "bedrooms": {
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  },
      +  "city": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "currency": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "district": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "listedAt": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "locationPrecision": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "monthlyRentGbp": {
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  },
      +  "priceGBP": {
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  },
      +  "pricePerSqmGBP": {
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  },
      +  "type": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  }
      +}
    • addedOutput schema / properties / metadata / required
      Added value: +[
      +  "city",
      +  "district",
      +  "type",
      +  "bedrooms",
      +  "areaSqm",
      +  "priceGBP",
      +  "pricePerSqmGBP",
      +  "monthlyRentGbp",
      +  "currency",
      +  "listedAt",
      +  "locationPrecision"
      +]
  6. Changed1 schema field changed
    • addedOutput schema / required
      Added value: +[
      +  "id",
      +  "title",
      +  "text",
      +  "url"
      +]
  7. Changed2 schema fields changed
    • addedOutput schema / properties / coverImageUrl
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / photos
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "caption": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "tags": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "url": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  8. Added

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description still adds real behavioral context beyond them: unavailable listings (missing, non-public, removed) always return the same answer, and the response language follows the link. It doesn't cover auth, rate limits or pagination, which keeps it short of a 5.

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?

It front-loads what is returned and then handles id formats, language, unavailability and routing in compact clauses; every sentence carries information. It is dense and slightly run-on in the first two sentences, which costs a point but not usability.

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?

With a single required parameter, full schema coverage and an output schema, the description needn't explain returns, yet it still covers the edge cases an agent would otherwise get wrong: id variants, answer language, and uniform behavior for unavailable listings. An agent has everything needed to invoke it correctly.

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

Parameters3/5

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

Schema coverage is 100% and the schema already documents the id formats (UUID, EVL-100464, evlek.app link) almost verbatim. The description's only marginal addition is that the language of the answer follows the link, which is useful but thin; the baseline of 3 applies when the schema does the heavy lifting.

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?

The description states a specific verb and resource ('Fetch the full detail of one Evlek listing') and enumerates the returned fields, so the tool's function is unambiguous. It also explicitly differentiates itself from two siblings ('Same data as get_listing', 'use search first'), which lets an agent choose without opening any 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?

It gives an explicit 'Use when: an id from search is known' and an explicit 'Don't use for: discovery (use search first) or another answer language (use get_listing)', naming the exact alternatives. Nothing about tool selection is left to inference.

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.