Skip to main content
Glama
README.md
# Taksi MCP Server 🚖

Türkiye'deki taksi hizmetleri için Model Context Protocol (MCP) sunucusu. BiTaksi, iTaksi, Uber ve genel taksi hizmetlerini destekler.

## Özellikler ✨

- **Çoklu Sağlayıcı Desteği**: BiTaksi, iTaksi, Uber ve genel taksi hizmetleri
- **Ücret Tahmini**: Mesafe ve taksi türüne göre ücret hesaplama
- **Taksi Çağırma**: Çeşitli taksi türlerinde yolculuk rezervasyonu
- **Canlı Takip**: Yolculuk durumu ve şoför bilgileri
- **İletişim**: Şoför ile direkt iletişim (arama/SMS)
- **Geçmiş**: Yolculuk geçmişi görüntüleme
- **Türkçe Destek**: Tam Türkçe arayüz ve mesajlar

## Desteklenen Taksi Türleri 🚗

- **Standart Taksi**: Normal şehir taksisi
- **Lüks Taksi**: Konforlu ve geniş araç
- **Büyük Taksi**: 8 kişilik geniş araç
- **Pati Taksi**: Evcil hayvan dostu taksi

## Kurulum 📦

### Gereksinimler

- Node.js 18.0 veya üstü
- npm veya yarn paket yöneticisi

### Kurulum Adımları

1. **Bağımlılıkları yükleyin:**
```bash
npm install
```

2. **Ortam değişkenlerini ayarlayın:**
```bash
cp .env.example .env
# .env dosyasını düzenleyin
```

3. **Projeyi derleyin:**
```bash
npm run build
```

4. **Sunucuyu başlatın:**
```bash
npm start
```

### Geliştirici Modu

```bash
# Watch mode ile geliştirme
npm run dev
```

## Konfigürasyon ⚙️

`.env` dosyasında şu ayarları yapabilirsiniz:

### API Ayarları

```env
# Test modu (API çağrıları yerine mock data)
TEST_MODE=true

# BiTaksi API (gelecekte kullanım için)
BITAKSI_API_KEY=your_api_key
BITAKSI_ENABLED=false

# iTaksi API
ITAKSI_API_KEY=your_api_key
ITAKSI_ENABLED=false

# Uber API
UBER_CLIENT_ID=your_client_id
UBER_CLIENT_SECRET=your_client_secret
UBER_ENABLED=false
```

### Genel Ayarlar

```env
DEFAULT_CITY=istanbul
DEFAULT_COUNTRY_CODE=TR
DEFAULT_CURRENCY=TRY
DEFAULT_LANGUAGE=tr

# Varsayılan konum (İstanbul Taksim)
DEFAULT_LATITUDE=41.0362
DEFAULT_LONGITUDE=28.9841
```

## MCP Tools 🛠️

Sunucu aşağıdaki MCP araçlarını sağlar:

### 1. `taksi_turleri_getir`

Mevcut taksi türlerini listeler.

```json
{
  "saglayici": "bitaksi" // bitaksi, itaksi, uber, genel
}
```

### 2. `ucret_tahmini`

İki konum arası ücret tahmini hesaplar.

```json
{
  "saglayici": "genel",
  "baslangic_enlem": 41.0362,
  "baslangic_boylam": 28.9841,
  "baslangic_adres": "Taksim, İstanbul",
  "hedef_enlem": 41.0082,
  "hedef_boylam": 28.9784,
  "hedef_adres": "Sultanahmet, İstanbul",
  "taksi_turu": "standart"
}
```

### 3. `taksi_cagir`

Taksi çağırır ve yolculuk oluşturur.

```json
{
  "saglayici": "bitaksi",
  "baslangic_enlem": 41.0362,
  "baslangic_boylam": 28.9841,
  "hedef_enlem": 41.0082,
  "hedef_boylam": 28.9784,
  "taksi_turu": "luks",
  "ekstra_ozellikler": ["evcil_hayvan", "klima"]
}
```

### 4. `yolculuk_durumu`

Aktif yolculuğun durumunu sorgular.

```json
{
  "yolculuk_id": "12345",
  "saglayici": "bitaksi"
}
```

### 5. `yolculuk_iptal`

Yolculuğu iptal eder.

```json
{
  "yolculuk_id": "12345",
  "saglayici": "bitaksi",
  "iptal_nedeni": "Planlarım değişti"
}
```

### 6. `yolculuk_gecmisi`

Geçmiş yolculukları listeler.

```json
{
  "saglayici": "genel",
  "limit": 10
}
```

### 7. `surucu_iletisim`

Şoför ile iletişim kurar.

```json
{
  "yolculuk_id": "12345",
  "saglayici": "bitaksi",
  "iletisim_turu": "sms", // arama, sms
  "mesaj": "5 dakika geç kalacağım"
}
```

## API Entegrasyonları 🔌

### Şu Anda Desteklenen

- **Test/Mock Modu**: Tam işlevsel simülasyon
- **Genel Taksi**: Temel taksi işlevleri

### Gelecek Entegrasyonlar

