Uber MCP Server
Enables AI assistants to interact with the Uber API for ride management, including requesting rides, obtaining price and time estimates, and tracking active trip status. It supports comprehensive journey features such as viewing ride history, cancelling requests, and rating drivers through a secure OAuth 2.0 integration.
README
Uber MCP Server
AI asistanları için kapsamlı Uber entegrasyonu sağlayan Model Context Protocol (MCP) sunucusu. Bu server, AI asistanlarının Uber API'si ile etkileşime girmesini ve yolculuk yönetimi yapmasını sağlar.
🚗 Özellikler
Temel İşlevler
- Araç Çağırma: uberX, uberXL, Comfort, Black ve diğer araç türlerini çağırma
- Fiyat Tahmini: Yolculuk öncesi fiyat tahmini alma
- Süre Tahmini: Sürücünün gelme süresini tahmin etme
- Yolculuk Takibi: Aktif yolculukların durumunu takip etme
- İptal İşlemi: Yolculukları iptal etme
- Yolculuk Geçmişi: Geçmiş yolculukları görüntüleme
- Şoför Puanlama: Tamamlanan yolculuklar için şoför değerlendirme
Teknik Özellikler
- TypeScript: Tip güvenliği ve modern JavaScript desteği
- Zod Validasyonu: Güçlü veri doğrulama
- Hata Yönetimi: Kapsamlı hata yakalama ve raporlama
- OAuth 2.0: Güvenli kimlik doğrulama
- Türkçe Dil Desteği: Tam Türkçe arayüz ve mesajlar
- Sandbox Desteği: Geliştirme için test ortamı
📋 Gereksinimler
- Node.js 18.0.0 veya üzeri
- TypeScript 5.0+
- Uber Developer hesabı ve API anahtarları
- @modelcontextprotocol/sdk
🔧 Kurulum
1. Bağımlılıkları Yükleyin
cd /root/.openclaw/workspace/mcp-servers/uber-mcp/
npm install
2. Çevre Değişkenlerini Ayarlayın
.env.example dosyasını .env olarak kopyalayın ve gerekli bilgileri doldurun:
cp .env.example .env
.env dosyasını düzenleyin:
# Uber API Yapılandırması
UBER_CLIENT_ID=uber_client_id_buraya
UBER_CLIENT_SECRET=uber_client_secret_buraya
UBER_SERVER_TOKEN=uber_server_token_buraya
UBER_SANDBOX=true
# OAuth Yapılandırması
UBER_REDIRECT_URI=http://localhost:3000/auth/callback
UBER_SCOPE=profile request history
# API Yapılandırması
UBER_API_BASE_URL=https://api.uber.com
UBER_SANDBOX_API_BASE_URL=https://sandbox-api.uber.com
# MCP Server Yapılandırması
MCP_SERVER_NAME=uber-mcp-server
MCP_SERVER_VERSION=1.0.0
# Loglama
LOG_LEVEL=info
# Dil Desteği
DEFAULT_LANGUAGE=tr
SUPPORTED_LANGUAGES=en,tr
3. Uber Developer Hesabı Kurulumu
- Uber Developer Portal'a gidin
- Yeni bir uygulama oluşturun
- Client ID, Client Secret ve Server Token'ı alın
- Redirect URI'yi ayarlayın:
http://localhost:3000/auth/callback - Gerekli scope'ları etkinleştirin:
profile,request,history
4. Projeyi Derleyin
npm run build
5. Sunucuyu Başlatın
npm start
Veya geliştirme modunda:
npm run dev
🛠️ Kullanım
MCP Client Entegrasyonu
Bu server, MCP protokolünü destekleyen herhangi bir AI asistanı ile kullanılabilir. Server başlatıldıktan sonra, AI asistanınız aşağıdaki araçları kullanabilir:
Mevcut Araçlar
1. uber_arac_turlerini_getir
Belirli bir konumda mevcut olan Uber araç türlerini getirir.
Parametreler:
latitude(number): Enlem koordinatılongitude(number): Boylam koordinatı
Örnek:
{
"name": "uber_arac_turlerini_getir",
"arguments": {
"latitude": 41.0082,
"longitude": 28.9784
}
}
2. uber_fiyat_tahmini_al
Başlangıç ve bitiş noktaları arasında fiyat tahmini alır.
Parametreler:
start_latitude(number): Başlangıç enlem koordinatıstart_longitude(number): Başlangıç boylam koordinatıend_latitude(number): Bitiş enlem koordinatıend_longitude(number): Bitiş boylam koordinatı
3. uber_sure_tahmini_al
Sürücünün gelme süresini tahmin eder.
Parametreler:
start_latitude(number): Başlangıç enlem koordinatıstart_longitude(number): Başlangıç boylam koordinatıproduct_id(string, isteğe bağlı): Belirli araç türü ID'si
4. uber_arac_cagir
Yeni bir Uber yolculuğu talep eder.
Parametreler:
product_id(string): Araç türü ID'sistart_latitude(number): Başlangıç enlem koordinatıstart_longitude(number): Başlangıç boylam koordinatıend_latitude(number, isteğe bağlı): Bitiş enlem koordinatıend_longitude(number, isteğe bağlı): Bitiş boylam koordinatıseat_count(number, isteğe bağlı): Yolcu sayısı (1-6 arası)
5. uber_aktif_yolculuk
Şu anda aktif olan yolculuğu getirir.
Parametreler: Yok
6. uber_yolculuk_detaylari
Belirli bir yolculuğun detaylarını getirir.
Parametreler:
request_id(string): Yolculuk talep ID'si
7. uber_yolculuk_iptal
Aktif yolculuğu iptal eder.
Parametreler:
request_id(string): İptal edilecek yolculuk ID'si
8. uber_yolculuk_gecmisi
Geçmiş yolculukların listesini getirir.
Parametreler:
offset(number, isteğe bağlı): Başlangıç offset (varsayılan: 0)limit(number, isteğe bağlı): Maksimum sonuç sayısı (varsayılan: 10)
9. uber_sofor_puanla
Tamamlanan yolculuk için şoförü puanlar.
Parametreler:
request_id(string): Yolculuk talep ID'sirating(number): Puan (1-5 arası)feedback(string, isteğe bağlı): Geri bildirim
10. uber_profil_getir
Kullanıcı profil bilgilerini getirir.
Parametreler: Yok
🔐 Kimlik Doğrulama
Server, Uber OAuth 2.0 akışını destekler. İki kimlik doğrulama yöntemi vardır:
1. Server Token (Sunucu Jetonu)
Basit API erişimi için server token kullanın:
UBER_SERVER_TOKEN=your_server_token_here
2. OAuth 2.0 Flow
Kullanıcı adına işlem yapmak için OAuth flow kullanın:
- Authorization URL'ini alın:
const authUrl = uberAPI.getAuthorizationUrl('http://localhost:3000/auth/callback', 'state123');
- Kullanıcıyı yetkilendirme sayfasına yönlendirin
- Callback'ten authorization code'u alın
- Access token için kod ile değiştirin:
const tokens = await uberAPI.exchangeCodeForToken(code, 'http://localhost:3000/auth/callback');
uberAPI.updateAccessToken(tokens.access_token);
🧪 Test ve Geliştirme
Sandbox Modu
Geliştirme ve test için Uber sandbox ortamını kullanın:
UBER_SANDBOX=true
UBER_SANDBOX_API_BASE_URL=https://sandbox-api.uber.com
Sandbox modunda:
- Gerçek para tahsil edilmez
- Simüle edilmiş sürücü ve yolculuk verileri kullanılır
- Tüm API çağrıları güvenli test ortamında gerçekleşir
Test Komutları
# Projeyi test et
npm test
# Kod kalitesini kontrol et
npm run lint
# Kodu biçimlendir
npm run format
📁 Proje Yapısı
uber-mcp/
├── src/
│ ├── index.ts # Ana MCP server implementasyonu
│ ├── uber-api.ts # Uber API client ve tip tanımları
├── dist/ # Derlenmiş JavaScript dosyaları
├── package.json # Proje bağımlılıkları ve scriptler
├── tsconfig.json # TypeScript yapılandırması
├── .env.example # Örnek çevre değişkenleri
└── README.md # Bu dokümantasyon dosyası
🔧 Yapılandırma
Çevre Değişkenleri
| Değişken | Açıklama | Gerekli |
|---|---|---|
UBER_CLIENT_ID |
Uber uygulama Client ID | ✓ |
UBER_CLIENT_SECRET |
Uber uygulama Client Secret | ✓ |
UBER_SERVER_TOKEN |
Uber Server Token | - |
UBER_SANDBOX |
Sandbox modu (true/false) | - |
UBER_API_BASE_URL |
Production API URL | - |
UBER_SANDBOX_API_BASE_URL |
Sandbox API URL | - |
UBER_REDIRECT_URI |
OAuth redirect URI | ✓ |
UBER_SCOPE |
OAuth scope'ları | ✓ |
MCP_SERVER_NAME |
MCP server adı | - |
MCP_SERVER_VERSION |
MCP server versiyonu | - |
LOG_LEVEL |
Log seviyesi | - |
DEFAULT_LANGUAGE |
Varsayılan dil | - |
Hata Yönetimi
Server kapsamlı hata yönetimi sağlar:
- API Hataları: Uber API'sinden gelen hataları yakalar ve Türkçe mesajlarla döner
- Validasyon Hataları: Zod şemaları ile giriş validasyonu
- Ağ Hataları: Bağlantı sorunlarını yakalar
- Kimlik Doğrulama Hataları: OAuth ve token hatalarını yönetir
Türkçe Dil Desteği
Tüm kullanıcı arayüzü ve hata mesajları Türkçe olarak sunulur:
- Araç isimleri ve açıklamaları
- Durum mesajları
- Hata bildirimleri
- Yolculuk detayları
🤝 Katkıda Bulunma
- Repo'yu fork edin
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Değişikliklerinizi commit edin (
git commit -m 'Add some amazing feature') - Branch'inizi push edin (
git push origin feature/amazing-feature) - Pull Request oluşturun
📄 Lisans
Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.
🐛 Hata Raporlama
Hata bulursanız veya öneriniz varsa:
- Issues sayfasından yeni bir issue oluşturun
- Hatayı detaylı şekilde açıklayın
- Mümkünse hata loglarını ekleyin
- Çalışma ortamı bilgilerinizi paylaşın
❓ SSS
S: Server token vs Access token farkı nedir?
C: Server token, uygulamanız adına genel API çağrıları yapmak için kullanılır. Access token ise belirli bir kullanıcı adına işlem yapmak için gereklidir. Yolculuk çağırmak için access token gereklidir.
S: Sandbox modunda gerçek yolculuk çağırabilir miyim?
C: Hayır, sandbox modu sadece test amaçlıdır. Gerçek yolculuk çağırmak için production API'sini kullanmanız gerekir.
S: Hangi şehirlerde Uber kullanabilir miyim?
C: Uber'in aktif olduğu tüm şehirlerde bu MCP server'ı kullanabilirsiniz. Güncel şehir listesi için Uber'in resmi web sitesini kontrol edin.
S: Rate limiting var mı?
C: Evet, Uber API'si rate limiting uygulamaktadır. Server otomatik olarak bu durumu yönetir ve gerekli hata mesajlarını döner.
📞 Destek
Teknik destek için:
- GitHub Issues kullanın
- Dokümantasyonu kontrol edin
- Uber Developer Portal'a başvurun
Not: Bu MCP server, Uber Technologies Inc. tarafından resmi olarak desteklenmemektedir. Bağımsız bir açık kaynak projesidir.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。