Evlek — Northern Cyprus Property Mcp
About
AI-native property MCP server for Northern Cyprus (KKTC). Nine read-only tools — search active listings, get the live price index, compare cities, estimate rental yield, look up KKTC legal procedures, profile districts — pulled live from evlek.app, where every listing is KYC-veri
Details
- Author
- Evlek
- Downloads
- 229
- Categories
- Other, Security, AI
Jump to
- 9 tools: search_listings, get_price_index, get_market_overview, compare_cities, get_yield_estimate, get_legal_info, suggest_neighborhood, compare_properties, get_district_profile.
- Verified listings only – every property passes KYC verification.
- Covers 6 North Cyprus cities (Girne, İskele, Lefkoşa, Gazimağusa, Güzelyurt, Lefke) and 100+ districts.
- Multilingual data (TR, EN, RU, DE, AR) exposed in English tool descriptions.
- OWASP MCP Top 10 compliant: Zod input validation, output sanitization, rate limiting (60/min/IP, 500/min global), Sentry observability.
- Production‑grade with 30‑second hard timeout and no stack trace leaks.
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Evlek — Northern Cyprus Property McpCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Add the server endpoint (https://evlek.app/api/mcp) to your MCP client’s configuration. For Claude Desktop, use npx -y mcp-remote with the URL; for Cursor/VS Code, add the URL directly. No local installation required – all data is fetched live from the hosted API. Prompts like “Find 2‑bedroom flats for rent in Girne under £500/month” invoke the appropriate tool automatically.
search_listings
Search live active sale and long-term-rent listings on Evlek. Results are newest-first by default; `limit` caps returned rows and `totalMatched` reports the full match count. Returns advertised asking-price and listing facts only; not valuation, verification of property-specific claims, forecast, ranking, or recommendation.
get_price_index
Returns source-dated aggregates of live active Evlek sale or long-term-rent asking prices. Descriptive listing facts only: not completed transactions, a valuation, a forecast, or an investment recommendation.
compare_cities
Compare source-dated live active-listing asking-price aggregates across 2-4 Northern Cyprus cities. Descriptive listing facts only; not transaction prices, valuation, forecast, ranking, or investment advice.
get_yield_estimate
Calculate an illustrative long-term-rent scenario only from caller-supplied purchase price, monthly rent, occupied months, and annual operating costs. No Evlek market baseline or occupancy assumption is used; outputs are not observed income, forecasts, guarantees, or advice.
suggest_neighborhood
Return static editorial orientation context for a persona and optional preferences. It contains no price or yield figures and is not live listing data, a ranking, suitability finding, valuation, or recommendation.
compare_properties
Compare descriptive facts from 2-4 active Evlek sale or long-term-rent listings of the same type. Shows advertised asking price, size and £/m² differences without making a value, suitability, appraisal, or investment judgment.
get_district_profile
Returns source-dated active sale/long-term-rent listing counts and asking-price aggregates for one district. Any rent-to-price percentage is a derived asking-price ratio, not observed income, net yield, valuation, forecast, ranking, or recommendation.
student_housing
Calculate one illustrative student-rent scenario from caller-supplied monthly rent and occupied months. The university only supplies location context; no Evlek rent or occupancy baseline, observed demand/income, forecast, guarantee, or advice is used.
payment_plan
The payment_plan identifier is retained only for compatibility. This tool converts an entered property asking-price amount across GBP/EUR/USD/TRY when complete, valid, fresh, date-stamped stored FX rates are available; otherwise it fails closed without amounts. It does not produce a payment plan, deposit schedule, installment schedule, acquisition-cost estimate, or advice.
get_listing_detail
Return a 360° profile of one active Evlek listing by UUID: title, description, price, location, size, amenities, features, cover image, per-photo captions/tags, and AI virtual-staging before/after pairs (always AI-disclosed). Contact details omitted. Use when: a UUID is already known. Don't use for: discovery — use search_listings first.
search
Search live Northern Cyprus (KKTC/TRNC) property listings on Evlek with a free-text query. Returns matching listings as id/title/url for the fetch tool. Same data as search_listings — this fixed form exists for the ChatGPT/OpenAI connector contract. Use when: the caller only has a free-text query. Don't use for: structured filters — use search_listings.
fetch
Fetch the full detail of one Evlek listing by id (from search): title, description, GBP-normalized price, location, size, amenities. Same data as get_listing_detail — this fixed id-only form exists for the ChatGPT/OpenAI connector contract. Use when: an id from search is known. Don't use for: discovery — use search first.
list_locations
Return canonical KKTC city slugs plus districts represented by active Evlek sale or long-term-rent listings. Live inventory-location facts only; holiday-home inventory remains unavailable.
get_listing_by_number
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.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"evlek \u2014 northern cyprus property mcp": {
"evlek": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://evlek.app/api/mcp"
]
}
}
}
}
McpServers
{
"evlek": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://evlek.app/api/mcp"
]
}
}
Evlek MCP Server
> AI-native property discovery for North Cyprus (KKTC). Built on the Model Context Protocol — works in Claude, ChatGPT, Gemini, Cursor, and any MCP-compatible client.
The Evlek MCP server gives AI agents structured, real-time access to North Cyprus property data — search active listings, compare cities, estimate rental yield, look up KKTC legal procedures, get district profiles, and more. All data is sourced live from evlek.app.
---
Why Evlek MCP
- AI-first. Built for agentic workflows from day one — not retrofitted on a legacy listing API.
- Multilingual. Property data in TR, EN, RU, DE, AR (currently exposed via tool descriptions in EN).
- Verified listings only. Every listing on Evlek passes KYC verification — no ghost ads, no fake agents.
- Built for the region. Optimized for the 6 cities of North Cyprus (Lefkoşa, Girne, Gazimağusa, İskele, Güzelyurt, Lefke) and 100+ districts.
- Production-grade. OWASP MCP Top 10 compliant — Zod input validation, output sanitization, rate limiting (60/min/IP, 500/min global), Sentry observability.
---
Quick start
Claude Desktop
Add this to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"evlek": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://evlek.app/api/mcp"]
}
}
}
Restart Claude Desktop. The "evlek" server appears in the tools list.
Cursor / VS Code (GitHub Copilot)
Cursor: Settings → Model Context Protocol → Add Server. VS Code: .vscode/mcp.json.
{
"mcpServers": {
"evlek": {
"url": "https://evlek.app/api/mcp"
}
}
}
MCP Inspector (test before installing)
npx @modelcontextprotocol/inspector https://evlek.app/api/mcp
Direct API (cURL)
curl -X POST https://evlek.app/api/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
More configs: examples/
---
Available tools (v1.2.0 — 9 tools)
| # | Tool | What it does |
|---|------|--------------|
| 1 | search_listings | Search active listings by city, type (sale/rent/daily), bedrooms, price range. Returns up to 10 with title, price, location, direct link. |
| 2 | get_price_index | Aggregated avg/median/min/max prices per city + top districts (Evlek Price Index). |
| 3 | get_market_overview | High-level market overview — avg rent/sale prices, rental yields, hot zones, key facts (taxes, foreign ownership). |
| 4 | compare_cities | Compare 2-4 North Cyprus cities side-by-side with prices, listing counts, top districts, automatic verdict. |
| 5 | get_yield_estimate | Estimate gross/net annual rental yield for a property given purchase price + city + bedrooms. |
| 6 | get_legal_info | Authoritative info on koçan types, foreign purchase rules, taxes, residence permit, PTP (Permission to Purchase) process. |
| 7 | suggest_neighborhood | Given a buyer persona (retiree, investor, student, family, digital_nomad, vacation), return matched neighborhoods with rationale. |
| 8 | compare_properties | Compare 2-4 active listing UUIDs side-by-side with price-per-m², area, bedrooms, automatic value insight. |
| 9 | get_district_profile | 360° district profile — sale/rent stats, £/m², bedroom breakdown, estimated yield, persona match. |
> v2.0 roadmap (Q2 2026): 6 additional tools — find_near_university, analyze_ruhsat, calculate_mortgage, calculate_acquisition_cost, convert_price, search_blog. With namespace prefixes (prop_, market_, area_, legal_, util_).
See TOOLS.md for full input schemas, parameter details, and response examples.
---
Example prompts
Try these in any MCP-enabled client:
- "Find 2-bedroom flats for rent in Girne under £500/month."
- "What's the median sale price per square meter in Lefkoşa?"
- "Compare İskele and Famagusta for investment — which has higher rental yield?"
- "Show me studios in Gazimağusa near DAÜ."
- "What koçan type is safest for a foreign buyer in North Cyprus?"
- "I'm a retiree looking at North Cyprus — which neighborhoods fit?"
- "Estimate the rental yield on a £150,000 2+1 in Girne."
---
Coverage
- Cities: 6 (Girne, İskele, Lefkoşa, Gazimağusa, Güzelyurt, Lefke)
- Districts: 100+
- Universities: 7 indexed (YDÜ, DAÜ, GAÜ, UKÜ, LAÜ, BAÜ, AKÜ) — surfaced via area_near_university in v2.0
- Currency: GBP primary; TRY/USD/EUR conversion in util_convert_price (v2.0)
- Tool descriptions: EN
- Listing data fields: TR + EN (additional language tools planned for v2.1)
---
Architecture
The Evlek MCP server runs as a hosted endpoint at https://evlek.app/api/mcp. It speaks the Model Context Protocol over Streamable HTTP (JSON-RPC 2.0), spec version 2025-11-05, and complies with the Anthropic Registry v1.2 spec.
This repository contains:
- server.json — Anthropic Registry manifest
- TOOLS.md — Full tool reference (JSON schemas + examples)
- examples/ — Configuration files for Claude Desktop, Cursor, Continue, VS Code
- examples/clients/ — Reference open-source thin clients (Python + TypeScript) under MIT
- CONTRIBUTING.md — How to file issues and propose docs improvements
The full server implementation (database schemas, API routes, AI prompt engineering, listing pipeline) is hosted at evlek.app and remains proprietary. This repository focuses on documentation, the Anthropic Registry manifest, and integration examples.
Security model
Per OWASP MCP Top 10:
- Per-IP rate limit: 60 req/min
- Global rate limit: 500 req/min (Supabase/Vercel guard)
- Hard timeout: 30 seconds per request
- Input validation: Zod schemas, every tool
- Output sanitization: Indirect prompt-injection defense (8-pattern regex)
- Response size caps: Max 10 results per query
- Database access: Supabase anon key + Row Level Security
- Error containment: No stack traces leaked
- Observability: Sentry per-tool spans + breadcrumbs + duration tracking
See evlek.app/security for the full disclosure policy.
---
Roadmap
- [x] v1.0 — 3 tools (search, price index, market overview)
- [x] v1.2 — 9 tools (added compare_cities, yield_estimate, legal_info, suggest_neighborhood, compare_properties, district_profile)
- [ ] v2.0 (Q2 2026) — 15 tools, namespace prefixes, +6 new (mortgage, acquisition_cost, near_university, analyze_ruhsat, convert_price, blog_search)
- [ ] v2.1 (Q3 2026) — Additional micro-MCPs: evlek-poi-mcp (POI + coast distance), evlek-agent-mcp (B2B agent finder)
- [ ] v3.0 (Q4 2026) — get_market_pulse_30day, get_construction_status, find_emergency_short_term
- [ ] Vision (2027) — Multimodal search_by_image, auth-gated tools (favorites, viewing requests, contact reveal), webhook subscriptions
---
Status
- MCP version: 1.2.0 (live)
- Endpoint: https://evlek.app/api/mcp
- Anthropic Registry: app.evlek/mcp-server — isLatest: true
- Health: evlek.app/status
- Documentation: evlek.app/mcp
---
Contributing
This server is operated by Evlek. The hosted implementation is proprietary, but this repository (manifest + docs + examples + reference clients) is open under MIT.
Documentation issues and PRs are welcome — typo fixes, clarifications, additional client examples, translations of the README. For bugs against the hosted server, open an issue with the server-bug label and include your prompt, the tool called, and the response (with PII redacted).
See CONTRIBUTING.md for details.
---
License
MIT — see LICENSE.
The hosted Evlek service (web app, mobile app, listing data, AI prompts, database schemas) is proprietary and not covered by this license.
> Trademark notice: "Evlek" is a trademark of Onur Dokuzoğlu. The MIT license covers source code only — it does not grant rights to use the "Evlek" name, logo, or branding except as described in this README. To request brand usage permission, contact hello@evlek.app.
---
Links
- Web: evlek.app
- iOS: App Store
- Android: Internal Test (closed beta)
- MCP endpoint: https://evlek.app/api/mcp
- MCP documentation: evlek.app/mcp
- Anthropic Registry: app.evlek/mcp-server
- Model Context Protocol: modelcontextprotocol.io
- Contact: hello@evlek.app
---
Built in North Cyprus by an architect, not a software firm. Powered by Anthropic Claude, Supabase, Vercel, and the Model Context Protocol.*
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.




