Skip to main content
Glama
yehudit-alfa

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