Taksi MCP Server
Provides tools for fare estimation, booking various types of taxi rides, tracking trip status, and communicating with drivers for Uber services in Turkey.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Taksi MCP ServerKadıköy'den Beşiktaş'a taksi ücreti ne kadar tutar?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: TAK Server MCP
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 installOrtam değişkenlerini ayarlayın:
cp .env.example .env
# .env dosyasını düzenleyinProjeyi derleyin:
npm run buildSunucuyu başlatın:
npm startGeliştirici Modu
# Watch mode ile geliştirme
npm run devKonfigü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=falseGenel 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.9841MCP 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ğırKadıköy'den Beyoğlu'na ücret tahmini verAktif yolculuğumun durumunu kontrol etMCP 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ırRate 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.
Available Tools
7 toolssurucu_iletisimB
Aktif yolculukta şoförle iletişime geç (ara/mesaj)
| Name | Required | Description | Default |
|---|---|---|---|
| yolculuk_id | Yes | Yolculuk kimlik numarası | |
| saglayici | No | genel | |
| iletisim_turu | Yes | İletişim türü | |
| mesaj | No | SMS için mesaj metni (opsiyonel) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what the tool does, not behavioral traits. It doesn't disclose whether this initiates actual calls/messages, requires permissions, has rate limits, costs, or what happens on execution. For a communication tool with real-world effects, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient Turkish sentence that front-loads the core purpose. Every word earns its place: 'aktif yolculukta' sets context, 'şoförle iletişime geç' states action, and '(ara/mesaj)' clarifies methods. No wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter communication tool with no annotations and no output schema, the description is inadequate. It doesn't explain what happens after tool execution (e.g., call initiated, message sent, confirmation returned), error conditions, or real-world implications. The complexity warrants more complete behavioral context than provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75% (3 of 4 parameters have descriptions), so the baseline is 3. The description adds minimal value beyond schema: 'ara/mesaj' hints at 'iletisim_turu' enum values but doesn't explain parameter relationships or when 'mesaj' is required. It doesn't compensate for the 25% coverage gap for 'saglayici'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('aktif yolculukta şoförle iletişime geç') and resource (driver during active trip), with specific verbs 'ara/mesaj' indicating communication methods. It distinguishes from siblings like 'yolculuk_durumu' (status check) or 'yolculuk_iptal' (cancellation), but doesn't explicitly contrast with other communication tools since none exist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('aktif yolculukta' - during active trip) but doesn't specify when to use this vs alternatives like 'yolculuk_durumu' for status updates or prerequisites. No explicit exclusions or named alternatives are provided, leaving some ambiguity about optimal use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taksi_cagirC
Belirtilen konumlar arası taksi çağır
| Name | Required | Description | Default |
|---|---|---|---|
| saglayici | No | genel | |
| baslangic_enlem | Yes | Başlangıç konumu enlemi | |
| baslangic_boylam | Yes | Başlangıç konumu boylamı | |
| baslangic_adres | No | Başlangıç adresi (opsiyonel) | |
| hedef_enlem | Yes | Hedef konumu enlemi | |
| hedef_boylam | Yes | Hedef konumu boylamı | |
| hedef_adres | No | Hedef adresi (opsiyonel) | |
| taksi_turu | No | Taksi türü (standart, luks, buyuk, pati) | standart |
| ekstra_ozellikler | No | Ekstra özellikler (evcil_hayvan, klima, vb.) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('taksi çağır') but does not disclose critical traits such as whether this is a read-only or destructive operation, authentication requirements, rate limits, or what happens upon invocation (e.g., confirmation, booking status). The description is minimal and lacks behavioral context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Turkish ('Belirtilen konumlar arası taksi çağır') that directly states the tool's purpose without unnecessary words. It is front-loaded and appropriately sized for a tool with a clear action, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, no output schema, no annotations), the description is incomplete. It lacks information on behavioral aspects, usage context, and output expectations, which are crucial for a taxi-booking tool that likely involves mutations and external interactions. The high schema coverage helps but does not compensate for missing behavioral and contextual details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high at 89%, with most parameters well-documented in the schema (e.g., 'baslangic_enlem' as 'Başlangıç konumu enlemi'). The description adds no additional parameter semantics beyond implying location-based inputs, so it relies on the schema for details. With high coverage, the baseline score of 3 is appropriate as the description does not compensate but does not detract either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Belirtilen konumlar arası taksi çağır' clearly states the tool's purpose as calling a taxi between specified locations, using a specific verb ('çağır') and resource ('taksi'). It distinguishes from siblings like 'ucret_tahmini' (fare estimation) or 'yolculuk_iptal' (trip cancellation) by focusing on initiating a ride, but does not explicitly differentiate from all siblings, such as 'surucu_iletisim' (driver communication), which might be related but not directly overlapping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'ucret_tahmini' for fare checks or 'yolculuk_iptal' for cancellations. It implies usage for booking a taxi between locations but lacks explicit context, prerequisites, or exclusions, leaving the agent to infer based on tool names alone without clear direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taksi_turleri_getirB
Mevcut taksi türlerini ve özelliklerini listele
| Name | Required | Description | Default |
|---|---|---|---|
| saglayici | No | Taksi sağlayıcısı (varsayılan: genel) | genel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it's a listing operation, implying read-only behavior, but doesn't specify whether it requires authentication, has rate limits, returns paginated results, or describes the output format. For a tool with zero annotation coverage, this leaves critical behavioral traits undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence in Turkish that directly states the tool's purpose without any unnecessary words. It's appropriately sized and front-loaded, making it highly efficient for an AI agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simple purpose (listing), one parameter with full schema coverage, and no output schema, the description is minimally adequate. However, it lacks context about when to use it versus siblings and doesn't compensate for the absence of annotations regarding behavioral traits like authentication or output format, making it incomplete for optimal agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'saglayici' (provider) fully documented in the schema including enum values and default. The description doesn't add any parameter-specific information beyond what the schema provides, so it meets the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('listele' meaning 'list') and the resource ('mevcut taksi türlerini ve özelliklerini' meaning 'current taxi types and features'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'taksi_cagir' (call taxi) or 'ucret_tahmini' (fare estimate), which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for usage, or exclusions, leaving the agent to infer based on tool names alone. This is a significant gap in usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ucret_tahminiC
İki konum arası taksi ücreti tahmini hesapla
| Name | Required | Description | Default |
|---|---|---|---|
| saglayici | No | genel | |
| baslangic_enlem | Yes | Başlangıç konumu enlemi | |
| baslangic_boylam | Yes | Başlangıç konumu boylamı | |
| baslangic_adres | No | Başlangıç adresi (opsiyonel) | |
| hedef_enlem | Yes | Hedef konumu enlemi | |
| hedef_boylam | Yes | Hedef konumu boylamı | |
| hedef_adres | No | Hedef adresi (opsiyonel) | |
| taksi_turu | No | Taksi türü (standart, luks, buyuk, pati) | standart |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool calculates estimates but doesn't mention whether it's read-only, if it requires authentication, rate limits, data sources, accuracy, or what the output looks like. For a tool with 8 parameters and no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence in Turkish that directly states the tool's function. It's front-loaded with the core purpose and contains no unnecessary words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 parameters, no annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like safety, authentication, or output format, nor does it provide usage context relative to sibling tools. The high parameter count and lack of structured metadata require more descriptive guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high at 88%, so the schema already documents most parameters well. The description adds no additional parameter semantics beyond implying it uses two locations. It doesn't explain the 'saglayici' (provider) enum options or 'taksi_turu' (taxi type) implications, which would be valuable given the schema's coverage isn't 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'İki konum arası taksi ücreti tahmini hesapla' (Calculate taxi fare estimate between two locations). It specifies the action (calculate estimate) and resource (taxi fare), but doesn't distinguish it from sibling tools like 'taksi_cagir' (call taxi) or 'yolculuk_durumu' (trip status), which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'taksi_cagir' for actual booking or 'yolculuk_durumu' for checking ongoing trips, nor does it specify prerequisites or constraints for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yolculuk_durumuC
Aktif yolculuğun durumunu ve şoför bilgilerini sorgula
| Name | Required | Description | Default |
|---|---|---|---|
| yolculuk_id | Yes | Yolculuk kimlik numarası | |
| saglayici | No | genel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It indicates a read-only query operation ('sorgula'), but doesn't specify authentication requirements, rate limits, error conditions, or what happens if no active trip exists. For a tool with no annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core purpose and avoids redundancy, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (querying active trip status with two parameters), lack of annotations, and no output schema, the description is insufficient. It doesn't cover behavioral aspects like error handling or authentication, and it leaves one parameter undocumented. For a tool in this context, more completeness is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (one of two parameters has a description). The description doesn't add any parameter-specific information beyond what the schema provides—it doesn't explain the 'yolculuk_id' format or clarify the 'saglayici' (provider) enum options. With moderate schema coverage, the description doesn't compensate for the undocumented parameter, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'sorgula' (query/retrieve) 'aktif yolculuğun durumunu ve şoför bilgilerini' (active trip status and driver information). It specifies both the resource (active trip) and the data retrieved (status and driver info), though it doesn't explicitly differentiate from siblings like 'yolculuk_gecmisi' (trip history) or 'yolculuk_iptal' (trip cancellation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an active trip), exclusions (e.g., not for historical trips), or comparisons to siblings like 'yolculuk_gecmisi' for past trips or 'surucu_iletisim' for driver communication. Usage is implied but not explicitly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yolculuk_gecmisiC
Geçmiş yolculukları listele
| Name | Required | Description | Default |
|---|---|---|---|
| saglayici | No | genel | |
| limit | No | Getirilecek yolculuk sayısı |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'listele' implies a read-only operation, it doesn't specify whether this requires authentication, what format the results come in, whether there's pagination beyond the 'limit' parameter, or any rate limits. For a tool with no annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just two words ('Geçmiş yolculukları listele'), which efficiently conveys the core purpose without any wasted words. It's appropriately sized for a simple list operation and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with 2 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns (journey objects with what fields?), doesn't address authentication needs, and provides no context about the 'saglayici' parameter's purpose despite its enum values including specific providers. The description should do more given the tool's complexity and lack of supporting documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only the 'limit' parameter has a description). The description doesn't mention either parameter, so it adds no semantic value beyond what the schema provides. With 2 parameters and partial schema coverage, the baseline is 3 since the schema does some work but not all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Geçmiş yolculukları listele' clearly states the purpose as listing past journeys, which is a specific verb+resource combination. However, it doesn't distinguish this tool from potential sibling tools like 'yolculuk_durumu' (journey status) or 'yolculuk_iptal' (journey cancellation), leaving ambiguity about its unique role in the system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'yolculuk_durumu' (for current status) and 'yolculuk_iptal' (for cancellation), there's no indication of when this list tool is appropriate versus those other journey-related tools, nor any prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yolculuk_iptalC
Aktif yolculuğu iptal et
| Name | Required | Description | Default |
|---|---|---|---|
| yolculuk_id | Yes | Yolculuk kimlik numarası | |
| saglayici | No | genel | |
| iptal_nedeni | No | İptal nedeni (opsiyonel) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool cancels an active journey, implying a destructive mutation, but doesn't describe consequences (e.g., cancellation fees, notifications), permissions required, rate limits, or response format. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence ('Aktif yolculuğu iptal et') that front-loads the core purpose without unnecessary words. It earns its place by clearly stating the tool's function, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool (cancelling journeys) with no annotations, no output schema, and incomplete parameter documentation (67% coverage), the description is inadequate. It doesn't address key contextual aspects like what happens after cancellation, error conditions, or how to interpret results, leaving the agent with insufficient information for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (2 of 3 parameters have descriptions), with 'yolculuk_id' and 'iptal_nedeni' documented but 'saglayici' lacking a description. The description adds no parameter information beyond what the schema provides, not explaining what 'saglayici' (provider) means or how 'iptal_nedeni' (cancellation reason) is used. With moderate schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate for gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Aktif yolculuğu iptal et' clearly states the action (iptal et/cancel) and target resource (aktif yolculuğu/active journey), making the purpose immediately understandable. It distinguishes from siblings like 'yolculuk_durumu' (journey status) and 'yolculuk_gecmisi' (journey history) by focusing on cancellation rather than querying. However, it doesn't specify what type of journey (e.g., taxi ride) beyond context from sibling names, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., only for active journeys), exclusions (e.g., not for completed journeys), or relationships to siblings like 'yolculuk_durumu' for checking status first. Usage is implied by the name and context but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
7 tool updates
v1.0.0- First observed
surucu_iletisim - First observed
taksi_cagir - First observed
taksi_turleri_getir - First observed
ucret_tahmini - First observed
yolculuk_durumu - First observed
yolculuk_gecmisi - First observed
yolculuk_iptal
TDQS
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.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
The Telnyx MCP server is an official implementation of the Model Context Protocol that enables AI clients (like Claude Desktop, Cursor, and OpenAI Agents) to interact with Telnyx's telephony, messaging, and AI assistant APIs. It provides comprehensive capabilities including making and managing phone calls, sending SMS/MMS messages, purchasing and configuring phone numbers, creating AI assistants with custom instructions, managing cloud storage buckets, scraping and embedding website content, and handling integration secrets. The server exists as both a local implementation and a remotely hosted version, allowing developers to integrate real-world communication infrastructure directly into AI applications.
A Model Context Protocol (MCP) server for Selise Blocks Cloud integration
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) based search API server that provides standardized access to Google Maps, Google Flights, Google Hotels and other services. This server enables AI assistants to access various search services through a unified interface.73MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that integrates TAK Server with AI systems, providing geospatial-aware tools for querying, analyzing, and interacting with tactical data.10MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables flight searching, booking, and payment processing. It also provides access to resources like user profiles, pricing rules, and company travel policies.MIT
- FlicenseCqualityDmaintenanceA Model Context Protocol server for querying Turkish market prices, comparing products, and getting AI-powered shopping recommendations.106-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/skynet-base/taksi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server