- **BiTaksi API**: Henüz public API yok
- **iTaksi API**: Geliştirici kaynakları araştırılıyor
- **Uber API**: Türkiye desteği kontrol edilecek

## Veri Yapıları 📊

### Konum

```typescript
interface Konum {
  enlem: number;      // latitude
  boylam: number;     // longitude
  adres?: string;     // adres metni
  sehir?: string;     // şehir bilgisi
}
```

### Yolculuk

```typescript
interface Yolculuk {
  id: string;
  saglayici: 'bitaksi' | 'itaksi' | 'uber' | 'genel';
  durum: 'aranıyor' | 'bulundu' | 'yolda' | 'geldi' | 'yolculukta' | 'tamamlandı' | 'iptal';
  baslangic: Konum;
  hedef: Konum;
  taksiTuru: string;
  surucu?: SurucuBilgileri;
  ucret?: number;
  parabirimi: string;
  olusturulma: Date;
  guncelleme: Date;
}
```

### Ücret Tahmini

```typescript
interface UcretTahmini {
  minFiyat: number;
  maxFiyat: number;
  parabirimi: string;
  tahminiSure: number;  // dakika
  mesafe: number;       // kilometre
  taksiTuru: string;
}
```

## Kullanım Örnekleri 💡

### Claude ile Kullanım

```
Taksim'den Sultanahmet'e taksi çağır
```

```
Kadıköy'den Beyoğlu'na ücret tahmini ver
```

```
Aktif yolculuğumun durumunu kontrol et
```

### MCP Client ile

```javascript
// Taksi türlerini listele
await client.callTool("taksi_turleri_getir", {
  saglayici: "bitaksi"
});

// Ücret tahmini al
await client.callTool("ucret_tahmini", {
  baslangic_enlem: 41.0362,
  baslangic_boylam: 28.9841,
  hedef_enlem: 41.0082,
  hedef_boylam: 28.9784,
  taksi_turu: "luks"
});
```

## Hata Yönetimi 🚨

Sunucu şu hata türlerini döndürür:

- **Eksik Parametre**: Gerekli parametreler eksikse
- **API Hatası**: Sağlayıcı API'sinde sorun olursa
- **Konum Hatası**: Geçersiz koordinatlar
- **Yolculuk Bulunamadı**: Belirtilen ID'de yolculuk yoksa

### Hata Formatı

```json
{
  "durum": "hata",
  "hata": "Hata açıklaması",
  "kod": "HATA_KODU"
}
```

## Güvenlik 🔒

- API anahtarları `.env` dosyasında saklanır
- Rate limiting uygulanır
- Konum bilgileri şifrelenir (production'da)
- Kişisel veriler loglanmaz

## Katkıda Bulunma 🤝

1. Fork yapın
2. Feature branch oluşturun (`git checkout -b feature/yeni-ozellik`)
3. Değişikliklerinizi commit edin (`git commit -am 'Yeni özellik eklendi'`)
4. Branch'inizi push edin (`git push origin feature/yeni-ozellik`)
5. Pull Request oluşturun

## Roadmap 🗺️

- [ ] BiTaksi API entegrasyonu
- [ ] iTaksi API entegrasyonu  
- [ ] Uber API entegrasyonu
- [ ] Gerçek zamanlı konum takibi
- [ ] Push notification desteği
- [ ] Ödeme entegrasyonu
- [ ] Multi-language desteği
- [ ] Mobile app entegrasyonu

## Lisans 📄

MIT License - detaylar için LICENSE dosyasına bakınız.

## İletişim 📞

- GitHub: [Issue açın](https://github.com/your-repo/taksi-mcp/issues)
- Email: support@yourcompany.com

## Teşekkürler 🙏

Bu proje [Model Context Protocol](https://modelcontextprotocol.io/) ve Türkiye'deki taksi sağlayıcıları sayesinde mümkün olmuştur.

---

**Not**: Bu proje henüz development aşamasındadır. Production ortamında kullanmadan önce tüm API entegrasyonlarını test edin.

TDQS

A3.5/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: driver communication, booking, vehicle types, fare estimation, trip status, history, and cancellation. The descriptions specify unique actions and targets, making misselection unlikely.

Naming Consistency5/5

All tool names follow a consistent Turkish verb_noun pattern (e.g., taksi_cagir, ucret_tahmini, yolculuk_durumu). The naming is uniform across all tools, using snake_case and descriptive terms aligned with the taxi service domain.

Tool Count5/5

With 7 tools, the server is well-scoped for a taxi service, covering core operations like booking, pricing, status, and cancellation. Each tool earns its place without being excessive or insufficient for the domain.

Completeness5/5

The tool set provides complete coverage for a taxi service: it includes booking (taksi_cagir), pre-trip (taksi_turleri_getir, ucret_tahmini), in-trip (surucu_iletisim, yolculuk_durumu, yolculuk_iptal), and post-trip (yolculuk_gecmisi) operations, with no obvious gaps in the workflow.

Maintenance

ActivityInactive
ResponsivenessNo issues