iflow-mcp_helpfreedom-openweathermap_mcp 1.0.0
MCP Server for OpenWeatherMap API
Requires Python: >=3.11

# 🌤️ MCP Сервер Погоды с OpenAI

Простой MCP сервер для получения погоды через OpenWeatherMap API с использованием OpenAI GPT-4o-mini в качестве интерфейса.

## 📋 Что это делает?

- 🌍 Получает текущую погоду для любого города
- 📅 Показывает прогноз погоды на несколько дней
- 🤖 Использует GPT-4o-mini для естественного общения
- 🔧 Реализует протокол MCP для подключения AI к внешним данным

## 🚀 Быстрый старт

### 1. Установка зависимостей

```bash
# Создайте виртуальное окружение
python3 -m venv venv

# Активируйте его
# На macOS/Linux:
source venv/bin/activate
# На Windows:
venv\Scripts\activate

# Установите зависимости
pip3 install -r requirements.txt
```

### 2. Настройка API ключей

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

```bash
# API ключ OpenWeatherMap (бесплатный)
# Получите на: https://openweathermap.org/api
OPENWEATHER_API_KEY=ваш_ключ_здесь

# API ключ OpenAI
# Получите на: https://platform.openai.com/api-keys
OPENAI_API_KEY=ваш_ключ_здесь
```

**Как получить ключи:**

- **OpenWeatherMap**: 
  1. Зарегистрируйтесь на https://openweathermap.org
  2. Перейдите в раздел API Keys
  3. Скопируйте ключ (бесплатный план дает 1000 запросов/день)

- **OpenAI**: 
  1. Зарегистрируйтесь на https://platform.openai.com
  2. Создайте новый API ключ
  3. Пополните баланс (минимум $5)

### 3. Запуск

```bash
# Просто запустите клиент
python3 client.py
```

## 💬 Примеры использования

После запуска просто спрашивайте о погоде на естественном языке:

```
👤 Вы: Какая погода в Москве?
🤖 Ассистент: [Показывает текущую погоду в Москве]

👤 Вы: А какой прогноз на 5 дней для Санкт-Петербурга?
🤖 Ассистент: [Показывает прогноз на 5 дней]

👤 Вы: Что лучше надеть в Лондоне сегодня?
🤖 Ассистент: [Проверяет погоду и дает рекомендации]
```

## 🔧 Тестирование только сервера

Если хотите протестировать сервер без клиента:

```bash
# Используйте 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"

## ⚠️ Важные замечания

1. **Не используйте `print()` в server.py** - это сломает STDIO транспорт
2. **Храните `.env` в безопасности** - добавьте в `.gitignore`
3. **Лимиты API**: 
   - OpenWeatherMap Free: 1000 запросов/день
   - OpenAI: зависит от вашего тарифа
4. **Стоимость OpenAI**: GPT-4o-mini очень дешевая (~$0.15 за 1M токенов)

## 🐛 Решение проблем

**Ошибка: "OPENWEATHER_API_KEY не найден"**
- Проверьте, что файл `.env` создан и содержит ключ
- Убедитесь, что файл находится в той же папке, что и скрипты

**Ошибка: "Не удалось получить погоду"**
- Проверьте правильность написания города
- Попробуйте английское название города

**Сервер не запускается**
- Убедитесь, что виртуальное окружение активировано
- Проверьте, что все зависимости установлены

## 📚 Полезные ссылки

- [MCP Documentation](https://modelcontextprotocol.io/)
- [OpenWeatherMap API](https://openweathermap.org/api)
- [Канал "Черный треугольник"](https://t.me/black_triangle_tg)