MCP Server for Kandilli Observatory Earthquake Data. Provides access to Boğaziçi Üniversitesi Kandilli Rasathanesi earthquake data through the Model Context Protocol.
kandilli-mcp provides 6 earthquake data tools with consistent naming (all get_* verbs) and reasonable descriptions in Turkish. All tools have input schemas with types and descriptions. However, output schemas are not formally documented, responses are inferred from code inspection. Parameter descriptions are present but lack explicit constraints (ranges, formats). Error handling returns structured objects but lacks recovery guidance. No tool annotations (readOnlyHint, etc.). The server is functional but falls short of production-grade polish expected for A-tier tools.
Mevcut listedeki depremler için kapsamlı istatistik hesaplar. Büyüklük dağılımı, derinlik dağılımı, en büyük deprem bilgileri döner.
Belirli bir tarihe ait depremleri listeler. Tarih formatı: YYYY-MM-DD (örn: "2024-09-15")
Konum adına göre deprem filtreler. İl veya bölge adı ile arama yapılabilir. Örnek: "İzmir", "Marmara", "Kahramanmaraş", "Ege", "ADANA"
Belirli büyüklük aralığındaki depremleri listeler.
En son kaydedilen tek depremi getirir. Hızlı kontrol ve anlık durum için kullanılır.
Kandilli Rasathanesi'nden son depremleri getirir.
Output schemas not formally documented. Response structures inferred from code (e.g., get_recent_earthquakes returns {count, source, earthquakes}), but no JSON Schema or type hints in tool definitions. LLMs cannot reliably plan downstream operations without explicit output schemas.
Parameter constraints lack explicit bounds and format specifications. E.g., 'limit' parameters have no min/max validation hints in descriptions; 'date' parameter lacks regex pattern or format declaration in description text (only in code validation). LLMs cannot infer valid ranges and may pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Error responses lack recovery guidance. When fetch_earthquakes() raises RuntimeError, tools return {error: str(e), earthquakes: []} or {error: str(e)}. No actionable next steps (e.g., 'Retry in 30 seconds' or 'Check network connectivity'). LLMs cannot determine if errors are retryable or fatal.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only and idempotent, but this is not declared in tool metadata. LLMs cannot optimize retry logic or understand safety properties without explicit hints.
Pagination not implemented. Tools accept 'limit' but do not return total_count, next_cursor, or offset. Large result sets (e.g., 500 earthquakes) could exhaust context windows. No guidance on how to fetch subsequent pages.