weather-Israel
This server enables an LLM to autonomously browse the Israeli weather forecast website (weather2day.co.il) using a headless Chromium browser (via Playwright) to retrieve weather forecasts for Israeli cities.
Open the forecast website — Navigate to
https://www.weather2day.co.il/forecast, preparing it for a city search.Search for an Israeli city — Type a city name (in Hebrew or English, e.g.
תל אביבorחיפה) into the site's search field, triggering the autocomplete dropdown.Select the city from the dropdown — Click the first autocomplete suggestion to navigate to that city's dedicated forecast page.
Extract the forecast content — Scrape and clean the visible text from the forecast page, returning it to the LLM so it can directly answer weather-related questions (e.g. today's forecast, expected rain, temperature, weather alerts).
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-IsraelWhat's the weather in Tel Aviv?"
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.
MCP with Playwright — Israeli Weather Forecast
An MCP server that gives an LLM the ability to control a real browser (via Playwright) and fetch weather forecasts for Israeli cities from weather2day.co.il, instead of calling a conventional weather API.
This project is the Israeli counterpart to the bundled weather_USA.py demo
(which calls the US National Weather Service API). Here, the "API" is a
human user's browsing flow, automated end-to-end.
How it works
open_weather_forecast_israel— opens a headless Chromium browser and navigates tohttps://www.weather2day.co.il/forecast.enter_weather_forecast_city_israel— types the requested city name into the site's search box, triggering its autocomplete dropdown.select_weather_forecast_city_israel— clicks the first suggestion in the dropdown, which navigates to that city's forecast page.get_weather_forecast_content_israel— extracts the visible text of the resulting page, cleans it up, and hands it back to the LLM as context (RAG), so the LLM can answer the user's question directly in the chat instead of just leaving the browser open on the page.
The LLM (via host.py) decides on its own, based on the user's question,
which of these 4 tools to call and in what order.
Related MCP server: weather-israel-mcp
Project structure
.
├── client.py # Generic MCP client (provided)
├── host.py # Terminal chat loop that wires everything together
├── weather_USA.py # US forecast MCP server (provided, via NWS API)
├── weather_Israel.py # ← This project: Israeli forecast MCP server (Playwright)
├── pyproject.toml
├── uv.lock
├── .env.example
└── README.mdSetup
Install dependencies:
uv syncInstall the Chromium browser for Playwright:
uv run playwright install chromiumCopy
.env.exampleto.envand fill in yourGOOGLE_API_KEY.Run the chat host:
uv run host.py
⚠️ If a tool call fails / selectors need tuning
weather2day.co.il's exact HTML (class names, ids) can change, and the
autocomplete widget is rendered dynamically by JavaScript. The 3 CSS
selectors used in weather_Israel.py (search input, dropdown item, forecast
content container) are defined as constants at the top of the file:
SEARCH_INPUT_SELECTOR = "..."
DROPDOWN_ITEM_SELECTOR = "..."
FORECAST_CONTENT_SELECTOR = "..."If a tool call times out, the fastest fix is to record the real selectors yourself:
uv run playwright codegen https://www.weather2day.co.il/forecastThis opens a browser + Inspector panel. Click into the city search field and
select a city manually — Playwright will show you the exact selector/action
it recorded in the Inspector. Copy the corrected selector into the
matching constant in weather_Israel.py.
Example questions to ask the Agent
"מה התחזית להיום בתל אביב?"
"האם צפוי גשם בחיפה השבוע?"
"מה הטמפרטורה הצפויה בירושלים מחר?"
"יש התראות מזג אוויר בבאר שבע?"
(English also works) "What's the weather like in Eilat right now?"
The agent will pick the weather-Israel MCP server for Israeli cities and
the weather-USA MCP server for US states/coordinates.
Notes
The browser runs headless by default (no visible window). To watch it work while debugging, change
headless=Truetoheadless=Falseinopen_weather_forecast_israel.Each call to
open_weather_forecast_israelcloses any previously-open browser session first, so re-asking a new question starts clean.
Available Tools
4 toolsenter_weather_forecast_city_israelA
Type a city name into the forecast website's search field.
Args: city: The Hebrew (or English) name of the Israeli city to search for, e.g. "תל אביב" or "חיפה".
| 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?
No annotations are provided, so the description must carry the burden. It describes an input action but does not disclose potential side effects (e.g., clearing previous text) or whether it triggers a search. A simple action like this may be adequately transparent, but more detail would help.
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 extremely concise, using only two lines plus the parameter documentation. Every sentence is necessary and information-dense, with no wasted words.
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?
Given the simplicity of the tool (one parameter) and the existence of an output schema, the description is nearly complete. It lacks context about how this tool fits into a workflow with siblings (e.g., after opening the website, before fetching content), but this is a minor gap.
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 description adds significant value beyond the schema by specifying that the city can be in Hebrew or English, and provides examples. This compensates for the schema's lack of parameter descriptions (0% coverage).
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 action: typing a city name into the forecast website's search field. It uses a specific verb and resource, and the tool name adds context. However, it does not explicitly connect this action to a broader goal like retrieving a forecast, which would improve clarity.
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?
No guidance on when to use this tool versus sibling tools. The description only explains the action itself, without mentioning prerequisites (e.g., the website should be open) or when not to use it.
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
Extract and clean the text content of the currently open forecast page, so the LLM can read the forecast directly and answer the user's question without the user needing to look at the browser themselves.
| 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?
No annotations; description discloses it extracts and cleans (read operation) but doesn't detail what 'clean' entails or any side effects. Adequate but not rich.
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?
Single sentence with no wasted words, front-loaded with purpose. Efficient.
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 no-param tool with output schema, description fully explains what it does and why, with no missing information.
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?
Zero parameters; schema coverage 100% trivially. Description adds value by explaining why the tool exists, meeting baseline for no params.
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?
Clearly states the tool extracts and cleans text content of the forecast page, with a specific purpose (so LLM can read it). Distinguishes from siblings like enter/select/open.
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?
Describes when to use (when forecast page is open and LLM needs to read it). No explicit when-not or alternatives, but context is clear.
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
Open a browser and navigate to the Israeli weather forecast website (weather2day.co.il/forecast). Call this first, before searching for a city.
| 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?
No annotations, but the description clearly states the action (open browser, navigate to URL). No hidden behaviors implied; the simple action is transparently described.
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 sentences, no filler, directly conveys purpose and usage order.
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?
Given zero parameters and presence of output schema, the description fully covers the tool's function and when to call it.
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?
No parameters exist, schema coverage 100%. Description adds no param info but none needed.
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?
Specific verb 'Open a browser and navigate' with exact URL provided. Clearly distinguishes from siblings which handle city-specific actions.
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?
Explicit instruction 'Call this first, before searching for a city' provides clear sequence for agent.
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
Select the first city suggestion from the search dropdown that appeared after enter_weather_forecast_city_israel was called, and navigate to that city's forecast page.
| 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?
No annotations provided. The description explains the action but does not cover edge cases like missing dropdown or errors. For a simple 0-parameter tool, it adds some value beyond the empty schema.
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?
One sentence, front-loaded with the action and prerequisite. It is concise but could be slightly tighter. No wasted words.
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?
Given 0 parameters and no annotations, the description adequately sets context, especially with sibling tools. It lacks details on failure modes but is sufficient for typical use.
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?
There are no parameters, so schema coverage is 100%. The description does not need to add parameter info. Baseline 4 is appropriate.
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 selects the first city suggestion from a dropdown after a specific preceding step and navigates to the forecast page. It distinguishes from siblings by naming the prerequisite tool and implying a sequential workflow.
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 tells when to use this tool (after enter_weather_forecast_city_israel is called), providing clear context. It lacks explicit exclusions or alternative uses, but the sequential nature is well communicated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v0.1.0- First observed
enter_weather_forecast_city_israel - First observed
get_weather_forecast_content_israel - First observed
open_weather_forecast_israel - First observed
select_weather_forecast_city_israel
TDQS
Each tool has a distinct role: opening browser, entering city name, selecting from dropdown, and extracting content. No overlap.
All tools follow a consistent 'verb_weather_forecast_x_israel' pattern, though names are verbose.
4 tools are appropriate for the simple workflow of retrieving a city weather forecast.
Covers the full pipeline from opening site to reading forecast; missing a cleanup or error recovery tool.
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
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Get current weather for any city and create images from your prompts. Streamline planning, reports…
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables users to retrieve real-time weather forecasts for Israeli cities by autonomously browsing a weather website using Playwright.-
- FlicenseAqualityCmaintenanceEnables fetching current weather forecast for cities in Israel by scraping weather2day.co.il using Playwright.1-
- FlicenseAqualityCmaintenanceEnables fetching weather forecasts for Israeli cities via browser automation with Playwright, no API needed.4-
- FlicenseNot gradedqualityCmaintenanceEnables LLMs to retrieve Israeli weather forecasts by controlling a browser via Playwright and scraping data from an Israeli weather website.-
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/nechamiToledano/MCP-with-Playwright'
If you have feedback or need assistance with the MCP directory API, please join our Discord server