Skip to main content
Glama

๐ŸŒฆ๏ธ Weather Israel MCP

An MCP (Model Context Protocol) project that lets an LLM pull weather forecasts for cities in Israel โ€” directly from the browser, no API, using Playwright.


๐ŸŽฏ Project Goal

Instead of relying on a built-in API, the Agent opens a Chrome browser, navigates to the weather2day.co.il site, searches for a city, selects it from the list โ€” and then reads the page content and provides a full forecast.


Related MCP server: Israeli Weather MCP

๐Ÿ› ๏ธ Tech Stack

Tool

Role

MCP SDK

Defining Tools and running the MCP server

Playwright

Browser control โ€” navigation, typing, clicking

OpenAI API

The language model that manages the conversation

uv

Environment and dependency management


๐Ÿ“ Project Structure

project-template/
โ”œโ”€โ”€ client.py          # MCP Client ื’ื ืจื™ โ€” ืžืชื—ื‘ืจ ืœืฉืจืชื™ MCP
โ”œโ”€โ”€ host.py            # ืฆ'ืื˜ ื˜ืจืžื™ื ืœ ืฉืžื—ื‘ืจ ืืช ื”ื›ืœ ื™ื—ื“
โ”œโ”€โ”€ weather_USA.py     # MCP Server ืœืชื—ื–ื™ืช ืืจื”"ื‘ (ื“ืจืš NWS API)
โ”œโ”€โ”€ weather_Israel.py  # MCP Server ืœืชื—ื–ื™ืช ื™ืฉืจืืœ (ื“ืจืš Playwright)
โ”œโ”€โ”€ .env               # ืžืคืชื— API (ืœื ืžื•ืขืœื” ืœ-Git)
โ””โ”€โ”€ pyproject.toml     # ืชืœื•ื™ื•ืช ื”ืคืจื•ื™ืงื˜

๐Ÿš€ Running the Project

1. Installing Dependencies

uv sync

2. Installing Chrome Browser for Playwright

uv run playwright install chromium

3. Setting Up the API Key

Create a .env file in the directory:

OPENAI_API_KEY=your_openai_api_key_here

4. Running

uv run host.py

๐Ÿ’ฌ Example Questions

Query: what is the weather in Jerusalem?
Query: ืžื” ื”ืชื—ื–ื™ืช ืœืชืœ ืื‘ื™ื‘?
Query: ื”ืื ื’ืฉื•ื ื”ื™ื•ื ื‘ื—ื™ืคื”?
Query: what is the weather forecast for Bnei Brak?
Query: what are the weather alerts in NY?
Query: what is the forecast for latitude 40.7, longitude -74.0?

๐Ÿงฉ The weather_Israel MCP Tools

Tool

Description

open_weather_forecast_israel

Opens a browser and navigates to the weather site

enter_weather_forecast_city_israel

Types a city name in the search field

select_weather_forecast_city_israel

Selects the matching city from the dropdown list

extract_weather_data_from_page

Reads the page content and returns the forecast to the LLM (RAG)


๐Ÿงฉ The weather_USA MCP Tools

Tool

Description

get_alerts_in_USA

Returns weather alerts by state code (e.g. CA, NY)

get_forecast_in_USA

Returns a forecast by geographic coordinates

Available Tools

4 tools
enter_weather_forecast_city_israelC

ื”ื–ื ืช ืฉื ื”ืขื™ืจ ื‘ืฉื“ื” ื”ื—ื™ืคื•ืฉ.

ParametersJSON Schema
NameRequiredDescriptionDefault
city_nameYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It reveals only that a city name is typed into a search field, but does not disclose whether the action submits, overwrites existing text, requires a loaded page, or is idempotent. This is a thin behavioral disclosure for an action tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is short and front-loaded with no fluff, but it is under-specified. It is not as egregious as a one-word tautology, yet there is no room for waste while important behavioral and workflow context is missing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no annotations or output schema, the basic target is present, but the description fails to explain where this action fits in a workflow (before select? after open?) and what happens after entering the name. An agent cannot confidently sequence this tool among its siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should compensate. It only repeats 'city name' (which equals the property name city_name) and adds the marginal context that the value goes into the search field. No format, example, language, or acceptable values are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The Hebrew description, 'Entering the city name in the search field,' clearly states a specific action and resource, making the core purpose understandable. It does not explicitly contrast with sibling tools like select_weather_forecast_city_israel or open_weather_forecast_israel, but the verb 'enter' differentiates it from 'select' and 'open' enough for a 4.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to call this tool versus the siblings: there is no mention of a preceding open action or a following select/extract step. The workflow context is only implied by the tool name, not stated in the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extract_weather_data_from_pageA

