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ı
- Bağımlılıkları yükleyin:
npm install
- Ortam değişkenlerini ayarlayın:
cp .env.example .env
# .env dosyasını düzenleyin
- Projeyi derleyin:
npm run build
- Sunucuyu başlatın:
npm start
Geliştirici Modu
# Watch mode ile geliştirme
npm run dev
Konfigürasyon ⚙️
.env dosyasında şu ayarları yapabilirsiniz:
API Ayarları
# 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
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.
{
"saglayici": "bitaksi" // bitaksi, itaksi, uber, genel
}
2. ucret_tahmini
İki konum arası ücret tahmini hesaplar.
{
"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.
{
"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.
{
"yolculuk_id": "12345",
"saglayici": "bitaksi"
}
5. yolculuk_iptal
Yolculuğu iptal eder.
{
"yolculuk_id": "12345",
"saglayici": "bitaksi",
"iptal_nedeni": "Planlarım değişti"
}
6. yolculuk_gecmisi
Geçmiş yolculukları listeler.
{
"saglayici": "genel",
"limit": 10
}
7. surucu_iletisim
Şoför ile iletişim kurar.
{
"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
interface Konum {
enlem: number; // latitude
boylam: number; // longitude
adres?: string; // adres metni
sehir?: string; // şehir bilgisi
}
Yolculuk
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
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
// 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ı
{
"durum": "hata",
"hata": "Hata açıklaması",
"kod": "HATA_KODU"
}
Güvenlik 🔒
- API anahtarları
.envdosyasında saklanır - Rate limiting uygulanır
- Konum bilgileri şifrelenir (production'da)
- Kişisel veriler loglanmaz
Katkıda Bulunma 🤝
- Fork yapın
- Feature branch oluşturun (
git checkout -b feature/yeni-ozellik) - Değişikliklerinizi commit edin (
git commit -am 'Yeni özellik eklendi') - Branch'inizi push edin (
git push origin feature/yeni-ozellik) - 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
- Email: support@yourcompany.com
Teşekkürler 🙏
Bu proje Model Context Protocol 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.