Skip to main content

airquality-tr-mcp

Türkiye'nin resmi Ulusal Hava Kalitesi İzleme Ağı (UHKİA) verisini bir MCP (Model Context Protocol) sunucusu olarak sunar; Claude Desktop gibi MCP-uyumlu bir asistan, Türkiye'deki 81 il ve 365+ istasyon için gerçek zamanlı ve geçmişe dönük hava kalitesi sorularını yanıtlayabilir.

Güncel kararlı sürüm: v1.0.0

Bu, resmi olmayan (unofficial) bir entegrasyondur. T.C. Çevre, Şehircilik ve İklim Değişikliği Bakanlığı ile bir bağlantısı yoktur ve onlar tarafından desteklenmemektedir. Kaynak portalın kullanım şartlarına uymak kullanıcının sorumluluğundadır.

Veri kaynakları

  • Hava kalitesi ölçümleri: UHKİA (sim.csb.gov.tr) — resmi, dokümante edilmemiş ama halka açık uç noktalar üzerinden. Sunucu, kaynağın döndürdüğü HKİ (Hava Kalitesi İndeksi), kategori ve baskın kirletici değerlerini olduğu gibi kullanır; kendi hesaplaması, ortalaması veya tahmini yapılmaz.
  • Konum çözümleme (geocoding): OpenStreetMap Nominatim (https://nominatim.openstreetmap.org/search) — yalnızca metinle verilen bir konumu enlem/boyluma çevirmek için kullanılır, hava kalitesi verisi sağlamaz, API anahtarı gerektirmez. Koordinat girişi bu servisi hiç çağırmaz.

Gereksinimler

  • Python 3.11+
  • uv

Kurulum

Depoyu indirdikten veya klonladıktan sonra:

cd airquality-tr-mcp
uv sync

Claude Desktop / Codex yapılandırması (stdio)

{
  "mcpServers": {
    "airquality-tr": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/airquality-tr-mcp",
        "run",
        "python",
        "-m",
        "airquality_tr_mcp.server"
      ]
    }
  }
}

Tool'lar

Tool Amaç
ping MCP sürecinin ayakta olup olmadığını kontrol eder
list_stations Aktif UHKİA istasyonlarını listeler
get_air_quality İl özeti ve istasyon bazlı döküm
get_nearest_air_quality Metin veya koordinatla en yakın resmi istasyon verisi
get_station_detail Tek bir istasyonun tam güncel ölçümü
get_historical_data Günlük geçmiş özetleri
get_trend_summary Kural tabanlı 3/6 günlük trend
compare_cities İki il için kompakt karşılaştırma
get_ranking İl seviyesinde sıralama
get_detailed_ranking İstasyon seviyesinde ülke geneli sıralama
get_health_advisory Kural tabanlı il sağlık tavsiyesi
check_alert İstek üzerine HKİ/kirletici eşik kontrolü

get_air_quality ve get_nearest_air_quality farklı amaçlara hizmet eder:

  • get_air_quality — bir ilin özetini ve o ildeki tüm istasyonların dökümünü verir; il özetindeki temsili değer o ildeki en kötü (en yüksek HKİ'li) istasyondur.
  • get_nearest_air_quality — bir konuma (metin veya koordinat) en yakın ve 75 km referans sınırı içinde geçerli HKİ ölçümü olan istasyonu bulur; il sınırlarıyla ilgilenmez.
  • get_health_advisory — bir ilin temsili (en kötü istasyon) durumuna göre kural tabanlı, deterministik tavsiye üretir.
  • get_ranking vs get_detailed_rankingget_ranking il başına tek temsili değerle hızlı bir sıralama verir; get_detailed_ranking aynı veriyi il bazında özetlemeden, istasyon seviyesinde ülke geneli sıralar.

Örnek çağrılar

ping()

list_stations()
list_stations(province="İstanbul")
list_stations(province="Kadıköy")

get_air_quality(province="Ankara")
get_air_quality(province="İstanbul", district="Kadıköy")

get_station_detail(station="Ankara - Çankaya")
get_station_detail(station="a1b2c3d4-e5f6-7890-abcd-ef1234567890")

get_historical_data(province="İzmir", days=7)
get_historical_data(province="İstanbul", days=14, district="Kadıköy")

get_trend_summary(province="Bursa", days=3)
get_trend_summary(province="Bursa", days=6)

compare_cities(province1="İstanbul", province2="Ankara")

get_ranking(mode="worst", limit=10)
get_ranking(mode="best", limit=5)

get_detailed_ranking(mode="worst", limit=20)

get_health_advisory(province="Kocaeli")

check_alert(province="İstanbul", threshold=100)
check_alert(province="Ankara", threshold=50, pollutant="PM10")
check_alert(province="İzmir", threshold=40, pollutant="PM10", district="Konak")

get_nearest_air_quality örnekleri

get_nearest_air_quality(location="Göbeklitepe, Şanlıurfa")
get_nearest_air_quality(latitude=37.2232, longitude=38.9224)

Gizlilik, atıf ve sınırlamalar

  • Metinle konum sorguları OpenStreetMap Nominatim'e gönderilir; koordinat girişi bu aktarımı tamamen atlar.
  • Hava kalitesi ölçümleri UHKİA'dan gelir.
  • Mesafe, yerel düz-hat (Haversine) hesabıdır — yol/rota mesafesi değildir.
  • referans_hki yerel bir tahmin, enterpolasyon veya ortalama değildir; ilgili istasyonun kaynaktaki resmi değeridir.
  • İki saatten eski bir ölçüm, açık bir uyarıyla birlikte yine de döndürülür.
  • Bu paket yerel bir stdio yazılımıdır; v1'de merkezi/barındırılan bir servis yoktur.
  • location parametresi il/ilçe yazım hatalarını get_air_quality kadar iyi tolere etmez (Nominatim serbest metin araması yapar, il/ilçe fuzzy düzeltmesi yapmaz); sadece bir ilin/ilçenin genel hava kalitesi soruluyorsa get_air_quality/list_stations tercih edilmelidir.
  • Nominatim/OpenStreetMap ve UHKİA birbirinden bağımsız, ilişkisiz iki dış servistir.

Lisans

Bu proje MIT Lisansı ile lisanslanmıştır.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

airquality_tr_mcp-1.0.0.tar.gz (300.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

airquality_tr_mcp-1.0.0-py3-none-any.whl (36.4 kB view details)

Uploaded Python 3

File details

Details for the file airquality_tr_mcp-1.0.0.tar.gz.

File metadata

  • Download URL: airquality_tr_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 300.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for airquality_tr_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 76dde1180c0ff3b5f96b71c30360150d68dc1da25b4594203c4d5a60e3b464d3
MD5 1e701cfcd21b52ab948d94c8873b58e2
BLAKE2b-256 ce430ba29e800c6ea9a1f8f7631533f4dfff162afe2cb38aac6a40d6ac51f27b

See more details on using hashes here.

File details

Details for the file airquality_tr_mcp-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: airquality_tr_mcp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 36.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for airquality_tr_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a010a3fc2ce40280a1e50d9ef91453d76528d7558d1b03c1ebf64d377776d29b
MD5 4cb229a45696c067f5bbae9ce4e25e9d
BLAKE2b-256 747da961568cd948e82609bee3f72e382ea04612d531e164ec95db51a23d5ccb

See more details on using hashes here.

Release history Release notifications | RSS feed

1.1.0

2 files

This release

1.0.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page