Skip to main content
Glama

NC Keys — Northern Cyprus property

Search property listings

search_listings
Read-onlyIdempotent

Search current property listings in Northern Cyprus. All filters are optional and accept English, Russian or Turkish spellings (e.g. region 'Kyrenia' or 'Гирне'). Returns up to limit listings (featured first, then newest by default) with a one-line summary, url and contact_url. Example: long-term rent of a 2+1 in Iskele up to £700 → deal='Rent', region='iskele', layout='2+1', price_max=700, price_period='month'.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "search_listings"
  }
}

Input Schema

NameRequiredDescriptionDefault
dealNoSale or Rent
kindNoProperty type(s), e.g. ['villa', 'house']
sortNorecommended = featured first, then newestrecommended
typeNoProperty type
limitNoHow many listings to return, 1–10
cursorNonext_cursor from a previous call, for more results
layoutNo'studio', '1+1', '2+1', '3+1', or '4+' for 4 or more bedrooms
posterNoOnly listings where the author says they are the owner / an agent / the developer
regionNogirne (Kyrenia), iskele, famagusta, lefkosha (Nicosia), guzelyurt, lefke
projectNoResidential complex, e.g. 'Caesar Resort', 'Four Seasons Life', 'royal' (all Royal complexes)
area_minNoMinimum area in m²
currencyNoCurrency of price_min/max, default GBP
featuresNoAmenities mentioned in the listing; all must match
developerNoDeveloper, e.g. 'Afik Group', 'Noyanlar'
has_photoNoOnly listings with photos
price_maxNoMaximum price in `currency`
price_minNoMinimum price in `currency`
sub_regionNoArea within a region, e.g. 'Long Beach', 'Bogaz', 'Esentepe', 'Alsancak' (see list_regions)
deposit_maxNoRent: max number of deposits; 0 = no deposit only
price_periodNomonth = monthly rent, day = daily/holiday rent, total = sale price

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / developer
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Developer, e.g. 'Afik Group', 'Noyanlar'",
      +  "title": "Developer"
      +}
    • addedInput schema / properties / project
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Residential complex, e.g. 'Caesar Resort', 'Four Seasons Life', 'royal' (all Royal complexes)",
      +  "title": "Project"
      +}
  2. Changed4 schema fields changed
    • addedInput schema / properties / deposit_max
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Rent: max number of deposits; 0 = no deposit only",
      +  "title": "Deposit Max"
      +}
    • addedInput schema / properties / features
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "enum": [
      +          "pool",
      +          "private_pool",
      +          "sea_view",
      +          "beach",
      +          "garden",
      +          "pets",
      +          "furnished",
      +          "land"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Amenities mentioned in the listing; all must match",
      +  "title": "Features"
      +}
    • addedInput schema / properties / kind
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "enum": [
      +          "apartment",
      +          "villa",
      +          "house",
      +          "townhouse",
      +          "penthouse"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Property type(s), e.g. ['villa', 'house']",
      +  "title": "Kind"
      +}
    • addedInput schema / properties / poster
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "owner",
      +        "agent",
      +        "developer"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Only listings where the author says they are the owner / an agent / the developer",
      +  "title": "Poster"
      +}
  3. First observed

TDQS

A3.9/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 needs no restating. The description adds real behavior beyond them: result ordering ('featured first, then newest by default'), the capped result count, and the presence of summary/url/contact_url. It stops short of describing cursor semantics or empty-result handling.

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?

Three sentences, front-loaded with the scope, then the filtering/return behavior, then a worked example. The example is long but demonstrates multi-field mapping that would otherwise be guesswork, so it earns its place; the prose is otherwise tight.

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

Completeness4/5

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

With 20 optional parameters, full schema coverage, an output schema and rich annotations, the definition carries only what structured fields cannot: multilingual input tolerance, default ordering, and a realistic query example. Pagination via cursor and the limit ceiling are left to the schema, which is a minor residual gap rather than a blocker.

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%, so the schema alone documents all 20 parameters and the baseline is 3. The description does add one meaningful semantic point the schema lacks — that filter values accept English, Russian or Turkish spellings (e.g. 'Kyrenia' or 'Гирне') — but most of its example simply restates enum and field values already visible in the schema.

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

Purpose4/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 ('Search current property listings') plus a geographic scope ('Northern Cyprus'). It does not explicitly name its siblings get_listing or list_regions, but the search-vs-fetch distinction is still clear from the wording.

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

Usage Guidelines4/5

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

It tells the agent that every filter is optional and gives a concrete intent-to-parameters mapping ('long-term rent of a 2+1 in Iskele up to £700' → deal, region, layout, price_max, price_period), which is genuine usage guidance. It does not say when to prefer a sibling such as get_listing for details or list_regions for area lookup.

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.

Resources