Israel Weather Forecast MCP Server
by mali8573
README.md
# Israel Weather Forecast MCP Server
שרת MCP עצמאי ששולף תחזית מזג אוויר ישראלית **על ידי הפעלת דפדפן אמיתי
(Playwright)**, ולא על ידי קריאה ל-API קונבנציונלי. הרעיון: המודל (ה-Host,
למשל Claude Desktop / Claude Code) קורא ל-tools בזה אחר זה בדיוק כמו
משתמש אנושי שגולש באתר: פותח את הדף, מקליד שם עיר, בוחר אותה מרשימת
ההשלמה האוטומטית, ולבסוף מחלץ את תוכן העמוד כדי לענות על שאלת המשתמש.
## מבנה הפרויקט
```
israel-weather-mcp/
├── server.py # השרת עצמו - כל ה-tools מוגדרים כאן
├── requirements.txt
└── README.md
```
## Tools שמומשו
### שלב א' - ניווט וחיפוש עיר
| Tool | תיאור |
|---|---|
| `open_weather_forecast_israel()` | פותח דפדפן Chromium (Playwright) ומנווט לעמוד התחזית של ims.gov.il |
| `enter_weather_forecast_city_israel(city_name)` | מקליד את שם העיר בתיבת החיפוש בעמוד |
| `select_weather_forecast_city_israel(city_name)` | בוחר את העיר המתאימה מרשימת ההשלמה האוטומטית שמופיעה |
### שלב ב' - חילוץ תוכן (RAG)
| Tool | תיאור |
|---|---|
| `get_weather_forecast_content()` | מחלץ את הטקסט מעמוד התחזית (אחרי בחירת עיר), מנקה HTML/script/style ומחזיר טקסט נקי שה-LLM יכול לענות ממנו ישירות בצ'אט |
| `close_weather_forecast_browser()` | סוגר את הדפדפן בסיום העבודה |
הזרימה הטיפוסית (סדר קריאה מצופה על ידי ה-LLM):
```
open_weather_forecast_israel
↓
enter_weather_forecast_city_israel("תל אביב")
↓
select_weather_forecast_city_israel("תל אביב")
↓
get_weather_forecast_content() → הטקסט חוזר למודל, שמנסח תשובה למשתמש
```
## התקנה
```bash
cd israel-weather-mcp
python -m venv .venv
source .venv/bin/activate # ב-Windows: .venv\Scripts\activate
pip install -r requirements.txt
playwright install chromium # מוריד את הדפדפן שה-Playwright מפעיל
```
## חיבור ל-Host (למשל Claude Desktop)
בקובץ הקונפיגורציה של ה-MCP (למשל `claude_desktop_config.json`) יש להוסיף:
```json
{
"mcpServers": {
"israel-weather-forecast": {
"command": "python",
"args": ["/נתיב-מלא/israel-weather-mcp/server.py"]
}
}
}
```
לאחר שמירה יש להפעיל מחדש את ה-Host. ה-tools יופיעו ברשימת הכלים הזמינים,
וניתן יהיה לבקש למשל: *"מה התחזית להיום בחיפה?"* וה-Host יפעיל את ה-tools
בזה אחר זה כדי לענות.
## הערה חשובה על הסלקטורים (Selectors)
מבנה ה-HTML המדויק של אתר ims.gov.il (שמות ה-class/id של תיבת החיפוש,
פריטי ההשלמה האוטומטית ואזור התחזית) יכול להשתנות עם עדכוני האתר, ולכן
כל הסלקטורים מרוכזים במילון `SELECTORS` בראש `server.py`, עם כמה
אלטרנטיבות (fallback) לכל אלמנט. מומלץ:
1. להריץ עם `HEADLESS = False` בקובץ `server.py` (שורה ליד ההגדרות
הכלליות) כדי לראות את הדפדפן בפועל.
2. לפתוח את אתר התחזית בדפדפן רגיל, ללחוץ קליק ימני → "בדוק" (Inspect)
על תיבת החיפוש / רשימת ההשלמה / אזור התחזית, ולעדכן בהתאם את
הרשימות במילון `SELECTORS`.
כך אפשר להתאים את השרת גם אם מחליטים להפנות אותו לאתר תחזית ישראלי אחר
(למשל אתר של גוף פרטי) במקום ims.gov.il - רק צריך לעדכן את `IMS_FORECAST_URL`
ואת `SELECTORS`.
## העלאה ל-GitHub
הפרויקט כבר מוכן כ-git repo מקומי (יש בו commit ראשוני). כדי להעלות אותו
ל-GitHub ולקבל קישור לשליחה למרצה/מורה:
1. כנסו ל-[github.com](https://github.com) ולחצו על **New repository**
(בלי לסמן "Add README" / ".gitignore" / "license" - כבר יש לנו את אלה).
2. תנו שם, לדוגמה `israel-weather-mcp`, ולחצו **Create repository**.
3. בטרמינל, בתוך תיקיית הפרויקט (`israel-weather-mcp/`), הריצו:
```bash
git remote add origin https://github.com/<שם-המשתמש-שלכם>/israel-weather-mcp.git
git branch -M main
git push -u origin main
```
4. לאחר ה-push, הקישור שתשלחו למרצה הוא כתובת ה-repository:
`https://github.com/<שם-המשתמש-שלכם>/israel-weather-mcp`
אם עוד לא הגדרתם git בפעם הראשונה על המחשב, ייתכן שתצטרכו להריץ פעם אחת:
```bash
git config --global user.name "השם שלכם"
git config --global user.email "האימייל שלכם"
```
## הרצה ישירה לבדיקה (ללא Host)
ניתן גם להריץ בדיקה מהירה עם ה-MCP CLI:
```bash
mcp dev server.py
```
זה פותח ממשק בדיקה מקומי (MCP Inspector) שבו ניתן לקרוא ל-tools ישירות
ולראות את הפלט, בלי צורך בחיבור ל-Claude Desktop.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues