MCP Weather Assistant
by yehudit-alfa
README.md
# 🌤️ MCP Weather Assistant
פרויקט זה הוא דוגמה קטנה ופרקטית ליישום של MCP (Model Context Protocol) עם מודל שפה, שמאפשר למודל לעבוד עם כלים חיצוניים אמיתיים.
## 🎯 מה הפרויקט עושה?
הפרויקט מאפשר למשתמש לשאול שאלות על מזג האוויר, וה-LLM בוחר אילו כלים להשתמש כדי לענות על השאלה.
יש בו שני סוגי כלים:
- עבור ישראל — נעשה שימוש ב-Playwright כדי לפתוח דפדפן, להזין שם עיר, לבחור את התוצאה ולחלץ את תוכן הדף.
- עבור ארצות הברית — נעשה שימוש ב-API רשמי של מזג האוויר כדי לקבל תחזית ו-alerts.
הדבר מיועד להדגים איך מודל שפה יכול לא רק לענות, אלא גם לבצע פעולה בעולם האמיתי דרך כלים חיצוניים.
---
## 🎯 המטרה של הפרויקט
המטרה היא להראות כיצד אפשר להרחיב את יכולות של LLM באמצעות MCP Tools:
- לאסוף מידע בזמן אמת
- לבצע פעולות בדפדפן באופן אוטומטי
- להעניק למודל קונטקסט נוסף מהאתר עצמו (RAG)
- לשלב בין כלים שונים לממשק צ'אט אחד
זהו פרויקט לימודי שמדגים עקרונות של Agents, MCP Servers ו-Tool Calling.
---
## 🧩 מבנה הפרויקט
- [client.py](client.py) — לקוח MCP גנרי שמתחבר לשרתים.
- [host.py](host.py) — צ'אט Host שמקבל שאלות, שולח אותן למודל ומחבר בין ה-LLM לכלים.
- [weather_USA.py](weather_USA.py) — שרת MCP עבור מזג אוויר בארצות הברית דרך API.
- [weather_Israel.py](weather_Israel.py) — שרת MCP עבור מזג אוויר בישראל דרך Playwright.
---
## 🛠️ טכנולוגיות בשימוש
- Python
- MCP SDK
- Playwright
- Anthropic API
- UV
---
## 🚀 איך מריצים את הפרויקט
### 1. התקנת התלויות
```bash
uv sync
```
### 2. התקנת דפדפן עבור Playwright
```bash
uv run playwright install chromium
```
### 3. הגדרת מפתח API
ודאו שיש לכם משתנה סביבה בשם:
```bash
ANTHROPIC_API_KEY=your_api_key_here
```
### 4. הרצת הממשק
```bash
uv run host.py
```
---
## 💬 דוגמאות לשאלות שניתן לשאול
- מה מזג האוויר היום בירושלים?
- תבדוק לי בבקשה מה התחזית בטבריה.
- האם ירד גשם היום בתל אביב?
- מה המצב במזג האוויר באילת?
- What is the weather in New York?
---
## ⚠️ דברים חשובים לשים לב אליהם
- הפרויקט מיועד ללימוד והדגמה, לאו דווקא למוצר סופי יציב.
- עבור ישראל, התהליך תלוי באתר חיצוני, ולכן הוא עלול להישבר אם האתר ישנה את מבנה הדף.
- כדי שה-LLM יוכל לענות, צריך להיות מוגדר מפתח API תקין.
TDQS
A3.7/5.0
Scored across 4 tools
Disambiguation5/5
Each tool has a distinct role in the workflow: open browser, enter city, select from dropdown, extract data. No overlap in functionality.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern with snake_case and the suffix '_israel', making them predictable.
Tool Count5/5
Four tools is appropriate for a focused weather scraping assistant, covering the essential steps without excess.
Completeness4/5
Covers the main workflow but lacks error handling or a tool to explicitly submit the search, leaving minor gaps.
Maintenance
ActivityInactive
ResponsivenessNo issues