MCP Weather Assistant
Ассистент погоды MCP
Интерактивный ассистент погоды, построенный на протоколе Model Context Protocol (MCP). Хост подключается к двум локальным MCP-серверам, публикует их инструменты в языковую модель, совместимую с OpenRouter, и предоставляет модели решать, когда получать информацию о погоде.
Возможности
Прогнозы погоды для местоположений в США через API Национальной службы погоды.
Активные предупреждения о погоде для штата США.
Израильские прогнозы погоды через сайт
weather2day.co.ilи видимый браузер Chromium под управлением Playwright.Один интерактивный чат-интерфейс в терминале.
Несколько MCP-серверов, подключенных через stdio.
Автоматическое обнаружение инструментов и пространств имен для предотвращения коллизий между серверами.
Related MCP server: MCP Weather Assistant
Структура проекта
Файл | Назначение |
| Основное приложение. Подключается к MCP-серверам, вызывает OpenRouter, маршрутизирует вызовы инструментов и выполняет цикл чата. |
| Переиспользуемый MCP-клиент на основе stdio. Запускает сервер с текущим интерпретатором Python и выводит список его инструментов. |
| MCP-сервер, использующий API Национальной службы погоды. |
| MCP-сервер, использующий |
| Метаданные Python-проекта и объявленные зависимости. |
| Зафиксированные версии зависимостей для окружений на основе uv. |
| Локальные переменные окружения. Этот файл игнорируется Git. |
Требования
Windows, macOS или Linux.
Python 3.13 или новее.
Ключ API OpenRouter.
Доступ в Интернет к OpenRouter,
api.weather.govиweather2day.co.il.Chromium, установленный через Playwright, для израильских запросов о погоде.
Рекомендуется использовать виртуальное окружение.
Установка
С помощью uv
Из каталога проекта:
uv sync
uv run playwright install chromiumПроект в настоящее время напрямую импортирует httpx. Если его нет в заблокированном окружении, установите его с помощью:
uv add httpxИспользование стандартного инструментария Python
py -3.13 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install anthropic mcp python-dotenv playwright openai google-genai httpx
python -m playwright install chromiumНа macOS или Linux активируйте окружение с помощью:
source .venv/bin/activateОбъявленные зависимости включают несколько SDK-провайдеров, которые в настоящее время не используются host.py; они остаются частью метаданных проекта для совместимости с шаблоном.
Конфигурация
Создайте файл .env в корне проекта:
OPENROUTER_API_KEY=your_openrouter_api_keyhost.py загружает этот файл через python-dotenv и отправляет ключ как Bearer-токен в OpenRouter. Не коммитьте .env и не раскрывайте ключ в системе контроля версий, журналах, скриншотах или отчетах об ошибках.
Текущая модель настраивается в host.py:
MODEL = "nvidia/nemotron-3-super-120b-a12b:free"Измените эту константу, если хотите использовать другую модель OpenRouter, поддерживающую вызовы инструментов.
Запуск ассистента
uv run python host.pyС активированным виртуальным окружением:
python host.pyВы должны увидеть приветственное сообщение, за которым следует приглашение Query:. Введите вопрос и нажмите Enter. Введите quit, чтобы остановить приложение.
Примеры вопросов:
What is the forecast for 34.05, -118.25?
Are there any active weather alerts in California?
What is the weather forecast in Tel Aviv?Хост выводит вызовы инструментов по мере их выполнения, а затем финальный ответ модели.
MCP-серверы и инструменты
Сервер для США
weather_USA.py запускает MCP-сервер с именем weather-USA и предоставляет следующие инструменты:
get_alerts_in_USA(state)state: двухбуквенный код штата, напримерCAилиNY.Использует конечную точку активных предупреждений NWS.
get_forecast_in_USA(latitude, longitude)latitude: десятичная широта.longitude: десятичная долгота.Резолвит местоположение через конечную точку NWS points, затем возвращает первые пять прогнозных периодов.
Запрос к API NWS использует Accept: application/geo+json и пользовательский User-Agent.
Израильский сервер
weather_Israel.py запускает MCP-сервер с именем weather-Israel и предоставляет:
open_weather_forecast_israel()Открывает не-headless браузер Chromium и переходит на израильский сайт прогноза погоды.
enter_weather_forecast_city_israel(city)Вводит название города и ожидает появления подсказок автодополнения.
select_weather_forecast_city_israel()Выбирает первый вариант автодополнения и ожидает загрузки страницы прогноза.
get_weather_forecast_content_israel()Извлекает видимый текст со страницы, очищает пустые строки и ограничивает результат 4000 символами.
Израильские инструменты являются состояниями и должны вызываться по порядку. Браузер должен быть открыт до ввода названия города, а город должен быть выбран перед извлечением прогноза.
Архитектура
User terminal
|
v
host.py (ChatHost)
|-- OpenRouter chat-completions API
|
|-- client.py -> weather_USA.py -> api.weather.gov
|
`-- client.py -> weather_Israel.py -> Playwright -> weather2day.co.ilПри запуске ChatHost создаёт один экземпляр MCPClient для каждого сервера погоды. Каждый клиент запускает сервер как дочерний процесс, используя тот же интерпретатор Python, что и хост. Хост обнаруживает все MCP-инструменты и предоставляет их OpenRouter с помощью схем вызова функций.
Чтобы предотвратить дублирование имён, инструменты предоставляются модели в следующем виде:
<server_script_name>__<tool_name>Например, инструмент США выводится как weather_USA__get_alerts_in_USA. Когда OpenRouter запрашивает инструмент, хост сопоставляет это публичное имя с соответствующим MCP-клиентом и исходным именем инструмента, вызывает его и отправляет результат обратно в диалог с моделью.
Запуск отдельного MCP-сервера
Каждый сервер можно запустить напрямую для MCP-совместимых клиентов или для базового дымового тестирования:
python weather_USA.py
python weather_Israel.pyЭти программы используют stdio-транспорт MCP, поэтому они предназначены для связи с MCP-клиентом, а не для отображения веб-страниц или командной строки.
Устранение неполадок
ModuleNotFoundError: No module named 'httpx'
Установите недостающий модуль:
uv add httpxили:
python -m pip install httpxChromium не запускается
Установите бинарный файл браузера Playwright:
python -m playwright install chromiumИзраильский сервер намеренно запускает Chromium с headless=False, поэтому для этого провайдера требуется сеанс рабочего стола.
Ошибка аутентификации OpenRouter
Убедитесь, что .env находится в том же каталоге, что и host.py, что переменная называется именно OPENROUTER_API_KEY и что ключ активен. Перезапустите хост после изменений.
Инструменты недоступны
Убедитесь, что оба скрипта сервера находятся в корне проекта и что хост запускается из этого каталога. Хост использует относительные пути ./weather_USA.py и ./weather_Israel.py.
Сбой запроса погоды
Приложение зависит от внешних сервисов. Проверьте доступ к интернету, ответ NWS для запрошенного местоположения и не изменились ли селекторы HTML на израильском сайте.
Вопросы безопасности и эксплуатации
host.pyи MCP-серверы отключают проверку TLS-сертификатов (verify=False). Это может быть необходимо в текущей сетевой среде, но снижает безопасность транспорта и должно быть заменено на обычную проверку сертификатов в производственной среде.OpenRouter получает запрос пользователя и результаты, возвращаемые инструментами.
Израильский провайдер открывает видимый браузер и извлекает текст со страницы. Изменения в вёрстке сайта могут нарушить селекторы или изменить извлекаемый контент.
Приложение не хранит историю диалога; каждый запрос в терминале начинает новый список сообщений модели.
Ошибки выводятся в терминал и не записываются в журнал.
Замечания по разработке
MCP-серверы используют декораторы FastMCP для инструментов и асинхронные операции для сетевых запросов и работы с браузером. При модификации сервера оставляйте канал stdio зарезервированным для протокола MCP; диагностический вывод следует обрабатывать аккуратно, чтобы не нарушать связь.
В репозитории в настоящее время нет автоматических тестов. Полезным следующим шагом было бы добавление тестов, которые имитируют NWS, вызовы инструментов OpenRouter и работу Playwright, чтобы проверять оркестрацию без доступа к сети.
Лицензия
В настоящее время в репозитории нет файла лицензии.
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 gradedqualityBmaintenanceEnables fetching weather forecasts for the USA via NWS API and for Israel via browser automation using Playwright.
- 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.
- -licenseNot gradedqualityCmaintenanceMCP 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.
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/sara-simi-git/MCP_Weather_Agent-'
If you have feedback or need assistance with the MCP directory API, please join our Discord server