Skip to main content
Glama

NC Keys — Northern Cyprus property

Server Details

Northern Cyprus property listings for rent and sale: search by region, price, layout. Read-only.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.3/5.0

Scored across 3 tools

Disambiguation5/5

The three tools have clearly distinct purposes: filtered search across listings, retrieval of a single listing by id, and discovery of region/sub-region taxonomy. There is no overlap or ambiguous boundary between them.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern: get_listing, list_regions, search_listings. The convention is predictable and easy to parse.

Tool Count5/5

Three tools is well-scoped for a read-only property search server. Each tool serves a necessary function without redundancy, and the set stays within the typical 3-15 range.

Completeness5/5

The surface covers the core discovery lifecycle: region taxonomy, filtered listing search, and detailed single-listing retrieval. For a read-only property search domain, no obvious operation is missing.

Available Tools

3 tools
get_listingGet one listingA
Read-onlyIdempotent
Inspect

Full details of one listing by id (e.g. 'c-152' or 'b-7'): full description, photos, dates. If latest_id is set, this is an older copy of a reposted listing — use the newest one instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesListing id from search_listings, e.g. 'c-152'

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuine contextual behavior beyond that: the repost/staleness signal via latest_id and the concrete return payload (photos, dates), which an agent wouldn't infer from the annotations alone.

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?

Two sentences, front-loaded with the core purpose and followed by an edge-case warning; no filler. Slightly compressed by the parenthetical examples, but every clause earns its place.

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 read tool with an output schema, rich annotations, and a documented id format, the description covers purpose, return highlights, and the one real edge case (reposted/stale listings). Nothing needed to invoke it correctly is missing.

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 there is only one parameter whose format is already documented in the schema ('Listing id from search_listings, e.g. c-152'). The description's id examples are redundant with the schema, so baseline 3 applies.

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?

Specific verb+resource ('Full details of one listing by id') with concrete id examples and an enumeration of what's returned (description, photos, dates). An agent can distinguish this from search_listings and list_regions without opening a schema.

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?

Gives a clear conditional: if latest_id is set, the record is a stale copy of a reposted listing and the newest should be used instead. It stops short of explicitly stating the retrieval workflow (e.g. 'get ids from search_listings first'), though the schema description on `id` carries that routing.

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

list_regionsList regions and areasA
Read-onlyIdempotent
Inspect

Regions and areas of Northern Cyprus with the number of current listings (rent and sale), names in English and Russian. Use to pick region / sub_region for search_listings.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds content context (listing counts, bilingual names), but nothing about caching, ordering, or data freshness. Adequate but modest value beyond 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?

Two tight sentences with no waste. The content (what it returns) is front-loaded before the actionable routing instruction.

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?

An output schema exists, so return structure needn't be explained, and the description still summarizes the payload usefully. An agent has what it needs to call this zero-arg lookup correctly.

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?

Zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. The description's mention of returned fields is not a parameter concern.

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?

Specific verb+resource ('Regions and areas of Northern Cyprus') with scope detail (listing counts, English/Russian names). It implicitly separates itself from get_listing/search_listings by being a reference lookup, though it never names those siblings directly.

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?

Explicitly states when to use it: 'Use to pick `region` / `sub_region` for search_listings.' That routes the agent to the correct downstream tool. It stops short of stating when NOT to use it or naming other alternatives.

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

search_listingsSearch property listingsA
Read-onlyIdempotent
Inspect

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'.

ParametersJSON 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
area_minNoMinimum area in m²
currencyNoCurrency of price_min/max, default GBP
featuresNoAmenities mentioned in the listing; all must match
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

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, safe, non-open-world semantics, so the description only needs to add what annotations cannot. It does: multilingual query normalization, the default ordering ('featured first, then newest'), and the limit cap behavior are all disclosed. Pagination via cursor is only implied by the schema, not narrated.

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?

Four compact sentences: purpose first, then language/filter behavior, then return shape and ordering, then a concrete example. Nothing is redundant and every sentence carries information an agent needs given 18 optional parameters.

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 a full output schema and complete annotation coverage, the description only needs to frame the call, and it does so well. It does not explain pagination flow (cursor/next_cursor) or the distinction between region and sub_region resolution, both of which would help given the parameter count.

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 a 3, but the description genuinely adds meaning beyond the schema: filters accept English/Russian/Turkish spellings ('Kyrenia' or 'Гирне') and sort='recommended' is explained as featured-first. The example maps natural-language intent onto concrete parameter values (deal, region, layout, price_max, price_period).

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?

States a specific verb+resource ('Search current property listings in Northern Cyprus') and the filtering/return behavior, so it is clearly a multi-result search rather than a by-id fetch. It never names the siblings get_listing or list_regions, so the differentiation from them is left to inference.

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?

Says all filters are optional and gives a full worked query example, which conveys when this tool is the right call. It stops short of explicit routing guidance (e.g. 'use list_regions to resolve a sub_region name, use get_listing for details on one result'), so no exclusions or alternatives are stated.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedsearch_listings4 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"
        +}
  2. 3 tool updates
    • First observedget_listing
    • First observedlist_regions
    • First observedsearch_listings

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    AI-native property MCP for Northern Cyprus (KKTC). Search live listings, get the price index, compare cities and districts, estimate rental yield, and look up KKTC title-deed (koçan) procedures — all sourced live from evlek.app.
    12
    56 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Vacation rental software. A signed stay offer on the host's own domain. Agents discover a host domain, verify an Ed25519-signed offer (VRP), and send the guest to that domain to book and pay the host. Do not compare hosts or prices. HemmaBo + VRP, 6 runtime tools: 2 HemmaBo tools, 2 host onboarding tools, and 2 VRP verification tools. Not an OTA. Not a marketplace.
    7
    6
    280 npm
    4
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    A public, read-only server that lets any AI agent or MCP client check vacation-rental prices, availability, day-by-day calendars and booking links for properties in Puerto Viejo de Talamanca, Costa Rica, with no credentials required. It never creates, changes or cancels bookings and never exposes guest or reservation data.
    GPL 3.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables searching and browsing ss.ge real estate listings with filters, counters, full card details, and geo/city data via MCP tools.
    6
    11 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources