Skip to main content
Glama
Efrat-Fr

Weather-MCP

by Efrat-Fr

🌤️ — Прогноз погоды в Израиле

Учебный проект по разработке MCP (Model Context Protocol): агент (Agent) на основе LLM, который умеет получать прогноз погоды для городов Израиля и США и отвечать на запросы на свободном языке в чате в терминале.


🎯 Цель проекта

Построить выделенный MCP-сервер, который «обучает» LLM выполнять задачу, которую он не умеет делать сам — получать прогноз погоды с израильского сайта, у которого нет API.

Агент делает это двумя способами:

  1. Израильский сервер (weather-Israel) — автоматизирует настоящий браузер с помощью Playwright: открывает weather2day.co.il/forecast, ищет город, выбирает его, а затем извлекает содержимое страницы прогноза и передаёт его LLM, чтобы тот ответил самостоятельно (подход RAG).

  2. Сервер США (weather-USA) — получает прогноз и предупреждения через официальный API NWS (National Weather Service).

Host подключает все серверы к LLM (Gemini, через API, совместимый с OpenAI), автоматически собирает с них все Tools и запускает цикл чата, в котором LLM выбирает, какой инструмент использовать, и активирует их один за другим, пока не будет получен ответ.


Related MCP server: mcp-playwright-weather-israel

🏗️ Структура проекта

project-template/
├── host.py            # צ'אט בטרמינל שמחבר את ה-LLM לכל שרתי ה-MCP
├── client.py          # MCP Client גנרי (מתחבר לשרת, מריץ Tools)
├── weather_USA.py     # שרת MCP לארה"ב — דרך NWS API
├── weather_Israel.py  # שרת MCP לישראל — דרך אטמוט דפדפן (Playwright)
├── pyproject.toml     # תלויות הפרויקט
└── README.md

Tools израильского сервера

#

Tool

Функция

1

open_weather_forecast_israel

Открывает браузер Chromium и переходит на сайт прогноза

2

enter_weather_forecast_city_israel

Вводит название города в поле поиска

3

select_weather_forecast_city_israel

Выбирает первый город из списка предложений

4

get_weather_forecast_content_israel

Извлекает содержимое страницы прогноза (включая iframes) и возвращает его LLM

💡 Первые три используют один и тот же браузер через глобальное состояние (_page), потому что все они работают в одном процессе-сервере. Четвёртый проходит по всем frames на странице, потому что сам прогноз загружается внутри <iframe>, который основной body не видит.


⚙️ Установка и запуск

Предварительные требования

Шаги

# 1. התקנת התלויות והקמת סביבת העבודה
uv sync

# 2. התקנת דפדפן Chromium עבור Playwright
uv run playwright install chromium

Настройка переменных окружения

Создайте файл .env в папке проекта:

GEMINI_API_KEY=your_api_key_here
GEMINI_MODEL=gemini-2.0-flash

Запуск

uv run host.py

После запуска появится строка Query: — введите вопрос (или quit для выхода).


💬 Примеры вопросов, на которые агент умеет отвечать

Прогноз в Израиле (Playwright)

Откроется окно браузера, в котором видна страница прогноза, а LLM также отвечает в чате.

  • «Какой прогноз в Тель-Авиве?»

  • «Сколько градусов ожидается завтра в Иерусалиме?»

  • «Какая погода в Хайфе сегодня?»

  • «Открой мне прогноз для Беэр-Шевы»

Прогноз и предупреждения в США (NWS API)

  • "What's the weather forecast for San Francisco?" (latitude/longitude)

  • "Are there any weather alerts in California?"

  • "Show me active weather alerts for NY"


🧩 Как это работает (схема потока)

משתמש → "מה התחזית בתל אביב?"
   │
   ▼
 Host  ──►  LLM (Gemini) בוחר Tools להפעיל
   │
   ▼  (שרת ישראל, בזה אחר זה)
 open → enter("תל אביב") → select → get_content
   │
   ▼
 תוכן התחזית חוזר ל-LLM (RAG)
   │
   ▼
 LLM כותב תשובה בשפה חופשית בצ'אט ✨

📝 Примечания

  • Именно LLM решает, какие Tools активировать и в каком порядке — мы не писали жёсткую логику.

  • Два файла сервера = два отдельных процесса, поэтому любое общее состояние (например, открытый браузер) живёт только внутри одного сервера.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP server for AI dialogue using various LLM models via AceDataCloud

  • MCP server exposing the Backtest360 engine API as tools for AI agents.

  • Hosted MCP server to manage a restaurant menu from AI agents - 39 tools over the DuckHub API.

View all MCP Connectors

Latest Blog Posts

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/Efrat-Fr/Weather-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server