Skip to main content
Glama
README.md
# Israel Weather MCP Server šŸŒ¦ļøšŸ‡®šŸ‡±

×¤×Ø×•×™×§×˜ זה מממש שרת **MCP (Model Context Protocol)** ×”×ž××¤×©×Ø למודלי שפה (LLMs) ×œ×’×©×Ŗ ישירות ×œ× ×Ŗ×•× ×™ מזג אוויר עדכניים ×‘×™×©×Ø××œ ×‘××ž×¦×¢×•×Ŗ אוטומציה של דפדפן (Playwright). 

בניגוד לשימוש ב-API ×”×˜× ×“×Ø×˜×™, השרת פותח דפדפן, מנווט לאתר [Weather2Day](https://www.weather2day.co.il/forecast), ומחלׄ את המידע ×”×Ø×œ×•×•× ×˜×™ בצורה ×“×™× ×ž×™×Ŗ.

## šŸš€ תכונות עיקריות
*   **אוטומציה מלאה:** ניווט באתר, ×”×Ŗ×ž×•×“×“×•×Ŗ עם ×—×œ×•× ×™×•×Ŗ Cookies וחיפוש ×¢×Ø×™×.
*   **×™×›×•×œ×•×Ŗ RAG:** חילוׄ ×Ŗ×•×›×Ÿ טקהטואלי מהדף כדי לאפשר למודל להפק תשובות ×ž×¤×•×Ø×˜×•×Ŗ ×•×ž×“×•×™×§×•×Ŗ.
*   **ממשק FastMCP:** פיתוח ×ž×”×™×Ø ונוח על בהיה ה-SDK ×”×Ø×©×ž×™.

## šŸ› ļø ×˜×›× ×•×œ×•×’×™×•×Ŗ
*   Python 3.10+
*   [MCP SDK](https://github.com/modelcontextprotocol)
*   [Playwright](https://playwright.dev/python/) (אוטומציה של דפדפן)
*   FastMCP

## šŸ“¦ ×”×Ŗ×§× ×” והרצה

1. **×”× ×›×Ø×•×Ÿ הביבת העבודה:**
   ודאו ×©×ž×•×Ŗ×§×Ÿ אצלכם `uv` והריצו:
   ```bash
   uv sync

2. **×”×Ŗ×§× ×Ŗ דפדפן Playwright**
הריצו את הפקודה הבאה כדי ×œ×”×Ŗ×§×™×Ÿ את המנוע של Chromium הדרוש ×œ×¤×¢×•×œ×Ŗ ההוכן:

```bash
uv run playwright install chromium

3. הרצת ה-Host
כדי ×œ×”×Ŗ×—×™×œ ×œ×“×‘×Ø עם ה-Agent, הריצו את קובׄ ×”×ž××Ø×— (Host):

Bash
uv run host.py
šŸ” ×“×•×’×ž××•×Ŗ ×œ×©××œ×•×Ŗ שה-Agent יודע ×œ×¢× ×•×Ŗ
×œ××—×Ø הרצת ה-Host, ×Ŗ×•×›×œ×• לשאול ×‘×˜×Ø×ž×™× ×œ ×©××œ×•×Ŗ כגון:

"מה מזג האוויר עכשיו ×‘×™×Ø×•×©×œ×™×?"

"האם צפוי גשם בבני ברק ביומיים ×”×§×Ø×•×‘×™×?"

"תן לי ×Ŗ×—×–×™×Ŗ ×ž×¤×•×Ø×˜×Ŗ לתל אביב להיום."

"מה ×”×˜×ž×¤×Ø×˜×•×Ø×” ×”×ž×§×”×™×ž×œ×™×Ŗ ×”×ž×Ŗ×•×›× × ×Ŗ בחיפה?"

šŸ—ļø מבנה ×”×¤×Ø×•×™×§×˜
weather_Israel.py: שרת ה-MCP המכיל את הכלים (Tools) לשליטה בדפדפן וחילוׄ ×”×Ŗ×•×›×Ÿ ×ž×”××Ŗ×Ø×™× ×”×Ø×œ×•×•× ×˜×™×™×.

host.py: הממשק ×”×ž×Ø×›×–×™ ×©×ž×—×‘×Ø בין ה-LLM (Claude) לבין שרתי ה-MCP.

client.py: ×ž×—×œ×§×Ŗ לקוח גנרית ×”×ž× ×”×œ×Ŗ את התקשורת מול ×”×©×Ø×Ŗ×™×.

āš ļø הערה ×œ×ž×©×Ŗ×ž×©×™ × ×˜×¤×Ø×™
הקוד כולל הגדרות ×Ŗ×•××ž×•×Ŗ עבור ×ž×©×Ŗ×ž×©×™ NetFree (ביטול ××™×ž×•×Ŗ SSL ב-httpx) כדי לאפשר עבודה חלקה עם ה-API של Anthropic וגלישה ×‘××Ŗ×Ø×™× בהביבה ×ž×”×•× × ×Ŗ.

šŸ’” דגשים טכניים
שימוש ב-RAG: ההוכן ×ž×©×Ŗ×ž×© בכלי get_weather_page_content כדי לחלׄ טקהט גולמי ×ž×”××Ŗ×Ø ×•×œ×”×¢×©×™×Ø את הקונטקהט של המודל במידע עדכני.

אוטומציה: ×”×¤×Ø×•×™×§×˜ מדמה ×¤×¢×•×œ×•×Ŗ אנושיות כמו הקלדה ×•×”×ž×Ŗ× ×” לאלמנטים (Selectors) כדי להבטיח ××ž×™× ×•×Ŗ גבוהה ×‘×©×œ×™×¤×Ŗ ×”× ×Ŗ×•× ×™×.

TDQS

B3.3/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a distinct step in the weather scraping workflow (open site, enter city, select city, get page content). No overlap in purpose or function.

Naming Consistency4/5

Tools consistently use verb_weather_forecast_city_israel pattern for three, but get_weather_page_content deviates slightly. Minor inconsistency but still predictable.

Tool Count5/5

4 tools is appropriate for the narrow scope of fetching a weather forecast from a specific website. Not too few or too many.

Completeness3/5

The tools cover the scraping workflow but lack other common weather operations (e.g., multiple cities, different forecast types, structured data output). Notable gaps for a general weather MCP.

Maintenance

ActivityInactive
ResponsivenessNo issues