MCP Weather Agent
🌤️ MCP Weather Agent
Интеллектуальный многозонный погодный ассистент на базе OpenAI и Model Context Protocol (MCP).
Получайте прогнозы погоды и оповещения в реальном времени для Израиля и США через интерфейс чата на естественном языке. Агент интеллектуально направляет вопросы к соответствующему источнику данных и формирует ответы на основе живых веб-данных и официальных погодных API.
✨ Возможности
🤖 Чат на основе ИИ: Погодные запросы в диалоговом режиме с использованием GPT-4o-mini
🌍 Два источника данных:
🇮🇱 Израиль: Живой веб-скрапинг с Weather2day через Playwright
🇺🇸 США: Официальный API Национальной метеорологической службы
🔄 Умная маршрутизация инструментов: Агент автоматически выбирает нужный инструмент на основе вашего вопроса
💬 Естественный язык: Задавайте вопросы на простом английском; агент понимает контекст и намерение
🔐 Безопасность: Ключи API хранятся в
.envи исключены из системы контроля версий🎯 Интерактивность: Цикл чата в реальном времени с видимой автоматизацией браузера для запросов по Израилю
Related MCP server: Weather MCP Agent
📋 Содержание
🚀 Быстрый старт
Запустите за 3 минуты:
# 1. Install dependencies
uv sync
uv run playwright install chromium
# 2. Create .env file with your OpenAI API key
copy .env.example .env
# Edit .env and add: OPENAI_API_KEY=sk-...
# 3. Run the agent
uv run .\host.py
# 4. Ask a weather question!
# Example: "What is the weather forecast for Jerusalem?"📦 Требования
Компонент | Версия | Назначение |
Python | 3.13+ | Среда выполнения |
OpenAI API Key | — | Доступ к модели GPT-4o-mini |
uv | Latest | Быстрый менеджер пакетов Python |
Chromium | Latest | Автоматизация браузера (Playwright) |
Интернет | — | Доступ к API и веб-скрапинг |
🔧 Настройка
1. Установка зависимостей
Откройте терминал в каталоге проекта и выполните:
# Install Python dependencies
uv sync
# Download Chromium browser for Playwright (required for Israel weather)
uv run playwright install chromiumПервый запуск занимает время? Да — Playwright загружает Chromium (~300 МБ). Это разовая операция.
2. Настройка ключа OpenAI API
Создайте файл .env в корне проекта:
# Option A: Copy the template
copy .env.example .env
# Option B: Create manually
echo OPENAI_API_KEY=your_openai_api_key > .envЗамените your_openai_api_key на ваш реальный ключ OpenAI API с platform.openai.com/account/api-keys.
⚠️ Важно: Никогда не коммитьте .env и не делитесь вашим ключом API. .gitignore уже исключает его.
3. Проверка установки
Проверьте настройку:
uv run .\host.pyВы должны увидеть:
Connected to server with tools: [...]
MCP Client Started!
Type your queries or 'quit' to exit.
Query:Нажмите Ctrl+C или введите quit для выхода.
▶️ Запуск агента
Запустите интерактивный чат:
uv run .\host.pyАгент запускается в интерактивном режиме. Введите вопрос о погоде и нажмите Enter. Агент:
✅ Анализирует ваш вопрос
🔍 Направляет к соответствующему погодному инструменту (Израиль или США)
🌐 Получает данные в реальном времени (для Израиля может открыться окно браузера)
📊 Обрабатывает и форматирует ответ
💬 Возвращает ответ
Введите quit для выхода.
Для запросов по Израилю: Автоматически открывается окно браузера Chromium. Это нормально — агент использует Playwright для взаимодействия с Weather2day. Окно закрывается после завершения запроса.
🏗️ Архитектура
┌─────────────────────────────────────────────────────────────────┐
│ OpenAI (GPT-4o-mini) │
│ (Tool Selection & Reasoning) │
└────────────────────────────┬────────────────────────────────────┘
│
┌────────────┴────────────┐
│ │
┌───────▼────────┐ ┌───────▼────────┐
│ MCP Host │ │ MCP Host │
│ (client.py) │ │ (client.py) │
└───────┬────────┘ └───────┬────────┘
│ │
┌───────▼──────────────┐ ┌──────▼─────────────┐
│ weather_Israel.py │ │ weather_USA.py │
│ (Playwright + Web) │ │ (NWS API) │
└───────┬──────────────┘ └──────┬─────────────┘
│ │
┌───────▼──────────────┐ ┌──────▼─────────────┐
│ Weather2day.co.il │ │ api.weather.gov│
│ (Live Web Browser) │ │ (REST API) │
└──────────────────────┘ └───────────────────┘Поток данных:
Вы задаёте вопрос в чате
Хост отправляет его в OpenAI с доступными инструментами
OpenAI выбирает, какой инструмент вызвать, на основе вопроса
Соответствующий MCP-сервер выполняет и возвращает данные
Хост форматирует и возвращает ответ
💬 Примеры запросов
🇮🇱 Погода в Израиле
What is the weather forecast for Jerusalem?
Give me the forecast for Tel Aviv.
What is the weather like in Haifa today?
Show me the forecast for Eilat.
What is the weather in Beer Sheva?
Is it going to rain in Kfar Saba tomorrow?
Tell me about the weather in Nazareth.
What's the forecast for Tiberias?Поддерживаемые города: Иерусалим, Тель-Авив, Хайфа, Эйлат, Беэр-Шева, Кфар-Сава, Тверия, Назарет и большинство крупных израильских городов, распознаваемых Weather2day.
🇺🇸 Погода в США
What is the weather forecast for New York City? (40.7128, -74.0060)
What's the weather at latitude 34.0522, longitude -118.2437? (Los Angeles)
Are there any active weather alerts in California?
What weather alerts are in effect in New York?
Give me the forecast for Chicago coordinates. (41.8781, -87.6298)
Are there any severe weather warnings in Texas?Формат:
Прогнозы: Используйте координаты широты/долготы
Оповещения: Используйте двухбуквенные коды штатов (
CA,NY,TXи т.д.)
🎯 Умное поведение агента
Агент понимает контекст:
✅ «Какая погода в Иерусалиме?» → Использует израильский инструмент
✅ «Я собираюсь в Нью-Йорк, какой прогноз?» → Использует инструмент США (40.71, -74.01)
✅ «Расскажи о погоде в Тель-Авиве и Лос-Анджелесе» → Вызывает оба инструмента
✅ «Сейчас идёт дождь в Чикаго?» → Направляет к инструменту США
📂 Структура проекта
MCP Weather/
├── host.py # Main chat host (OpenAI + tool orchestration)
├── client.py # MCP client connector
├── weather_Israel.py # Israel MCP server (Playwright + Web)
├── weather_USA.py # USA MCP server (NWS API)
├── pyproject.toml # Dependencies and project metadata
├── uv.lock # Locked dependency versions
├── .env.example # Template for environment variables
├── .env # Your API keys (git-ignored)
├── README.md # This file
└── .gitignore # Git exclusion rules🐛 Устранение неполадок
❌ OPENAI_API_KEY is missing
Проблема: Агент не может найти ваш ключ API.
Решение:
Убедитесь, что
.envсуществует в корне проекта (та же папка, что иhost.py)Проверьте, что файл содержит:
OPENAI_API_KEY=sk-your-actual-key-hereПерезапустите хост:
uv run .\host.py
❌ Браузер Chromium не запускается
Проблема: Ошибка «Failed to launch browser».
Решение:
uv run playwright install chromiumЕсли проблема сохраняется, проверьте место на диске (Chromium требуется ~500 МБ).
❌ Тайм-аут соединения или ошибки API
Проблема: «net::ERR_CONNECTION_RESET» или сбои запросов.
Решение:
Проверьте интернет-соединение
Убедитесь, что ваш ключ OpenAI API действителен на platform.openai.com
Проверьте использование API и биллинг
❌ Браузер для Израиля открывается, но поиск не работает
Проблема: Поиск города не возвращает подсказки.
Пояснение: Автодополнение Weather2day работает только на странице /forecast. Инструмент автоматически возвращается на эту страницу перед каждым поиском, но если это не удаётся:
Решение:
Убедитесь, что Chromium обновлён:
uv run playwright install --with-deps chromiumУбедитесь, что у вас есть доступ к
weather2day.co.ilПроверьте всплывающие окна или баннеры cookie (агент обрабатывает их, но при очень медленном соединении может произойти тайм-аут)
❌ «A server fails to connect»
Проблема: Ошибка соединения с MCP-сервером.
Решение:
# Run from the project directory
Set-Location .\project-template
uv run .\host.py❓ FAQ
В: Как агент решает, какой инструмент использовать?
О: GPT-4o-mini от OpenAI читает ваш вопрос и выбирает лучший инструмент на основе контекста (упомянутая страна/регион, предоставленные координаты и т.д.). Это не основано на правилах — используется понимание языка.
В: Могу ли я спросить о нескольких регионах в одном запросе?
О: Да! Агент может вызывать несколько инструментов. Попробуйте: «Какая погода в Тель-Авиве и Нью-Йорке?»
В: Почему браузер для Израиля открывается видимо?
О: Playwright автоматизирует Weather2day, вводя текст в живой поиск, выбирая результаты и читая страницу. Безголовый режим (невидимый) не работает с автодополнением этого сайта, основанным на JavaScript, поэтому браузер запускается видимо.
В: Сколько это стоит?
О: Вы платите OpenAI за вызовы API. Каждый запрос стоит ~$0.001–$0.01 в зависимости от длины ответа. Веб-скрапинг для Израиля бесплатен; API США бесплатен (NWS является публичным).
В: Что если я хочу добавить больше регионов?
О: Создайте новый MCP-сервер (например, weather_Europe.py) и зарегистрируйте его в host.py в self.mcp_clients. Смотрите существующие серверы для примера.
В: Безопасен ли мой ключ API?
О: Да. Ваш .env исключён из Git и хранится только локально. Никогда не вставляйте ключ в код или публичный чат.
В: Можно ли использовать это в производстве?
О: Это демонстрационный проект. Для производства:
Используйте асинхронную очередь запросов
Добавьте логирование и восстановление после ошибок
Кэшируйте прогнозы (погода меняется каждый час, а не каждый запрос)
Настройте мониторинг и оповещения
Используйте конфигурацию на основе переменных окружения
🔒 Безопасность
⚠️ Делать | ❌ Не делать |
✅ Держите | ❌ Коммитьте |
✅ Регулярно меняйте ключи API | ❌ Делитесь вашим ключом API |
✅ Используйте переменные окружения в проде | ❌ Хардкодьте секреты в коде |
✅ Проверяйте лимиты биллинга API | ❌ Оставляйте квоту без ограничений |
✅ Используйте HTTPS для вызовов API | ❌ Используйте HTTP в проде |
Если ваш ключ API раскрыт:
Немедленно отзовите его в OpenAI Dashboard
Сгенерируйте новый ключ
Обновите
.env
📝 Лицензия
Этот проект предоставляется как есть для образовательных целей. Подробности см. в LICENSE.
🤝 Вклад
Есть идеи по улучшению агента? Вклад приветствуется!
Форкните репозиторий
Создайте ветку для функции (
git checkout -b feature/amazing-feature)Закоммитьте изменения (
git commit -m 'Add amazing feature')Запушьте ветку (
git push origin feature/amazing-feature)Откройте Pull Request
📞 Поддержка
🐛 Сообщайте об ошибках через GitHub Issues
💡 Предлагайте функции в Discussions
📧 По вопросам безопасности пишите на email (не открывайте публичный issue)
Хороших прогнозов! 🌦️☀️
This server cannot be installed
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 Servers
- FlicenseNot gradedqualityDmaintenanceEnables users to query real-time weather data for Israeli cities using natural language, automatically scraping a weather website via Playwright and returning AI-generated answers.
- FlicenseNot gradedqualityDmaintenanceEnables querying real-time weather data for Israeli cities through natural language, using Playwright to scrape weather2day and Gemini LLM to answer.
- FlicenseAqualityCmaintenanceEnables users to query weather information for Israel via Playwright browser automation and for the USA via a weather API, allowing an LLM to access real-time weather data and alerts.4
- FlicenseNot gradedqualityCmaintenanceEnables natural language weather queries for Israeli cities with real-time data extracted via Playwright, plus USA weather alerts and forecasts via NWS API, all orchestrated by Groq LLM.
Related MCP Connectors
US weather, alerts, earthquakes and elevation for AI agents, from NWS/NOAA and USGS. No API keys.
US weather & geo for AI agents: forecasts, alerts, earthquakes, elevation, geocoding. No keys.
Get US weather forecasts, active alerts, and current observations.
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/SaraDev841/MCP-Playwright-Weather'
If you have feedback or need assistance with the MCP directory API, please join our Discord server