MCP Server - Test Project
Описание
MCP сервер, который получает:
- Текущий курс доллара.
- Прогноз погоды в заданном городе.
- Текущую погоду в заданном городе.
- Сводку новостей за последнюю неделю.
Вся информация предоставляется через API и результат выводится в формате JSON.
Структура проекта
Проект состоит из нескольких основных файлов и папок:
- app/: Основная папка с приложением.- 
- currency.py: Логика для получения курса валют.
- main.py: Основной сервер с FastAPI.
- news.py: Логика для получения новостей.
- weather.py: Логика для получения прогноза погоды.
 
- tests/: Папка с тестами для проверки работы приложения.- 
- test_currency.py: Тесты для работы с курсом валют.
- test_news.py: Тесты для работы с новостями.
- test_weather.py: Тесты для работы с прогнозом погоды.
 
- requirements.txt: Список зависимостей проекта.
- .gitignore: Файл, который игнорирует временные и системные файлы.
- pytest.ini: Конфигурация для Pytest.
Установка
Для установки и запуска проекта выполните следующие шаги:
- Клонируйте репозиторий:
git clone https://github.com/nemono0ne/test_mcp_server.git
- Зайдите в папку:
cd test_mcp_server
- Создайте и активируйте виртуальное окружение:
python -m venv .venv
.\.venv\Scripts\activate  # для Windows
source .venv/bin/activate # для Linux/Mac
- Установите зависимости:
pip install -r requirements.txt
5.Запустите сервер:
uvicorn app.main:app --reload
Использование API
Swagger UI доступен по адресу:
http://127.0.0.1:8000/docs
Через Swagger UI вы можете протестировать все доступные эндпоинты, такие как:
- GET /currency — Получение текущего курса доллара.
- GET /weather/{city_name} — Получение текущей погоды для заданного города.
- GET /forecast/{city_name} — Получение прогноза погоды для заданного города.
- GET /news — Получение новостей за последнюю неделю.
Примечания
- Бесплатные API: В проекте используются временные бесплатные API для получения данных о курсе доллара, погоде и новостях. Эти API могут перестать работать в любое время, так как предоставляются без обязательства поддержки. - 
- Для погоды используется API с сайта OpenWeatherMap. Если API перестанет работать, вы можете зарегистрироваться на сайте и получить собственный API-ключ, который можно заменить в проекте.
- Для новостей используется API с сайта NewsAPI. Аналогично, если API перестанет работать, зарегистрируйтесь на сайте, получите ключ и обновите его в проекте.
 
Важные моменты при тестировании погоды
- Город : Убедитесь, что название города указано правильно, лучше на английском языке. 
- Примеры запросов: - 
- GET /weather/Moscow
- GET /weather/New York
- GET /weather/Paris
 
- Ошибки : Если город не найден, проверьте правильность написания, особенно для городов с пробелами или специальными символами. 
- Прогноз и погода : Для текущей погоды используйте - GET /weather/{city_name}, а для прогноза —- GET /forecast/{city_name}.