Uber MCP Server

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.

Category
Visit Server

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

  1. Uber Developer Portal'a gidin
  2. Yeni bir uygulama oluşturun
  3. Client ID, Client Secret ve Server Token'ı alın
  4. Redirect URI'yi ayarlayın: http://localhost:3000/auth/callback
  5. 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'si
  • start_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'si
  • rating (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:

  1. Authorization URL'ini alın:
const authUrl = uberAPI.getAuthorizationUrl('http://localhost:3000/auth/callback', 'state123');
  1. Kullanıcıyı yetkilendirme sayfasına yönlendirin
  2. Callback'ten authorization code'u alın
  3. 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

  1. Repo'yu fork edin
  2. Feature branch oluşturun (git checkout -b feature/amazing-feature)
  3. Değişikliklerinizi commit edin (git commit -m 'Add some amazing feature')
  4. Branch'inizi push edin (git push origin feature/amazing-feature)
  5. 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:

  1. Issues sayfasından yeni bir issue oluşturun
  2. Hatayı detaylı şekilde açıklayın
  3. Mümkünse hata loglarını ekleyin
  4. Ç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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured