Weather MCP - Israel Edition
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Weather MCP - Israel Editionמה התחזית להיום בתל אביב?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Weather MCP - Israel Edition 🦚
MCP Server ישראלי לתחזית מזג אוויר, שבמקום להתבסס על API מובנה, פותח דפדפן אמיתי באמצעות Playwright וניגש לאתר weather2day.co.il בדיוק כמו משתמש/ת אנושי/ת: מזין שם עיר, בוחר אותה מתוך רשימת ההשלמה האוטומטית, וקורא את דף התחזית שנטען.
מטרת הפרויקט
הפרויקט נבנה כתרגול בפיתוח MCP Server עצמאי, ומדגים שתי יכולות מרכזיות:
מימוש MCP Server באמצעות ה-SDK הרשמי של Anthropic (
mcp[cli]/FastMCP), שחושף כלים (Tools) ל-LLM.שליטה בדפדפן ללא מגע יד אדם באמצעות Playwright, כדי לשלוף מידע מאתר שאין לו API ציבורי - על ידי אוטומציה של הפעולות שמשתמש/ת אנושי/ת היו מבצעים בעצמם.
בפרויקט שני שרתי MCP:
קובץ | תיאור |
| שרת "קלאסי" שמביא תחזית למדינות ארה"ב דרך ה-API הציבורי של NWS. |
| השרת המרכזי של הפרויקט - תחזית לערים בישראל, דרך אוטומציית דפדפן. |
ושני קבצי תשתית גנריים שמחברים ביניהם:
קובץ | תיאור |
| MCP Client גנרי - עוטף חיבור יחיד לשרת MCP (stdio) וקריאה לכלים שלו. |
| צ'אט טרמינל שמתחבר לכל שרתי ה-MCP, מריץ שיחה עם Claude, ומנתב קריאות לכלים לשרת המתאים. |
Related MCP server: Israel Weather MCP Server
איך זה עובד - weather_Israel.py
השרת חושף 4 כלים, המיועדים לשימוש ברצף על ידי ה-LLM:
open_weather_forecast_israel- פותח דפדפן כרום חדש (Chromium) ומנווט לדףhttps://www.weather2day.co.il/forecast.enter_weather_forecast_city_israel(city)- מקליד את שם העיר בשדה החיפוש שבדף, ומחכה שרשימת ההשלמה האוטומטית תיפתח.select_weather_forecast_city_israel- בוחר את הפריט הראשון ברשימה הנפתחת, וממתין לטעינת דף התחזית של אותה עיר.get_weather_forecast_content_israel- שולף ומנקה את תוכן הטקסט של דף התחזית שנטען (RAG פשוט), כדי שה-LLM יוכל לענות על שאלות לגבי התחזית ישירות בתוך השיחה, בלי שהמשתמש/ת יצטרכו להסתכל בעצמם על הדפדפן.
מכיוון שמבנה ה-HTML של אתרים חיצוניים יכול להשתנות, שני הכלים הראשונים (חיפוש ובחירת עיר) בנויים עם רשימת סלקטורים לפי סדר עדיפות: השרת מנסה כמה אסטרטגיות סבירות למציאת שדה החיפוש ופריטי הרשימה הנפתחת, כדי לשרוד שינויים קלים במבנה הדף.
הערה חשובה: קוד ה-Playwright פותח ונבדק במלואו (פתיחה → הזנת עיר → בחירה → חילוץ תוכן) מול עמוד HTML סינתטי שמדמה את זרימת האתר האמיתי - שדה חיפוש ורשימת השלמה אוטומטית שנפתחת ולוחצים עליה. לא ניתן היה להריץ בדיקה חיה מול
weather2day.co.ilעצמו מתוך סביבת הפיתוח שבה נכתב הקוד, בשל חסימת רשת (sandbox ללא גישה כללית לאינטרנט). לכן, בהרצה ראשונה שלך מומלץ לוודא שהבחירה בעיר אכן מצליחה, ובמידת הצורך לעדכן את רשימות הסלקטורים (SEARCH_INPUT_SELECTORS,SUGGESTION_ITEM_SELECTORS) בראש הקובץweather_Israel.pyלפי המבנה בפועל (ניתן להיעזר בפקודהuv run playwright codegen https://www.weather2day.co.il/forecastכדי לזהות את הסלקטורים הנכונים תוך כדי אינטראקציה עם האתר).
התקנה והרצה
דרישות מקדימות
Python 3.10+
מפתח API של Anthropic
שלבים
# 1. התקנת תלויות
uv sync
# 2. התקנת דפדפן Chromium עבור Playwright
uv run playwright install chromium
# 3. הגדרת מפתח ה-API
cp .env.example .env
# ולערוך את .env ולהוסיף את ANTHROPIC_API_KEY
# 4. הרצה
uv run host.pyבהרצה, host.py מתחבר לשני שרתי ה-MCP (weather_USA.py ו-weather_Israel.py)
כתת-תהליכים, אוסף את הכלים שהם חושפים, ופותח צ'אט בטרמינל. הקלידו שאלה, ו-Claude
יבחר בעצמו איזה שרת ואילו כלים להפעיל (ובאיזה סדר) כדי לענות עליה.
דוגמאות לשאלות
תחזית בישראל (weather_Israel.py):
"מה התחזית להיום בתל אביב?"
"איך מזג האוויר בחיפה מחר?"
"תבדקי לי את התחזית בבאר שבע ותגידי לי אם צריך מטרייה"
תחזית בארה"ב (weather_USA.py):
"What's the weather forecast for San Francisco (latitude 37.77, longitude -122.42)?"
"Are there any weather alerts in Texas right now?"
בכל שאלה על עיר בישראל, Claude יפעיל את שרשרת הכלים
open_weather_forecast_israel → enter_weather_forecast_city_israel →
select_weather_forecast_city_israel → get_weather_forecast_content_israel,
ותוכלו לראות את הדפדפן נפתח, מקליד את שם העיר, ובוחר אותה מהרשימה - לפני
שהתשובה חוזרת בטרמינל.
מצב headless
כברירת מחדל הדפדפן נפתח גלוי (headless=False) כדי לאפשר לצפות
בתהליך. כדי להריץ ללא חלון גלוי (למשל על שרת ללא מסך), הגדירו בקובץ .env:
PLAYWRIGHT_HEADLESS=trueלמה לא Google Search?
בכוונה נמנענו מלבנות כלי שמחפש בגוגל "מה התחזית היום ב-X":
חיפוש בגוגל דרך דפדפן אוטומטי (Playwright) מוביל להקפצת אימות CAPTCHA.
הדרך הנכונה לבצע Web Search בפרויקטי LLM היא באמצעות מנוע חיפוש ייעודי (כגון Tavily), ולא על ידי פתיחת דפדפן.
מטרת הפרויקט הייתה תרגול פיתוח MCP Server ספציפי למקור מידע נתון; לצרכים גנריים של גלישה ואוטומציה קיים כבר MCP Playwright הרשמי.
מבנה הפרויקט
.
├── client.py # MCP Client גנרי
├── host.py # צ'אט טרמינל שמחבר את כל שרתי ה-MCP
├── weather_USA.py # MCP Server לתחזית בארה"ב, דרך ה-API של NWS
├── weather_Israel.py # MCP Server לתחזית בישראל, דרך אוטומציית Playwright
├── pyproject.toml # תלויות הפרויקט (מנוהל על ידי uv)
├── .env.example # תבנית למשתני סביבה נדרשים
└── README.mdAvailable Tools
4 toolsenter_weather_forecast_city_israelA
מזינה שם עיר בשדה החיפוש שבדף התחזית, כך שרשימת ערים מתאימות תיפתח.
יש להריץ לאחר open_weather_forecast_israel.
Args: city: שם העיר לחיפוש בעברית (למשל: "תל אביב", "חיפה", "באר שבע")
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the immediate behavior and outcome: it types a city name and a list opens. However, no annotations are provided, and the description does not mention side effects such as overwriting existing text, waiting for results, or what happens if no city matches. This leaves some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and every sentence earns its place: the action, the outcome, the prerequisite, and the parameter explanation. There is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with a single parameter and an output schema, the description is largely complete. It gives the prerequisite, the action, the expected outcome, and parameter guidance. What is missing is mostly non-critical detail about error conditions or subsequent steps, which are hinted at by the sibling tool names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only a string parameter named 'city' with 0% description coverage. The tool description compensates by explaining that the value must be a Hebrew city name and gives concrete examples, which is sufficient semantic guidance for this single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: entering a city name into the search field on the forecast page, with the expected outcome that a matching city list opens. This is distinct from the sibling tools (open, select, get content), so the agent can tell it apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to run this after open_weather_forecast_israel, giving clear sequencing context. It does not mention when not to use it or describe alternatives, but the prerequisite alone is strong guidance for this pipeline-style tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_weather_forecast_content_israelA
שולפת ומנקה את תוכן הטקסט של דף התחזית הפתוח כרגע בדפדפן, כדי לספק ל-LLM את המידע הדרוש לענות על שאלות לגבי התחזית ישירות בשיחה (RAG).
יש להריץ לאחר select_weather_forecast_city_israel.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden. It discloses that the tool reads and cleans text content without modifying the page, but it does not describe failure behavior (e.g., what happens if no forecast page is open) or any side effects. A 3 reflects adequate but not rich behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences in Hebrew, front-loaded with the action and purpose, followed by the prerequisite. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and zero parameters, the description provides the essential context: what the tool does, its RAG purpose, and its required predecessor. It could add more detail on the 'cleaning' step or error conditions, but nothing critical is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so parameter semantics are trivially satisfied. The description appropriately focuses on behavior rather than parameters, matching the baseline 4 for tools with no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('retrieves and cleans the text content of the currently open forecast page in the browser') with a clear resource and scope. It is easily distinguished from sibling tools like open_weather_forecast_city_israel and select_weather_forecast_city_israel because it explicitly targets the already-open page and mentions its RAG purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'יש להריץ לאחר select_weather_forecast_city_israel' (must run after select_weather_forecast_city_israel), giving clear sequential context. It does not list when-not-to-use cases, but the prerequisite effectively routes the agent away from using it prematurely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_weather_forecast_israelA
פותחת דפדפן חדש ומנווטת לדף התחזית של אתר weather2day.co.il.
יש להריץ כלי זה תמיד ראשון, לפני הזנת עיר או בחירתה.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and it clearly discloses the core behavior: opening a new browser and navigating to a specific website. It adds a useful behavioral constraint about ordering, though it does not mention potential loading waits or failure behavior, which are minor for a simple navigation step.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The primary action is front-loaded, and the critical sequencing instruction is delivered in the second sentence, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter navigation tool with an output schema, the description is complete enough: it states the action, the target site, and the required ordering relative to city entry or selection. No critical information is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema description coverage, so there is no parameter semantic burden for the description to add. The baseline of 4 applies because the absence of parameters makes the schema trivially complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it opens a new browser and navigates to the forecast page of weather2day.co.il. It also distinguishes itself from siblings by explicitly positioning this as the first step before entering or selecting a city.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'must always be run first, before entering or selecting a city.' This gives clear sequencing relative to sibling tools like enter_weather_forecast_city_israel and select_weather_forecast_city_israel, leaving no ambiguity about when it applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
select_weather_forecast_city_israelA
בוחרת את הפריט הראשון מתוך רשימת הערים הנפתחת (autocomplete) שמופיעה לאחר הזנת שם עיר, וממתינה לטעינת דף התחזית של אותה עיר.
יש להריץ לאחר enter_weather_forecast_city_israel.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It discloses the interaction behavior (select first dropdown item) and the waiting behavior (wait for forecast page load), which goes well beyond the tool name. Minor details like timeouts or failure handling are not covered, but they are not essential for this simple step.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact Hebrew sentences, each earning its place: the first defines the action and result, the second states the prerequisite. There is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter UI automation step with an output schema present, the description provides everything needed: what to do, what to wait for, and the required preceding step. Nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is 100%, so the baseline is 4. The description correctly adds no parameter documentation because there are no parameters to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action—selecting the first item from the autocomplete city list—and an outcome: waiting for the forecast page to load. It names the prerequisite sibling tool, distinguishing it from the surrounding flow despite being brief.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says it must be run after enter_weather_forecast_city_israel, giving clear sequencing guidance. It does not discuss cases where an alternative should be used, but for this narrow step the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a discrete role in a linear workflow: opening the forecast page, entering a city, selecting an autocomplete result, and extracting content. The Hebrew descriptions clearly state required predecessors, so an agent should not confuse entering a city with selecting it.
All tool names follow a consistent snake_case convention with a verb, the weather_forecast domain, and the israel suffix. The shared prefix and country suffix make the set coherent, while the varying object nouns still align with each tool's distinct action.
Four tools is exactly right for the narrow browser automation workflow; each step is necessary and none is redundant. The count fits comfortably within the ideal 3–15 range for a focused MCP server.
The full workflow from opening the site to extracting forecast content is covered, including city search and selection. A close/reset tool or broader city-selection capabilities would be nice but are not essential for the stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Get current weather for any city and create images from your prompts. Streamline planning, reports…
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables users to retrieve real-time weather forecasts for Israeli cities by autonomously browsing a weather website using Playwright.
- FlicenseNot gradedqualityCmaintenanceProvides LLMs with real-time weather forecasts for Israeli cities using browser automation with Playwright to scrape live data from a weather website.
- FlicenseNot gradedqualityCmaintenanceEnables LLMs to retrieve Israeli weather forecasts by controlling a browser via Playwright and scraping data from an Israeli weather website.
- FlicenseAqualityBmaintenanceEnables LLMs to fetch Israeli weather forecasts by controlling a real browser via Playwright, simulating human interactions like typing and clicking on a weather website.4
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/meanochi/MCP-with-Playwright'
If you have feedback or need assistance with the MCP directory API, please join our Discord server