Taksi MCP Server
# 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
Scored across 7 tools
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.
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.
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.
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.