天气与情绪AI助手

一个基于MCP架构的AI助手,结合Google Gemini模型和外部API(如天气和图像服务),提供天气查询和情绪支持功能。

  • by aozberkk
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 aozberkk/weather-app

使用说明

🌦️ 人工智能天气与情绪助手(由MCP提供技术支持)

这个项目, 模型上下文协议(MCP) 他是一个现代人工智能助理,使用他的架构开发。Google Gemini AI 模型与现实世界数据(天气、图像)相结合,并自主管理。

🏗️ 建筑 项目

通信流程(架构方案)

                                +-----------------+
                                |  KULLANICI (UI) |
                                +--------+--------+
                                         |
                                         v
+-----------------+            +---------+---------+            +-----------------+
|  GOOGLE GEMINI  |<-----------|     BACKEND       |<-----------|    FRONTEND     |
|       (AI)      |----------->| (Node.js/Express) |----------->|  (React + Vite) |
+-----------------+   Karar    +---------+---------+   Yanıt    +-----------------+
                                         |
                                         | (JSON-RPC via Stdio)
                                         v
                               +---------+---------+
                               |    MCP SERVER     |
                               |     (Python)      |
                               +---------+---------+
                                         |
                                         | (HTTP Webhook)
                                         v
+-----------------+            +---------+---------+
|  EXTERNAL APIs  |<-----------|       n8n         |
| (Weather/Image) |----------->|   (Workflows)     |
+-----------------+            +-------------------+

Bu Projede MCP Nasıl Kullanılıyor?
MCP Server (Python):

Konum: mcp-server/server.py

Görevi: Tool'ları tanımlar (get_weather, get_city_image, get_weather_forecast) ve n8n webhook'larına istek atar.

Teknoloji: Python SDK, httpx (Async HTTP Client).

MCP Client (Node.js):

Konum: backend/src/mcp-client.js

Görevi: Python sunucusunu stdio üzerinden çalıştırır ve yönetir. AI modelinin tool çağrılarını bu sunucuya iletir.

Teknoloji: Node.js, Child Process.

🚀 Kurulum ve Başlangıç
Gereksinimler
Node.js (v18+)

Python (v3.9+)

n8n (Lokal veya Cloud)

Adım Adım Kurulum
1. Projeyi Klonlayın
git clone [https://github.com/aozberkk/weather-app.git](https://github.com/aozberkk/weather-app.git)
cd weather-app

2. Backend Kurulumu
cd backend
npm install
.env dosyasını oluşturun ve şu bilgileri ekleyin:
PORT=3001
GEMINI_API_KEY=your_gemini_api_key
N8N_WEBHOOK_BASE_URL=http://localhost:5678/webhook

3. Frontend Kurulumu
cd ../frontend
npm install

4. MCP Server Kurulumu
cd ../mcp-server
# Sanal ortam önerilir (Optional)
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt

5. n8n Workflow Kurulumu

n8n-workflows/ klasöründeki 3 adet .json dosyasını n8n arayüzünden Import edin.

n8n içinde OpenWeatherMap ve Unsplash API credential'larını tanımladığınızdan emin olun.

🎮 Uygulamayı Çalıştırma
Projeyi tam kapasite çalıştırmak için 3 ayrı terminalde şu komutları çalıştırın:

Terminal 1 (Backend):
cd backend
npm start

Terminal 2 (Frontend):
cd frontend
npm run dev

Terminal 3 (n8n):
n8n start

🔧 Teknik Detaylar: MCP Tool'ları
Tool Adı,Açıklama,Input Schema
get_weather,Şehir için anlık hava durumu bilgisini getirir.,"{ ""city"": ""string"" }"
get_city_image,Hava durumuna uygun atmosferik şehir görseli arar (Unsplash).,"{ ""search_query"": ""string"" }"
get_weather_forecast,Şehir için 5 günlük detaylı hava tahminini getirir.,"{ ""city"": ""string"" }"