Weather Israel MCP Server
Enables querying weather forecasts for Israeli cities by automating browser with Playwright, extracting data from Weather2Day website, and feeding it to an LLM for natural language responses.
README
MCP עם Playwright — תחזית מזג אוויר לישראל
פרויקט זה מממש שרת MCP (Model Context Protocol) שמאפשר למודל שפה לגשת לנתוני מזג אוויר עדכניים בישראל באמצעות אוטומציית דפדפן עם Playwright, במקום API סטנדרטי.
בנוסף קיים שרת MCP מקביל לארה״ב (NWS API), והמארח (host.py) מחבר את שני השרתים לסוכן שיחה אחד שיודע לנתב שאילתות בהתאם למדינה.
תיאור הפרויקט
בניגוד לשימוש ב־API קבוע, השרת הישראלי:
- פותח דפדפן Chromium (גלוי לעין)
- מנווט לאתר Weather2Day
- מחפש עיר, בוחר תוצאה מהרשימה
- מחלץ את תוכן הדף כטקסט נקי
- מעביר את הטקסט למודל השפה כקונטקסט (RAG דינמי)
קבצים עיקריים
| קובץ | תפקיד |
|---|---|
weather_Israel.py |
שרת FastMCP בשם WeatherIsrael + 4 כלי Playwright |
weather_USA.py |
שרת FastMCP לתחזיות/התראות ארה״ב דרך NWS |
client.py |
לקוח MCP גנרי (stdio) |
host.py |
ממשק הצ׳אט שמחבר LLM לכלי ה־MCP |
pyproject.toml |
תלויות הפרויקט לניהול עם uv |
.env |
הגדרות ספק ה־LLM (Ollama / Gemini) |
כלי השרת הישראלי (4 Tools)
open_weather_forecast_israel— פתיחת דפדפן וניווט לדף התחזיתenter_weather_forecast_city_israel(city_name)— הקלדת שם העיר בתיבת החיפושselect_weather_forecast_city_israel— בחירת התוצאה הראשונה מה־dropdownextract_weather_data_israel— חילוץ טקסט נקי מהדף עבור המודל
דרישות מקדימות
התקנה והרצה מקומית עם Ollama ו־uv
1. סנכרון תלויות
uv sync
2. התקנת דפדפן Chromium ל־Playwright
uv run playwright install chromium
3. התקנת מודל ב־Ollama
ollama pull llama3.2
ודאו ש־Ollama רץ (בדרך כלל על http://127.0.0.1:11434).
4. הגדרת קובץ .env
העתיקו את הקובץ לדוגמה:
copy .env.example .env
ערכו את .env כך:
LLM_PROVIDER=ollama
OLLAMA_MODEL=llama3.2
OLLAMA_HOST=http://127.0.0.1:11434
אופציונלי: אפשר גם
LLM_PROVIDER=geminiעם מפתח חינמי מ־Google AI Studio.
5. הרצת המארח (Host)
uv run host.py
לאחר ההרצה יופיע ממשק צ׳אט בטרמינל. הקלידו שאלה בעברית או באנגלית, או quit ליציאה.
דוגמה להרצה מוצלחת
שאלה:
What is the weather in Jerusalem?
או בעברית:
מה מזג האוויר בירושלים?
מה שקורה מאחורי הקלעים:
המודל מזהה שמדובר בעיר בישראל ומפעיל את ארבעת הכלים בסדר:
[Calling tool weather_Israel__open_weather_forecast_israel with args {}]
[Calling tool weather_Israel__enter_weather_forecast_city_israel with args {'city_name': 'ירושלים'}]
[Calling tool weather_Israel__select_weather_forecast_city_israel with args {}]
[Calling tool weather_Israel__extract_weather_data_israel with args {}]
תוצאה לדוגמה (מתוך חילוץ חי מהאתר):
Selected city forecast page: https://www.weather2day.co.il/jerusalem
מזג אוויר ירושלים
24.5°
רוח: 13.3 קמ"ש (צפון מערבי)
לחות: 46%
תחזית לשבוע הקרוב: טמפרטורות מקסימום סביב 32–36°
הדפדפן נפתח באופן גלוי (headless=False) כך שניתן לצפות באוטומציה בזמן אמת, והמודל מסכם את הטקסט שחולץ לתשובה קריאה למשתמש.
מבנה הזרימה
משתמש → host.py (Ollama/Gemini)
├─ weather_USA.py (API של NWS)
└─ weather_Israel.py (Playwright → weather2day.co.il)
המארח אוסף את כל הכלים משני השרתים, מציג אותם למודל, ומנתב קריאות כלים חזרה לשרת הנכון.
שאלת בונוס
שאלה: איזו ספרייה "ישנה" קיבלה דחיפה מחודשת בעידן ה־AI?
תשובה: ספריות כמו BeautifulSoup ו־Scrapy.
בעבר הן שימשו בעיקר לסקראפינג קלאסי של אתרים. בעידן ה־AI הן קיבלו חיים חדשים כחלק מצינורות RAG וסוכנים: לפני שמזינים מסמכי אינטרנט למודל שפה, צריך לחלץ טקסט נקי מ־HTML. BeautifulSoup מאפשרת לפרסר דפים ולנקות רעש (תפריטים, סקריפטים, פרסומות), ו־Scrapy מאפשרת לזחול ולאסוף תוכן בקנה מידה גדול. כך ספריות "ותיקות" הפכו לרכיב מרכזי באיסוף קונטקסט איכותי עבור LLMs — לצד כלים חדשים יותר כמו Playwright, שמתאימים במיוחד לאתרים דינמיים (כמו בפרויקט זה).
הערות טכניות
- השרת הישראלי שומר מצב גלובלי של Playwright (
playwright_context,browser,page) כדי שהדפדפן יישאר פתוח בין קריאות כלים עוקבות. - חיפוש ערים באתר Weather2Day עובד בעיקר בעברית; הפרויקט ממיר שמות ערים נפוצים באנגלית (למשל
Jerusalem→ירושלים). - להרצות בדיקה אוטומטיות אפשר להגדיר
WEATHER_ISRAEL_HEADLESS=1.
רישיון / הגשה
הפרויקט הוגש כחלק ממטלת MCP עם Playwright לתחזית מזג אוויר בישראל.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
E2B
Using MCP to run code via e2b.