TCMB resmi döviz kuru verilerini LLM'lere açan Model Context Protocol (MCP) sunucusu
Server has 5 tools with complete input schemas and descriptions. All tools are read-only currency/exchange-rate operations. Naming is clear and verb-based (guncel_kur, tum_kurlar, kur_cevir, gecmis_kur, doviz_listesi). Descriptions are present and adequate (50-150 chars), explaining what each tool does. Input parameters have type definitions and descriptions. However, output schemas are not formally documented, responses are JSON strings without declared structure. Error handling returns JSON with 'hata' (error) fields but lacks recovery guidance. No tool annotations (readOnlyHint, etc.) despite all being read-only. Parameter descriptions could be more precise about constraints (e.g., date format validation, currency code validation). No pagination or result limits documented.
TCMB'de bugün işlem gören para birimi kodlarını ve Türkçe adlarını listeler.
Belirtilen tarihteki TCMB kurunu döndürür.
Belirtilen para biriminin TCMB güncel kurunu döndürür.
Bir tutarı, güncel TCMB satış kurları üzerinden iki para birimi arasında çevirir.
TCMB'nin bugün yayımladığı tüm döviz kurlarını döndürür.
Output schemas not formally documented. Tools return JSON strings but the structure of those strings (field names, types, nesting) is not declared in tool definitions. LLMs cannot reliably parse or chain results.
No tool annotations despite all tools being read-only. FastMCP supports readOnlyHint, should be applied to all 5 tools to signal safety to agents.
Error messages lack recovery guidance. When a currency code is not found or date is invalid, errors return 'hata' field but do not suggest next steps (e.g., 'Call doviz_listesi() to see valid codes').
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | <=2025-11-25 | v2 |
Parameter descriptions use examples (USD, EUR, GBP) instead of formal constraints. Should declare currency codes as an enum or reference doviz_listesi() for discovery.
Date format validation in gecmis_kur is documented as YYYY-MM-DD but no regex pattern or formal constraint is declared. LLMs may pass invalid dates.