MCP Server for OpenWeatherMap API
Project description
🌤️ 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создан и содержит ключ - Убедитесь, что файл находится в той же папке, что и скрипты
Ошибка: "Не удалось получить погоду"
- Проверьте правильность написания города
- Попробуйте английское название города
Сервер не запускается
- Убедитесь, что виртуальное окружение активировано
- Проверьте, что все зависимости установлены
📚 Полезные ссылки
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iflow_mcp_helpfreedom_openweathermap_mcp-1.0.0.tar.gz.
File metadata
- Download URL: iflow_mcp_helpfreedom_openweathermap_mcp-1.0.0.tar.gz
- Upload date:
- Size: 18.9 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d579c932e9b4c8174fdad6e24f497e845dde0729acb50516eeda06fac68029af
|
|
| MD5 |
0b8993c3d5557197bb7b49ef67f0e6b8
|
|
| BLAKE2b-256 |
f57d67497bf91ecfe43d09f3d79b8f867cbf575bb8dff29604210f3bf2a70c41
|
File details
Details for the file iflow_mcp_helpfreedom_openweathermap_mcp-1.0.0-py3-none-any.whl.
File metadata
- Download URL: iflow_mcp_helpfreedom_openweathermap_mcp-1.0.0-py3-none-any.whl
- Upload date:
- Size: 19.7 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
682f0d73c10c32dc4375bc65f48e0f765fb3c3f1cdcd407c14f4bc42ba72b20a
|
|
| MD5 |
f3556353d4d706de6c20554859c8910a
|
|
| BLAKE2b-256 |
8fe96a4d72eb6be04ff993fa68c01d0716fe06a3383733e300856004987bb9f2
|