🌤️ MCP Сервер Погоды с OpenAI
Простой MCP сервер для получения погоды через OpenWeatherMap API с использованием OpenAI GPT-4o-mini в качестве интерфейса.
📋 Что это делает?
- 🌍 Получает текущую погоду для любого города
- 📅 Показывает прогноз погоды на несколько дней
- 🤖 Использует GPT-4o-mini для естественного общения
- 🔧 Реализует протокол MCP для подключения AI к внешним данным
🚀 Быстрый старт
1. Установка зависимостей
# Создайте виртуальное окружение
python3 -m venv venv
# Активируйте его
# На macOS/Linux:
source venv/bin/activate
# На Windows:
venv\Scripts\activate
# Установите зависимости
pip3 install -r requirements.txt
2. Настройка API ключей
Создайте файл .env в корне проекта:
# API ключ OpenWeatherMap (бесплатный)
# Получите на: https://openweathermap.org/api
OPENWEATHER_API_KEY=ваш_ключ_здесь
# API ключ OpenAI
# Получите на: https://platform.openai.com/api-keys
OPENAI_API_KEY=ваш_ключ_здесь
Как получить ключи:
-
OpenWeatherMap:
- Зарегистрируйтесь на https://openweathermap.org
- Перейдите в раздел API Keys
- Скопируйте ключ (бесплатный план дает 1000 запросов/день)
-
OpenAI:
- Зарегистрируйтесь на https://platform.openai.com
- Создайте новый API ключ
- Пополните баланс (минимум $5)
3. Запуск
# Просто запустите клиент
python3 client.py
💬 Примеры использования
После запуска просто спрашивайте о погоде на естественном языке:
👤 Вы: Какая погода в Москве?
🤖 Ассистент: [Показывает текущую погоду в Москве]
👤 Вы: А какой прогноз на 5 дней для Санкт-Петербурга?
🤖 Ассистент: [Показывает прогноз на 5 дней]
👤 Вы: Что лучше надеть в Лондоне сегодня?
🤖 Ассистент: [Проверяет погоду и дает рекомендации]
🔧 Тестирование только сервера
Если хотите протестировать сервер без клиента:
# Используйте MCP Inspector
uv run mcp dev server.py
# Или установите в Claude Desktop
uv run mcp install server.py --name "Weather Service"
📁 Структура проекта
weather-mcp-server/
├── server.py # MCP сервер с инструментами погоды
├── client.py # Клиент с OpenAI и mcp-use
├── .env # API ключи (не добавляйте в Git!)
├── requirements.txt # Python зависимости
└── README.md # Эта инструкция
🛠️ Доступные инструменты
get_current_weather
Получает текущую погоду для города
Параметры:
city(обязательный): Название городаunits(опционально): "metric" или "imperial"
get_forecast
Получает прогноз погоды на несколько дней
Параметры:
city(обязательный): Название городаdays(опционально): Количество дней (1-5)units(опционально): "metric" или "imperial"
⚠️ Важные замечания
- Не используйте
print()в server.py - это сломает STDIO транспорт - Храните
.envв безопасности - добавьте в.gitignore - Лимиты API:
- OpenWeatherMap Free: 1000 запросов/день
- OpenAI: зависит от вашего тарифа
- Стоимость OpenAI: GPT-4o-mini очень дешевая (~$0.15 за 1M токенов)
🐛 Решение проблем
Ошибка: "OPENWEATHER_API_KEY не найден"
- Проверьте, что файл
.envсоздан и содержит ключ - Убедитесь, что файл находится в той же папке, что и скрипты
Ошибка: "Не удалось получить погоду"
- Проверьте правильность написания города
- Попробуйте английское название города
Сервер не запускается
- Убедитесь, что виртуальное окружение активировано
- Проверьте, что все зависимости установлены
📚 Полезные ссылки
Metadata
Release files for iflow-mcp_helpfreedom-openweathermap_mcp 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_helpfreedom_openweathermap_mcp-1.0.0.tar.gz | 18.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_helpfreedom_openweathermap_mcp-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.6 kB
Release files / iflow_mcp_helpfreedom_openweathermap_mcp-1.0.0.tar.gz
| Download URL | iflow_mcp_helpfreedom_openweathermap_mcp-1.0.0.tar.gz |
|---|---|
| Size | 18.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d579c932e9b4c8174fdad6e24f497e845dde0729acb50516eeda06fac68029af
|
|
BLAKE2b-256 checksum How to use checksums |
f57d67497bf91ecfe43d09f3d79b8f867cbf575bb8dff29604210f3bf2a70c41
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / iflow_mcp_helpfreedom_openweathermap_mcp-1.0.0-py3-none-any.whl
| Download URL | iflow_mcp_helpfreedom_openweathermap_mcp-1.0.0-py3-none-any.whl |
|---|---|
| Size | 19.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
682f0d73c10c32dc4375bc65f48e0f765fb3c3f1cdcd407c14f4bc42ba72b20a
|
|
BLAKE2b-256 checksum How to use checksums |
8fe96a4d72eb6be04ff993fa68c01d0716fe06a3383733e300856004987bb9f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|