ืžื—ืœืฅ ืืช ืชื•ื›ืŸ ื”ื˜ืงืกื˜ ืžื”ื“ืฃ ื”ื ื•ื›ื—ื™ ื›ื“ื™ ืฉื”-LLM ื™ื•ื›ืœ ืœืงืจื•ื ืืช ื”ืชื—ื–ื™ืช. ื–ื”ื• ืฉืœื‘ ื”-RAG ืฉืžืกืคืง ืงื•ื ื˜ืงืกื˜ ืœืžื•ื“ืœ.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It discloses the core behaviorโ€”extracting text and providing contextโ€”but does not mention prerequisites, side effects, or limitations. For a zero-parameter read operation this is 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, purposeful sentences that front-load the action and explain why the tool exists. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The definition is serviceable for a simple zero-parameter tool, but it omits the prerequisite that a weather page must already be open and does not describe the output format, which would help an agent sequence it correctly among the sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the baseline is 4. The description adds no parameter details, but none are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('extracts') and resource ('text content from the current page'), with a clear purpose: letting the LLM read the forecast. It is distinguishable from the sibling navigation tools, though it does not explicitly name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'RAG stage' phrase implies the tool is an intermediate step after a page is loaded and before the model uses the forecast, but there is no explicit when-to-use or when-not-to-use guidance relative to sibling tools.

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

ืคืชื™ื—ืช ื”ืืชืจ ื•ื ื™ื•ื•ื˜ ืœื“ืฃ ื”ืชื—ื–ื™ืช.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the core behavior: opening the site and navigating to the forecast page. However, with no annotations, it does not mention potential side effects, whether the page is displayed, or what success/failure looks like. For a simple navigation tool this is acceptable but not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short, focused sentence with no filler or redundant information. It earns its place by clearly stating the action and target page.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 no output schema, the description is largely complete. It communicates the intended action, though it would benefit from a brief note about being the initial step in a multi-step weather lookup flow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is 100%, so there are no parameter semantics to document. The description therefore does not need to add parameter-level detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The Hebrew description translates to 'Opening the website and navigating to the forecast page,' which states a clear action and destination. It is distinguishable from sibling tools like enter_weather_forecast_city_israel and extract_weather_data_from_page, though it does not explicitly name the website.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus the sibling tools, or any workflow context such as 'use this first before entering a city.' The description implies a navigation step but provides no explicit selection criteria.

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_israelB

ื‘ื—ื™ืจืช ื”ืขื™ืจ ืžื”ืจืฉื™ืžื” ื”ื ืคืชื—ืช.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden of explaining behavior. It only names the selection action and does not disclose side effects, prerequisites such as whether the dropdown must already be open, or what happens after selection.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short, front-loaded sentence with no filler or repetition. It is concise enough for a trivial UI action, though it is somewhat thin in substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-input, no-output-schema UI action, the description is mostly adequate, but it omits the source of the target city value and prerequisites like an already-open dropdown. The action is identifiable, yet not fully contextualized among its siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so there is no parameter-level information for the description to add. This matches the baseline for a no-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The Hebrew description states a concrete action with a resource: selecting the city from a dropdown list. It is clear what the tool does and subtly differentiates this from the 'enter' sibling, though the distinction is not made explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'from the dropdown list' implies this is used when a list of cities is available and a choice must be made, but the description gives no explicit when-to-use or when-not-to-use guidance relative to open, enter, or extract siblings.

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.

  1. 4 tool updatesv0.1.0
    • First observedenter_weather_forecast_city_israel
    • First observedextract_weather_data_from_page
    • First observedopen_weather_forecast_israel
    • First observedselect_weather_forecast_city_israel

TDQS

B3.4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool represents a distinct step in a clear browser workflow: open the site, enter a city, select a city, and extract text. Even though enter and select both relate to city input, their descriptions clearly distinguish typing into a search field from choosing from a dropdown.

Naming Consistency4/5

All tool names use snake_case with a verb-noun structure, but the object naming is slightly inconsistent: three names end with 'city_israel' or 'israel', while the extract tool uses 'weather_data_from_page' and drops the location marker. Overall the pattern is readable and predictable.

Tool Count5/5

With only 4 tools, the server is tightly scoped to a single weather-forecast retrieval workflow. Each tool earns its place as a necessary step, and the count is well within the ideal range for a focused server.

Completeness4/5

The tools cover the core lifecycle of opening the forecast page, entering and selecting a city, and extracting the forecast text for the model. Minor gaps exist, such as no explicit retry, reset, or alternate navigation tool, but the primary user journey is fully supported.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server that lets users obtain current Israeli city weather forecasts. It uses Playwright to browse Weather2day, extract the forecast page, and feed the cleaned data back to the LLM for natural language responses.
    -
  • F
    license
    A
    quality
    C
    maintenance
    An MCP server that provides real-time weather data for Israel by automating browser searches via Playwright. It allows LLMs to get current forecasts for Israeli cities through natural language queries.
    4
    -
  • F
    license
    B
    quality
    C
    maintenance
    MCP server that enables LLMs to retrieve weather forecasts for Israeli cities by automating a browser with Playwright, and also provides US weather alerts and forecasts via NWS API.
    4
    -