Skip to main content
Glama
Evlek

Evlek — Northern Cyprus Property MCP Server

Official

Get Evlek Listing by Number

get_listing_by_number
Read-only

Look up a property listing by its Evlek public number (e.g., EVL-123456) and retrieve the complete listing details.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
listingNumberYesEvlek listing number, e.g. "EVL-123456", "123456", or the bare number 123456.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNo
urlNo
cityNo
typeNo
foundYes
priceNo
titleNo
photosNo
areaSqmNo
fxRatesNo
bedroomsNo
currencyNo
districtNo
factTypeNo
featuresNo
listedAtNo
priceGbpNo
amenitiesNo
bathroomsNo
furnishedNo
dataSourceNo
isEstimateNo
photoCountNo
photosShownNo
coverImageUrlNo
listingNumberNo
monthlyRentGbpNo
pricePerSqmGBPNo
virtualStagingNo
photosTruncatedNo
locationPrecisionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed16 schema fields changedv2.1.0
    • addedInput schema / properties / listingNumber
      Added value: +{
      +  "description": "Evlek listing number, e.g. \"EVL-123456\", \"123456\", or the bare number 123456.",
      +  "type": [
      +    "string",
      +    "number"
      +  ]
      +}
    • removedInput schema / properties / listing_number
      Removed value: -{
      -  "description": "Evlek listing number, e.g. \"EVL-123456\" or \"123456\".",
      -  "type": "string"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "listing_number"
      -]New value: +[
      +  "listingNumber"
      +]
    • addedOutput schema / properties / dataSource
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / factType
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / fxRates
      Added value: +{
      +  "properties": {
      +    "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"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "base",
      +    "rates",
      +    "source",
      +    "updatedAt",
      +    "isFallback"
      +  ],
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / isEstimate
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / locationPrecision
      Added value: +{
      +  "enum": [
      +    "exact",
      +    "district",
      +    "city"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / monthlyRentGbp
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / photosShown
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / photosTruncated
      Added value: +{
      +  "type": "number"
      +}
    • removedOutput schema / properties / titleDeedBand
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / titleDeedLabel
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / titleDeedType
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • addedOutput schema / properties / virtualStaging
      Added value: +{
      +  "properties": {
      +    "available": {
      +      "type": "boolean"
      +    },
      +    "disclosure": {
      +      "type": "string"
      +    },
      +    "items": {
      +      "items": {
      +        "properties": {
      +          "afterUrl": {
      +            "type": "string"
      +          },
      +          "beforeUrl": {
      +            "type": "string"
      +          },
      +          "provenance": {
      +            "properties": {
      +              "digitalSourceType": {
      +                "type": "string"
      +              },
      +              "generatedAt": {
      +                "type": "string"
      +              },
      +              "humanReview": {
      +                "type": "string"
      +              },
      +              "kind": {
      +                "type": "string"
      +              },
      +              "model": {
      +                "type": "string"
      +              },
      +              "modelVersion": {
      +                "type": "string"
      +              },
      +              "originalRetained": {
      +                "type": "boolean"
      +              },
      +              "outputId": {
      +                "type": "string"
      +              },
      +              "outputSha256": {
      +                "type": "string"
      +              },
      +              "provider": {
      +                "type": "string"
      +              },
      +              "version": {
      +                "type": "number"
      +              },
      +              "visibleDisclosureApplied": {
      +                "type": "boolean"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "roomType": {
      +            "type": "string"
      +          },
      +          "style": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / required
      Added value: +[
      +  "found"
      +]
  2. First observedv1.6.0

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds useful behavior beyond that: it returns 'full detail — same shape as get_listing_detail' and documents the accepted legacy `listing_number` alias. No contradictions with annotations.

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

Conciseness5/5

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

Three sentences pack purpose, boundary conditions, return shape, and alias information without any filler. Key scoping information is front-loaded before the alternatives and alias notes.

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 simple read-only lookup with a single required parameter and an output schema, the description fully covers what the tool does, when to use it, what not to use it for, and the parameter alias. Nothing material is missing for correct invocation.

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 schema already documents listingNumber with examples. The description adds the legacy alias `listing_number` and clarifies the acceptable formats ('EVL-123456', '123456', or bare number), which goes beyond the schema's already-good documentation.

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 opens with a specific verb and object: 'Look up a single Evlek listing by its public listing number.' It immediately differentiates itself from get_listing_detail by contrasting public-number lookups with UUID lookups, so an agent can distinguish the two tools without inspecting schemas.

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?

Provides explicit guidance: 'Use when: a listing number is known. Don't use for: UUID lookups — use get_listing_detail.' It also covers the legacy parameter alias, which helps agents handle older call patterns correctly.

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