Weather Forecast MCP Server with AI Assistant
Bu proje, OpenWeatherMap API kullanarak hava durumu bilgilerini sağlayan bir Model Context Protocol (MCP) server’ıdır. Enlem ve boylam koordinatları veya şehir adı ile hava durumu bilgilerini alabilirsiniz. Yeni eklenen yapay zeka asistanı ile kullanıcı dostu iletişim kurar!
🌟 Özellikler
Temel Hava Durumu Fonksiyonları
- 🌍 Enlem/boylam koordinatlarına göre hava durumu
- 🏙️ Şehir adına göre hava durumu
- 🌡️ Detaylı sıcaklık bilgileri (mevcut, hissedilen, min/max)
- 💨 Rüzgar hızı ve yönü
- 💧 Nem oranı ve atmosfer basıncı
- ☁️ Bulutluluk yüzdesi
- 🌅 Güneş doğuş/batış saatleri
- 🌧️ Yağış bilgileri (varsa)
- 🇹🇷 Türkçe açıklamalar
🤖 Yapay Zeka Asistanı (YENİ!)
- Dostane iletişim: Kullanıcıyla doğal dilde konuşur
- Akıllı koordinat toplama: Mesajlardan koordinatları otomatik çıkarır
- Şehir adı tanıma: Şehir adlarını anlayıp hava durumu getirir
- Kullanıcı dostu format: Hava durumu bilgilerini emoji ve tavsiyelerle sunar
- Çoklu format desteği: Farklı koordinat formatlarını kabul eder
- Kişiselleştirilmiş tavsiyeler: Hava durumuna göre giyim ve aktivite önerileri
Kurulum
Gereksinimler
- Python 3.8+
- OpenWeatherMap API anahtarı
Yerel Kurulum
- Projeyi klonlayın:
git clone <repository-url>
cd weather-forecast-mcp
- Bağımlılıkları yükleyin:
pip install -r requirements.txt
- Server’ı çalıştırın:
python server.py
Smithery Deployment
Bu proje Smithery platformunda deploy edilmek üzere tasarlanmıştır.
- Projeyi GitHub’a yükleyin
- Smithery’de yeni bir MCP server oluşturun
- GitHub repository’nizi bağlayın
smithery.yamldosyası otomatik olarak tanınacaktır
📖 Kullanım
🤖 Yapay Zeka Asistanı Araçları
1. weather_greeting()
Asistanın karşılama mesajını gösterir.
Örnek yanıt:
🌤️ **Merhaba! Hava Durumu Asistanınızım!** 😊
Size güncel hava durumu bilgileri sağlamak için buradayım!
**Nasıl kullanabilirsiniz:**
📍 **Koordinat ile:**
• Enlem: 41.0082, Boylam: 28.9784
• Veya kısaca: 41.0082, 28.9784
🏙️ **Şehir adı ile:**
• İstanbul için hava durumu
• Ankara hava durumu
2. chat_weather_assistant(message)
Kullanıcı mesajını analiz eder ve uygun yanıt verir. Koordinat veya şehir adı bulursa hava durumu getirir.
Desteklenen formatlar:
"Merhaba"→ Karşılama mesajı"Enlem: 41.0082, Boylam: 28.9784"→ Hava durumu"41.0082, 28.9784"→ Hava durumu"İstanbul için hava durumu"→ Hava durumu"Yardım"→ Kullanım kılavuzu
Örnek kullanım:
{
"message": "İstanbul için hava durumu"
}
3. get_weather(latitude, longitude)
Koordinatlara göre kullanıcı dostu formatta hava durumu getirir.
Parametreler:
latitude(float): Enlem (-90 ile 90 arasında)longitude(float): Boylam (-180 ile 180 arasında)
Örnek yanıt:
🌍 **İstanbul, TR** için hava durumu:
🌤️ **Genel Durum:** Açık
🌡️ **Sıcaklık:** 22°C (Hissedilen: 24°C)
📊 **Günlük Aralık:** 18°C - 26°C
💧 **Nem:** %65
🔽 **Basınç:** 1013 hPa
💨 **Rüzgar:** 3.2 m/s
💡 **Tavsiyelerim:**
👕 Güzel hava! Rahat kıyafetler tercih edin.
☀️ Açık hava! Dışarıda vakit geçirmek için harika!
🔧 Temel MCP Araçları
1. get_weather_by_coordinates
Enlem ve boylam koordinatlarına göre hava durumu bilgilerini getirir.
Parametreler:
latitude(float): Enlem (-90 ile 90 arasında)longitude(float): Boylam (-180 ile 180 arasında)units(string, opsiyonel): Ölçü birimi (“metric”, “imperial”, “standard”)
Örnek:
{
"latitude": 41.0082,
"longitude": 28.9784,
"units": "metric"
}
2. get_weather_by_city
Şehir adına göre hava durumu bilgilerini getirir.
Parametreler:
city_name(string): Şehir adıcountry_code(string, opsiyonel): Ülke kodu (örn: “TR”, “US”)units(string, opsiyonel): Ölçü birimi
Örnek:
{
"city_name": "Istanbul",
"country_code": "TR",
"units": "metric"
}
Resources (Kaynaklar)
weather://coordinates/{latitude}/{longitude}
Koordinatlara göre hava durumu kaynağı.
Örnek:
weather://coordinates/41.0082/28.9784
Prompts (Şablonlar)
weather_analysis_prompt
Hava durumu analizi için prompt şablonu.
Parametre:
location(string): Konum bilgisi
API Yanıt Formatı
{
"konum": {
"enlem": 41.0082,
"boylam": 28.9784,
"şehir": "Istanbul",
"ülke": "TR"
},
"hava_durumu": {
"ana_durum": "Clear",
"açıklama": "açık",
"ikon": "01d"
},
"sıcaklık": {
"mevcut": 22.5,
"hissedilen": 23.1,
"minimum": 20.0,
"maksimum": 25.0,
"birim": "°C"
},
"atmosfer": {
"basınç": 1013,
"nem": 65,
"görüş_mesafesi": 10000
},
"rüzgar": {
"hız": 3.5,
"yön": 180,
"birim": "m/s"
},
"bulutluluk": {
"yüzde": 10
},
"güneş": {
"doğuş": 1640234567,
"batış": 1640267890
}
}
Konfigürasyon
Smithery Konfigürasyonu
smithery.yaml dosyasında aşağıdaki parametreleri ayarlayabilirsiniz:
api_key: OpenWeatherMap API anahtarınızunits: Varsayılan ölçü birimi (metric/imperial/standard)language: Dil kodu (tr, en, vb.)
Çevre Değişkenleri
OPENWEATHER_API_KEY: OpenWeatherMap API anahtarıDEFAULT_UNITS: Varsayılan ölçü birimiLANGUAGE: Dil kodu
Hata Yönetimi
Server, aşağıdaki durumlarda uygun hata mesajları döndürür:
- Geçersiz koordinatlar
- API erişim hataları
- Şehir bulunamadığında
- Ağ bağlantı sorunları
🧪 Test
Asistan Testleri
Yapay zeka asistanının tüm özelliklerini test etmek için:
python test_assistant.py
Bu test dosyası şunları test eder:
- Karşılama mesajları
- Chat asistanı yanıtları
- Koordinat tanıma
- Şehir adı tanıma
- Hata yönetimi
- İnteraktif mod
Temel Server Testleri
Temel MCP fonksiyonlarını test etmek için:
python test_server.py
İnteraktif Test Modu
Test dosyasını çalıştırdıktan sonra interaktif modu seçerek asistanla gerçek zamanlı konuşabilirsiniz:
🎮 İnteraktif test modunu başlatmak ister misiniz? (e/h): e
👤 Siz: Merhaba
🤖 Asistan: 🌤️ Merhaba! Ben hava durumu asistanınızım! 😊
👤 Siz: İstanbul için hava durumu
🤖 Asistan: Buldum! İstanbul için hava durumu:
🌍 **İstanbul, TR** için hava durumu:
...
Lisans
Bu proje MIT lisansı altında lisanslanmıştır.
Katkıda Bulunma
- Fork yapın
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Değişikliklerinizi commit edin (
git commit -m 'Add amazing feature') - Branch’inizi push edin (
git push origin feature/amazing-feature) - Pull Request oluşturun
Destek
Herhangi bir sorun yaşarsanız, lütfen GitHub Issues bölümünde bir konu açın.
Weather Forecast Server with AI Assistant
Project Details
- iremaltunay55/deneme
- Last Updated: 5/28/2025
Recomended MCP Servers
A Model Context Protocol server for calculating.
R MCP Server
这是一个基于 MCP (Model Context Protocol) 的项目,集成了智谱 AI 和腾讯地图 API,提供了天气查询、地理编码和网络搜索等功能。
This read-only MCP Server allows you to connect to Google Calendars data from Claude Desktop through CData JDBC...
A Micromanagement Tool for Development Workflows: Helps coding agent plan, track, and visualize sequential development tasks with detailed...
Obsidian vault connector for Claude Desktop - enables reading and writing Markdown notes using Model Context Protocol (MCP)
quip mcp server
A VSCode/Cursor extension providing an MCP Server for Confluence Wiki integration





