evimnet-mcp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +153 -0
- package/chatgpt/YAYINLAMA-REHBERI.md +94 -0
- package/chatgpt/gpt-instructions.md +55 -0
- package/chatgpt/openapi.yaml +290 -0
- package/package.json +21 -0
- package/server.js +129 -0
- package/tools/agent.js +179 -0
- package/tools/lead.js +101 -0
- package/tools/listings.js +263 -0
- package/tools/location.js +169 -0
- package/tools/market.js +131 -0
- package/tools/nearby.js +107 -0
package/README.md
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# Evimnet MCP Server
|
|
2
|
+
|
|
3
|
+
Türkiye'nin önde gelen gayrimenkul platformu [Evimnet](https://evimnet.com)'i MCP (Model Context Protocol) uyumlu AI asistanlara bağlar.
|
|
4
|
+
|
|
5
|
+
**Claude Desktop, VS Code Copilot, Cursor** ve MCP destekleyen tüm AI asistanlarla çalışır.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Araçlar (Tools)
|
|
10
|
+
|
|
11
|
+
### İlan Arama
|
|
12
|
+
| Araç | Açıklama |
|
|
13
|
+
|------|----------|
|
|
14
|
+
| `search_properties` | Türkiye genelinde mülk ara (şehir, fiyat, m², oda sayısı, mülk tipi, kiralık/satılık) |
|
|
15
|
+
| `get_property_details` | İlan detaylarını getir (fotoğraflar, konum, fiyat, emlakçı bilgisi) |
|
|
16
|
+
|
|
17
|
+
### Konum
|
|
18
|
+
| Araç | Açıklama |
|
|
19
|
+
|------|----------|
|
|
20
|
+
| `get_locations` | Şehir, ilçe ve mahalleleri listele |
|
|
21
|
+
| `search_location` | Konum adından slug bul |
|
|
22
|
+
|
|
23
|
+
### Çevre Bilgisi
|
|
24
|
+
| Araç | Açıklama |
|
|
25
|
+
|------|----------|
|
|
26
|
+
| `get_area_info` | Çevredeki POI'ler (okul, hastane, market, park…), hava durumu, hava kalitesi |
|
|
27
|
+
|
|
28
|
+
### Başvuru
|
|
29
|
+
| Araç | Açıklama |
|
|
30
|
+
|------|----------|
|
|
31
|
+
| `send_inquiry` | Emlakçıya mesaj/başvuru gönder |
|
|
32
|
+
|
|
33
|
+
### Piyasa & Döviz
|
|
34
|
+
| Araç | Açıklama |
|
|
35
|
+
|------|----------|
|
|
36
|
+
| `get_currency_rates` | Güncel TRY/EUR/USD kurları (TCMB) |
|
|
37
|
+
| `get_platform_stats` | Platform istatistikleri (ilan sayısı, emlakçı sayısı) |
|
|
38
|
+
| `convert_price` | TRY fiyatını EUR veya USD'ye çevir |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Kurulum
|
|
43
|
+
|
|
44
|
+
### Claude Desktop
|
|
45
|
+
|
|
46
|
+
`~/Library/Application Support/Claude/claude_desktop_config.json` dosyasına ekle:
|
|
47
|
+
|
|
48
|
+
```json
|
|
49
|
+
{
|
|
50
|
+
"mcpServers": {
|
|
51
|
+
"evimnet": {
|
|
52
|
+
"command": "npx",
|
|
53
|
+
"args": ["evimnet-mcp"]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Claude Desktop'ı yeniden başlat. Sol altta 🔌 simgesi görünüyorsa bağlantı kurulmuş demektir.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
### VS Code (GitHub Copilot)
|
|
64
|
+
|
|
65
|
+
`.vscode/mcp.json` dosyası oluştur:
|
|
66
|
+
|
|
67
|
+
```json
|
|
68
|
+
{
|
|
69
|
+
"servers": {
|
|
70
|
+
"evimnet": {
|
|
71
|
+
"type": "stdio",
|
|
72
|
+
"command": "npx",
|
|
73
|
+
"args": ["evimnet-mcp"]
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
### Cursor
|
|
82
|
+
|
|
83
|
+
`~/.cursor/mcp.json` dosyasına ekle:
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"mcpServers": {
|
|
88
|
+
"evimnet": {
|
|
89
|
+
"command": "npx",
|
|
90
|
+
"args": ["evimnet-mcp"]
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### Windsurf
|
|
99
|
+
|
|
100
|
+
`~/.codeium/windsurf/mcp_config.json` dosyasına ekle:
|
|
101
|
+
|
|
102
|
+
```json
|
|
103
|
+
{
|
|
104
|
+
"mcpServers": {
|
|
105
|
+
"evimnet": {
|
|
106
|
+
"command": "npx",
|
|
107
|
+
"args": ["evimnet-mcp"]
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Yerel Geliştirme
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
git clone https://github.com/evimnet/evimnet-mcp
|
|
119
|
+
cd evimnet-mcp
|
|
120
|
+
npm install
|
|
121
|
+
|
|
122
|
+
# Test (örnek JSON girişi)
|
|
123
|
+
echo '{}' | EVIMNET_BASE_URL=https://evimnet.com node server.js
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Ortam Değişkenleri
|
|
127
|
+
|
|
128
|
+
| Değişken | Açıklama | Varsayılan |
|
|
129
|
+
|----------|----------|-----------|
|
|
130
|
+
| `EVIMNET_BASE_URL` | API base URL | `https://evimnet.com` |
|
|
131
|
+
| `EVIMNET_API_KEY` | Emlakçı araçları için API key *(isteğe bağlı)* | — |
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Örnek Kullanım
|
|
136
|
+
|
|
137
|
+
Claude'a şunları sorabilirsiniz:
|
|
138
|
+
|
|
139
|
+
> "Bodrum'da 2 milyon TL altında satılık villa göster"
|
|
140
|
+
|
|
141
|
+
> "Bu villanın yakınında okul ve hastane var mı?"
|
|
142
|
+
|
|
143
|
+
> "5.000.000 TL kaç Euro eder?"
|
|
144
|
+
|
|
145
|
+
> "Beşiktaş'taki kiraları araştır, bütçem 20.000 TL"
|
|
146
|
+
|
|
147
|
+
> "Bu ilan için emlakçıya mesaj gönder, cumartesi müsaitim"
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Lisans
|
|
152
|
+
|
|
153
|
+
MIT
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# ChatGPT'ye Yayınlama Rehberi
|
|
2
|
+
|
|
3
|
+
## Gereksinimler
|
|
4
|
+
- ChatGPT Plus veya Team hesabı (GPT oluşturmak için)
|
|
5
|
+
- evimnet.com'un HTTPS ile erişilebilir olması ✅
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Adım 1 — GPT Builder'ı aç
|
|
10
|
+
|
|
11
|
+
1. https://chatgpt.com/gpts/editor adresine git
|
|
12
|
+
2. **"Create a GPT"** tıkla
|
|
13
|
+
3. **"Configure"** sekmesine geç (sol üst)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Adım 2 — Temel bilgileri gir
|
|
18
|
+
|
|
19
|
+
| Alan | Değer |
|
|
20
|
+
|------|-------|
|
|
21
|
+
| **Name** | Evimnet — Türkiye Emlak Asistanı |
|
|
22
|
+
| **Description** | Türkiye'de satılık ve kiralık mülk ara. Bodrum, Antalya, İstanbul ve tüm Türkiye. Döviz çevirimi, çevre bilgisi dahil. |
|
|
23
|
+
| **Profile picture** | evimnet.com logosunu yükle |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Adım 3 — Instructions
|
|
28
|
+
|
|
29
|
+
`gpt-instructions.md` dosyasının tüm içeriğini **Instructions** kutusuna yapıştır.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Adım 4 — Conversation starters (Başlangıç soruları)
|
|
34
|
+
|
|
35
|
+
Şunları ekle:
|
|
36
|
+
- Bodrum'da satılık villa ara, bütçem 3 milyon TL
|
|
37
|
+
- İstanbul Beşiktaş'ta kiralık 2+1 daire
|
|
38
|
+
- 5.000.000 TL kaç Euro eder?
|
|
39
|
+
- Antalya'da tatil için kiralık yer öner
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Adım 5 — Actions ekle
|
|
44
|
+
|
|
45
|
+
1. **"Add actions"** tıkla
|
|
46
|
+
2. **"Import from URL"** seç
|
|
47
|
+
3. Şu URL'yi gir:
|
|
48
|
+
```
|
|
49
|
+
https://evimnet.com/mcp/openapi.yaml
|
|
50
|
+
```
|
|
51
|
+
*(veya "Enter schema manually" seçip openapi.yaml içeriğini yapıştır)*
|
|
52
|
+
4. Araçların yüklendiğini doğrula:
|
|
53
|
+
- searchProperties ✅
|
|
54
|
+
- getPropertyDetails ✅
|
|
55
|
+
- searchLocation ✅
|
|
56
|
+
- getCurrencyRates ✅
|
|
57
|
+
- getAreaInfo ✅
|
|
58
|
+
- getPlatformStats ✅
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Adım 6 — Privacy Policy & Domain
|
|
63
|
+
|
|
64
|
+
| Alan | Değer |
|
|
65
|
+
|------|-------|
|
|
66
|
+
| **Privacy Policy URL** | https://evimnet.com/gizlilik-politikasi |
|
|
67
|
+
| **Domain** | evimnet.com |
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Adım 7 — Yayınla
|
|
72
|
+
|
|
73
|
+
1. Sağ üstte **"Save"** → **"Publish"**
|
|
74
|
+
2. Audience: **"Everyone"** seç (GPT Store'da görünsün)
|
|
75
|
+
3. Category: **"Productivity"** veya **"Research & Analysis"**
|
|
76
|
+
4. Submit for review
|
|
77
|
+
|
|
78
|
+
> ⚠️ OpenAI'ın incelemesi 1-5 iş günü sürebilir.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Adım 8 — openapi.yaml'ı evimnet.com'dan servet et
|
|
83
|
+
|
|
84
|
+
GPT builder "Import from URL" için dosyanın erişilebilir olması gerekiyor.
|
|
85
|
+
|
|
86
|
+
`openapi.yaml` dosyasını şu path'e koy:
|
|
87
|
+
```
|
|
88
|
+
/public/mcp/openapi.yaml
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Sonra Next.js'te static file olarak erişilebilir olacak:
|
|
92
|
+
```
|
|
93
|
+
https://evimnet.com/mcp/openapi.yaml
|
|
94
|
+
```
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Evimnet Emlak Asistanı — GPT Talimatları
|
|
2
|
+
|
|
3
|
+
Sen Evimnet'in resmi emlak asistanısın. Türkiye'deki satılık ve kiralık mülkleri bulmaya yardım edersin.
|
|
4
|
+
|
|
5
|
+
## Kimsin
|
|
6
|
+
|
|
7
|
+
Evimnet, Türkiye'nin önde gelen gayrimenkul platformudur. Bodrum, Antalya, İstanbul, İzmir ve Türkiye'nin tüm şehirlerinde binlerce ilan barındırır. Özellikle Bodrum Yarımadası ve Ege-Akdeniz kıyı bölgelerinde lüks villalar, deniz manzaralı daireler ve tatil amaçlı mülkler konusunda uzmandır.
|
|
8
|
+
|
|
9
|
+
## Nasıl davranırsın
|
|
10
|
+
|
|
11
|
+
- Kullanıcının dilinde yanıt ver (Türkçe, Almanca, İngilizce — kullanıcı ne yazarsa onu kullan)
|
|
12
|
+
- Almanca konuşan kullanıcılara özellikle yardımcı ol — Türkiye'de mülk arayan Avrupalı alıcılar önemli bir kitlemizdir
|
|
13
|
+
- Samimi, bilgili ve yardımsever ol
|
|
14
|
+
- İlan bulamadığında "sonuç yok" deme — farklı filtre kombinasyonları dene, bölge öner
|
|
15
|
+
- Fiyatları her zaman TRY olarak göster; kullanıcı isterse EUR/USD çevir (getCurrencyRates kullan)
|
|
16
|
+
|
|
17
|
+
## Araç kullanım sırası
|
|
18
|
+
|
|
19
|
+
1. Kullanıcı bir konum söylediğinde → önce **searchLocation** ile doğru slug'ı bul
|
|
20
|
+
2. Slug bulununca → **searchProperties** ile ara
|
|
21
|
+
3. Kullanıcı ilan detayı isterse → **getPropertyDetails** ile getir
|
|
22
|
+
4. "Çevresi nasıl?", "okul var mı?" gibi sorularda → **getAreaInfo** kullan (ilanın lat/lng'si gerekir)
|
|
23
|
+
5. "Kaç Euro?", "dolar ile ne kadar?" sorularında → **getCurrencyRates** ile çevir
|
|
24
|
+
|
|
25
|
+
## Yanıt formatı
|
|
26
|
+
|
|
27
|
+
İlanları listelerken şu formatı kullan:
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
**[Başlık]**
|
|
31
|
+
📍 [İlçe], [Şehir] · [m²] · [Oda]
|
|
32
|
+
💰 [Fiyat TRY] (~[EUR/USD tahmini])
|
|
33
|
+
🔗 evimnet.com/ilan/[slug]
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
- En fazla 5 ilan listele (daha fazlası bunaltıcı olur)
|
|
37
|
+
- "Daha fazla göster" diye sorabilirsin
|
|
38
|
+
|
|
39
|
+
## Sık sorulan konular
|
|
40
|
+
|
|
41
|
+
**"Türkiye'de yabancı mülk alabilir mi?"**
|
|
42
|
+
Evet, çoğu yabancı uyruklu kişi Türkiye'de mülk satın alabilir. Askeri bölgeler ve bazı kısıtlı alanlar dışında kısıtlama yoktur. Detaylar için bir hukuk danışmanı veya yetkili emlakçı önerilir.
|
|
43
|
+
|
|
44
|
+
**"Türkiye'de ortalama fiyatlar ne kadar?"**
|
|
45
|
+
Bölgeye göre büyük farklılık gösterir. Güncel verileri getirmek için getPlatformStats ve searchProperties kullan.
|
|
46
|
+
|
|
47
|
+
**"Fiyat müzakere edilebilir mi?"**
|
|
48
|
+
Türkiye'de fiyat pazarlığı yaygındır, özellikle ikinci el mülklerde. Yeni projeler genellikle sabit fiyatlıdır.
|
|
49
|
+
|
|
50
|
+
## Sınırlar
|
|
51
|
+
|
|
52
|
+
- Hukuki tavsiye verme — "bir hukuk danışmanına başvurun" de
|
|
53
|
+
- Kesin yatırım tavsiyesi verme
|
|
54
|
+
- Evimnet'te olmayan mülk verileri hakkında tahmin yürütme
|
|
55
|
+
- Emlakçı iletişim bilgilerini doğrudan paylaşma — ilanın sayfasına yönlendir
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
openapi: 3.1.0
|
|
2
|
+
info:
|
|
3
|
+
title: Evimnet — Türkiye Emlak API
|
|
4
|
+
description: >
|
|
5
|
+
Türkiye'nin önde gelen gayrimenkul platformu Evimnet'in arama ve bilgi API'si.
|
|
6
|
+
Satılık/kiralık daire, villa, arsa ve proje ilanlarını arar; döviz çevirimi ve
|
|
7
|
+
çevre bilgisi sağlar.
|
|
8
|
+
version: 1.0.0
|
|
9
|
+
|
|
10
|
+
servers:
|
|
11
|
+
- url: https://evimnet.com
|
|
12
|
+
|
|
13
|
+
paths:
|
|
14
|
+
|
|
15
|
+
/api/listings:
|
|
16
|
+
get:
|
|
17
|
+
operationId: searchProperties
|
|
18
|
+
summary: Türkiye'de mülk ara
|
|
19
|
+
description: >
|
|
20
|
+
Satılık veya kiralık daire, villa, arsa ve proje ilanlarını filtrele.
|
|
21
|
+
Şehir/ilçe slug'larını bilmiyorsan önce searchLocation kullan.
|
|
22
|
+
parameters:
|
|
23
|
+
- name: type
|
|
24
|
+
in: query
|
|
25
|
+
description: "SALE=Satılık, RENT=Kiralık"
|
|
26
|
+
schema:
|
|
27
|
+
type: string
|
|
28
|
+
enum: [SALE, RENT]
|
|
29
|
+
- name: propertyType
|
|
30
|
+
in: query
|
|
31
|
+
description: "APARTMENT=Daire, VILLA=Villa, LAND=Arsa, PROJECT=Proje"
|
|
32
|
+
schema:
|
|
33
|
+
type: string
|
|
34
|
+
enum: [APARTMENT, VILLA, LAND, PROJECT]
|
|
35
|
+
- name: citySlug
|
|
36
|
+
in: query
|
|
37
|
+
description: "Şehir slug'ı (ör: istanbul, bodrum, antalya, izmir)"
|
|
38
|
+
schema:
|
|
39
|
+
type: string
|
|
40
|
+
- name: districtSlug
|
|
41
|
+
in: query
|
|
42
|
+
description: "İlçe slug'ı (ör: besiktas, yalikavak, konyaalti)"
|
|
43
|
+
schema:
|
|
44
|
+
type: string
|
|
45
|
+
- name: minPrice
|
|
46
|
+
in: query
|
|
47
|
+
description: "Minimum fiyat (TRY)"
|
|
48
|
+
schema:
|
|
49
|
+
type: number
|
|
50
|
+
- name: maxPrice
|
|
51
|
+
in: query
|
|
52
|
+
description: "Maksimum fiyat (TRY)"
|
|
53
|
+
schema:
|
|
54
|
+
type: number
|
|
55
|
+
- name: minSqm
|
|
56
|
+
in: query
|
|
57
|
+
description: "Minimum net m²"
|
|
58
|
+
schema:
|
|
59
|
+
type: number
|
|
60
|
+
- name: maxSqm
|
|
61
|
+
in: query
|
|
62
|
+
description: "Maksimum net m²"
|
|
63
|
+
schema:
|
|
64
|
+
type: number
|
|
65
|
+
- name: rooms
|
|
66
|
+
in: query
|
|
67
|
+
description: "Oda sayısı (ör: 1+1, 2+1, 3+1, 4+1, 5+)"
|
|
68
|
+
schema:
|
|
69
|
+
type: string
|
|
70
|
+
- name: sort
|
|
71
|
+
in: query
|
|
72
|
+
description: "Sıralama: newest, price_asc, price_desc"
|
|
73
|
+
schema:
|
|
74
|
+
type: string
|
|
75
|
+
enum: [newest, price_asc, price_desc]
|
|
76
|
+
- name: page
|
|
77
|
+
in: query
|
|
78
|
+
schema:
|
|
79
|
+
type: integer
|
|
80
|
+
default: 1
|
|
81
|
+
- name: limit
|
|
82
|
+
in: query
|
|
83
|
+
schema:
|
|
84
|
+
type: integer
|
|
85
|
+
default: 10
|
|
86
|
+
maximum: 20
|
|
87
|
+
- name: lang
|
|
88
|
+
in: query
|
|
89
|
+
description: "Yanıt dili: tr veya de (Almanca)"
|
|
90
|
+
schema:
|
|
91
|
+
type: string
|
|
92
|
+
enum: [tr, de]
|
|
93
|
+
responses:
|
|
94
|
+
"200":
|
|
95
|
+
description: İlan listesi
|
|
96
|
+
content:
|
|
97
|
+
application/json:
|
|
98
|
+
schema:
|
|
99
|
+
type: object
|
|
100
|
+
properties:
|
|
101
|
+
listings:
|
|
102
|
+
type: array
|
|
103
|
+
items:
|
|
104
|
+
$ref: "#/components/schemas/ListingSummary"
|
|
105
|
+
total:
|
|
106
|
+
type: integer
|
|
107
|
+
page:
|
|
108
|
+
type: integer
|
|
109
|
+
|
|
110
|
+
/api/listings/{slug}:
|
|
111
|
+
get:
|
|
112
|
+
operationId: getPropertyDetails
|
|
113
|
+
summary: İlan detayını getir
|
|
114
|
+
description: Slug veya tam URL ile ilan detaylarını getir.
|
|
115
|
+
parameters:
|
|
116
|
+
- name: slug
|
|
117
|
+
in: path
|
|
118
|
+
required: true
|
|
119
|
+
description: "İlan slug'ı (ör: bodrum-yalikavak-satilik-villa-abc123)"
|
|
120
|
+
schema:
|
|
121
|
+
type: string
|
|
122
|
+
- name: lang
|
|
123
|
+
in: query
|
|
124
|
+
description: "tr veya de"
|
|
125
|
+
schema:
|
|
126
|
+
type: string
|
|
127
|
+
responses:
|
|
128
|
+
"200":
|
|
129
|
+
description: İlan detayı
|
|
130
|
+
content:
|
|
131
|
+
application/json:
|
|
132
|
+
schema:
|
|
133
|
+
type: object
|
|
134
|
+
properties:
|
|
135
|
+
data:
|
|
136
|
+
$ref: "#/components/schemas/ListingDetail"
|
|
137
|
+
|
|
138
|
+
/api/search:
|
|
139
|
+
get:
|
|
140
|
+
operationId: searchLocation
|
|
141
|
+
summary: Konum adından slug bul
|
|
142
|
+
description: >
|
|
143
|
+
"Bodrum" → "bodrum", "Beşiktaş" → "besiktas" gibi.
|
|
144
|
+
searchProperties'ten önce doğru slug bulmak için kullan.
|
|
145
|
+
parameters:
|
|
146
|
+
- name: q
|
|
147
|
+
in: query
|
|
148
|
+
required: true
|
|
149
|
+
description: Aranacak konum adı
|
|
150
|
+
schema:
|
|
151
|
+
type: string
|
|
152
|
+
- name: locale
|
|
153
|
+
in: query
|
|
154
|
+
schema:
|
|
155
|
+
type: string
|
|
156
|
+
default: tr
|
|
157
|
+
responses:
|
|
158
|
+
"200":
|
|
159
|
+
description: Konum sonuçları
|
|
160
|
+
content:
|
|
161
|
+
application/json:
|
|
162
|
+
schema:
|
|
163
|
+
type: object
|
|
164
|
+
|
|
165
|
+
/api/currency:
|
|
166
|
+
get:
|
|
167
|
+
operationId: getCurrencyRates
|
|
168
|
+
summary: Güncel TRY/EUR/USD kurları
|
|
169
|
+
description: Türkiye Merkez Bankası (TCMB) verilerine dayalı güncel döviz kurları.
|
|
170
|
+
responses:
|
|
171
|
+
"200":
|
|
172
|
+
description: Döviz kurları
|
|
173
|
+
content:
|
|
174
|
+
application/json:
|
|
175
|
+
schema:
|
|
176
|
+
type: object
|
|
177
|
+
properties:
|
|
178
|
+
EUR:
|
|
179
|
+
type: object
|
|
180
|
+
properties:
|
|
181
|
+
buying: { type: number }
|
|
182
|
+
selling: { type: number }
|
|
183
|
+
mid: { type: number }
|
|
184
|
+
USD:
|
|
185
|
+
type: object
|
|
186
|
+
properties:
|
|
187
|
+
buying: { type: number }
|
|
188
|
+
selling: { type: number }
|
|
189
|
+
mid: { type: number }
|
|
190
|
+
date: { type: string }
|
|
191
|
+
source: { type: string }
|
|
192
|
+
|
|
193
|
+
/api/nearby:
|
|
194
|
+
get:
|
|
195
|
+
operationId: getAreaInfo
|
|
196
|
+
summary: Çevre bilgisi — POI, hava durumu, hava kalitesi
|
|
197
|
+
description: >
|
|
198
|
+
Koordinat çevresindeki okul, hastane, market, park, restoran, toplu taşıma.
|
|
199
|
+
Anlık hava durumu ve hava kalitesi (AQI) dahil.
|
|
200
|
+
İlan koordinatları getPropertyDetails'ten alınabilir.
|
|
201
|
+
parameters:
|
|
202
|
+
- name: lat
|
|
203
|
+
in: query
|
|
204
|
+
required: true
|
|
205
|
+
description: Enlem
|
|
206
|
+
schema:
|
|
207
|
+
type: number
|
|
208
|
+
- name: lng
|
|
209
|
+
in: query
|
|
210
|
+
required: true
|
|
211
|
+
description: Boylam
|
|
212
|
+
schema:
|
|
213
|
+
type: number
|
|
214
|
+
- name: radius
|
|
215
|
+
in: query
|
|
216
|
+
description: "Arama yarıçapı (metre, varsayılan: 1500)"
|
|
217
|
+
schema:
|
|
218
|
+
type: integer
|
|
219
|
+
default: 1500
|
|
220
|
+
responses:
|
|
221
|
+
"200":
|
|
222
|
+
description: Çevre bilgisi
|
|
223
|
+
content:
|
|
224
|
+
application/json:
|
|
225
|
+
schema:
|
|
226
|
+
type: object
|
|
227
|
+
|
|
228
|
+
/api/stats:
|
|
229
|
+
get:
|
|
230
|
+
operationId: getPlatformStats
|
|
231
|
+
summary: Evimnet platform istatistikleri
|
|
232
|
+
description: Toplam ilan, emlakçı ve kapsanan şehir sayısı.
|
|
233
|
+
responses:
|
|
234
|
+
"200":
|
|
235
|
+
description: İstatistikler
|
|
236
|
+
content:
|
|
237
|
+
application/json:
|
|
238
|
+
schema:
|
|
239
|
+
type: object
|
|
240
|
+
properties:
|
|
241
|
+
listingCount: { type: integer }
|
|
242
|
+
agentCount: { type: integer }
|
|
243
|
+
cityCount: { type: integer }
|
|
244
|
+
|
|
245
|
+
components:
|
|
246
|
+
schemas:
|
|
247
|
+
ListingSummary:
|
|
248
|
+
type: object
|
|
249
|
+
properties:
|
|
250
|
+
id: { type: string }
|
|
251
|
+
title: { type: string }
|
|
252
|
+
slug: { type: string }
|
|
253
|
+
type: { type: string }
|
|
254
|
+
propertyType: { type: string }
|
|
255
|
+
priceTRY: { type: number }
|
|
256
|
+
sqmNet: { type: integer }
|
|
257
|
+
rooms: { type: string }
|
|
258
|
+
city:
|
|
259
|
+
type: object
|
|
260
|
+
properties:
|
|
261
|
+
name: { type: string }
|
|
262
|
+
district:
|
|
263
|
+
type: object
|
|
264
|
+
properties:
|
|
265
|
+
name: { type: string }
|
|
266
|
+
images:
|
|
267
|
+
type: array
|
|
268
|
+
items:
|
|
269
|
+
type: object
|
|
270
|
+
properties:
|
|
271
|
+
url: { type: string }
|
|
272
|
+
|
|
273
|
+
ListingDetail:
|
|
274
|
+
allOf:
|
|
275
|
+
- $ref: "#/components/schemas/ListingSummary"
|
|
276
|
+
- type: object
|
|
277
|
+
properties:
|
|
278
|
+
description: { type: string }
|
|
279
|
+
lat: { type: number }
|
|
280
|
+
lng: { type: number }
|
|
281
|
+
bathrooms: { type: integer }
|
|
282
|
+
floor: { type: integer }
|
|
283
|
+
totalFloors: { type: integer }
|
|
284
|
+
buildingAge: { type: integer }
|
|
285
|
+
agent:
|
|
286
|
+
type: object
|
|
287
|
+
properties:
|
|
288
|
+
id: { type: string }
|
|
289
|
+
name: { type: string }
|
|
290
|
+
phone: { type: string }
|
package/package.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "evimnet-mcp",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Evimnet MCP Server — AI asistanlar için Türkiye gayrimenkul araçları",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"evimnet-mcp": "./server.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"start": "node server.js",
|
|
11
|
+
"dev": "node --watch server.js"
|
|
12
|
+
},
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"@modelcontextprotocol/sdk": "^1.0.0"
|
|
15
|
+
},
|
|
16
|
+
"engines": {
|
|
17
|
+
"node": ">=18"
|
|
18
|
+
},
|
|
19
|
+
"keywords": ["mcp", "evimnet", "real-estate", "turkey", "property"],
|
|
20
|
+
"license": "MIT"
|
|
21
|
+
}
|