Skip to main content

emlakjet-mcp 🇹🇷

mcp-name: io.github.mohammad-abbasi-sh/emlakjet-mcp

Unofficial read-only MCP server for emlakjet.com, Türkiye's real-estate portal — live listing search (for sale / for rent, by city and district), full listing details with description and 14 spec fields, a district browser, and market price stats (including median price per m²).

Built by Mohammad Abbasi as part of the "Turkey MCP factory" (Sepehr-style pipeline). Not affiliated with emlakjet.com.

For AI agents

Add to your MCP client config (stdio):

{
  "mcpServers": {
    "emlakjet": {
      "command": "uvx",
      "args": ["emlakjet-mcp"]
    }
  }
}

Or run locally: python -m emlakjet_mcp.server (needs mcp<2, httpx).

Tools

Tool Description
emlakjet_search Search listings — listing_type "satilik"/"kiralik", property_type "daire"/"konut"/"villa", city ("istanbul"), district ("kadikoy"), rooms ("2+1"), min_price/max_price (TRY), min_m2, page 1..50
emlakjet_listing_detail Full detail of one listing (URL from search, or numeric id): price, description, address, rooms, m², 14 spec fields, images
emlakjet_list_districts Districts of a city with listing pages: slug + display name
emlakjet_price_stats Market stats: count, min/max/median/average price (TRY) + median price per m² over N pages

Example output (emlakjet_search / satilik daire, istanbul):

{"listing_type": "satilik", "property_type": "daire", "city": "istanbul",
 "page": 1, "count": 50, "listings": [
  {"id": "20062034", "title": "Yıldırım Yapı'dan Metrobüsün Dibinde …",
   "price_try": 1349000, "rooms": "Stüdyo", "area_m2": 60,
   "location": "Cumhuriyet Mahallesi, Esenyurt", "floor": "3. Kat",
   "url": "https://www.emlakjet.com/ilan/…-20062034"}],
 "summary": {"total_listings": 21024, "cheapest_price_try": 310000}}

Example output (emlakjet_listing_detail / id 20044346):

{"id": "20044346", "title": "Aciliyetten Sancaktepede Site İçi İskanlı Daire",
 "price_try": 5950000, "price_currency": "TRY", "rooms_count": 3, "area_m2": 95,
 "address": {"neighbourhood": "Merve Mahallesi", "district": "Sancaktepe",
  "city": "İstanbul", "country": "TR"},
 "specs": {"Isıtma Tipi": "Kombi Doğalgaz", "Otopark": "Açık & Kapalı Otopark",
  "Kullanım Durumu": "Mülk Sahibi Oturuyor", "Krediye Uygunluk": "Krediye Uygun",
  "Site İçerisinde": "Evet", "Tapu Durumu": "Kat Mülkiyeti", …}}

Example output (emlakjet_price_stats / istanbul kadikoy, 1 page):

{"count": 50, "currency": "TRY", "min": 5650000, "max": 48000000,
 "median": 17100000.0, "average": 18228800.0,
 "median_price_per_m2_try": 162792.21, "pages_scanned": 1}

Notes:

  • Data comes from emlakjet.com's public server-rendered pages (schema.org RealEstateListing/Product JSON-LD) — no key, no login, read-only.
  • Room/price/area filters are applied to the fetched page (the site exposes no server-side room/price filter); the search returns up to 50 listings per page.
  • The site's sort keys were tested live and do not reorder the server-rendered listings, so no sort parameter is offered — sort the returned listings instead.
  • Spec labels are Turkish (Isıtma Tipi, Otopark, Kullanım Durumu, Krediye Uygunluk, Site İçerisinde, Tapu Durumu, Takas, Asansör, Mutfak, Eşya Durumu, Balkon…).
  • Requests are spaced ~0.8s apart to stay polite.
  • Environments behind an MITM proxy: set SSL_CERT_FILE to a CA bundle that trusts the proxy.

Development

python3 -m venv .venv && .venv/bin/pip install "mcp<2" httpx pytest
.venv/bin/python -m pytest tests/ -q
  • tests/test_listings.py — offline, parses real captured fixtures
  • tests/test_live.py — 6 cautious live requests against emlakjet.com (needs SSL_CERT_FILE behind the lab proxy)

License

MIT

Metadata

Release files for emlakjet-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for emlakjet-mcp 0.1.0
File Size Uploaded Provenance Actions
emlakjet_mcp-0.1.0.tar.gz 19.8 kB With provenance Details for emlakjet_mcp-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for emlakjet-mcp 0.1.0
File Interpreter ABI Platform Actions
emlakjet_mcp-0.1.0-py3-none-any.whl Python 3 none any Details for emlakjet_mcp-0.1.0-py3-none-any.whl

Total release size: 31.4 kB

Release files / emlakjet_mcp-0.1.0.tar.gz

Download URL emlakjet_mcp-0.1.0.tar.gz
Size 19.8 kB
Tags Source
SHA-256 checksum
How to use checksums
90613018bf41f52fa2111af53f4f4355d04201535243e8a9955c0491e454b988
BLAKE2b-256 checksum
How to use checksums
eacde5abd0150291895473502ec3973fb4f062607f42cd77344e0bde3f7d3456
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Release files / emlakjet_mcp-0.1.0-py3-none-any.whl

Download URL emlakjet_mcp-0.1.0-py3-none-any.whl
Size 11.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c0d92a7721ef93e8c20dc43c5340cb8f65a6037985af4007d8453eac9af5ee4b
BLAKE2b-256 checksum
How to use checksums
c9c0c5ead5a7ce108a557ab6c97e3e97734c8f4437d217cb7e990baafea28638
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Security for emlakjet-mcp 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for emlakjet_mcp-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page